Quyền nhóm Linux không được thi hành chính xác.


18

Tôi đang chạy máy chủ Ubuntu 10.04 và đang có một số trải nghiệm rất trực quan với người dùng / nhóm. Ví dụ:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

Dòng cuối cùng tạo ra một lỗi quyền.

Tôi đã đảm bảo rằng người dùng của tôi là một phần của nhóm 'kiểm tra' ( groups {my-user}xác nhận điều này). Nhóm test_file cũng chắc chắn được đặt thành 'test' và quyền của nhóm được đặt.

Tại sao người dùng của tôi không thể ghi vào tệp kiểm tra tệp?

Câu trả lời:


29

Khi thêm người dùng vào một nhóm mới, điều đó sẽ không được áp dụng trong bất kỳ quy trình hiện đang chạy nào, chỉ những quy trình mới. Bạn cần phải đăng xuất và sau đó đăng nhập lại.


4
hoặc hack su - usernamevào giao diện điều khiển đang chạy của bạn. bạn không cần phải đăng xuất để đăng nhập theo cách này :)
matthias krull

5

Cả phương pháp đăng xuất và khởi động lại máy chủ đều không hiệu quả với tôi.

Phương pháp này tuy nhiên có hiệu quả với tôi: (tham khảo câu trả lời này )

chmod g+rwxs <parent folder>

1
Phần này +slàm gì? Cảm ơn.
tommy.carstensen

1
Nó thiết lập bit setuid. Điều này cho phép một tệp được chạy với tư cách là chủ sở hữu của tệp. Giả sử bạn có một tệp bạn muốn chạy với quyền root, bất kể ai đang chạy tệp đó, bạn sẽ đặt bit setuid cho tệp đó.
Julius

Chìa khóa là x: có vẻ như quyền thực thi là cần thiết touchđể làm việc.
asac - Phục hồi Monica

0

Bạn có thể sử dụng newgrplệnh để thay đổi ID nhóm hiện tại của người dùng. Từ man newgrp:

Lệnh newgrp được sử dụng để thay đổi ID nhóm hiện tại trong phiên đăng nhập. Nếu -cờ tùy chọn được cung cấp, môi trường người dùng sẽ được khởi tạo lại như thể người dùng đã đăng nhập, nếu không, môi trường hiện tại, bao gồm cả thư mục làm việc hiện tại, vẫn không thay đổi.


1
Điều này cũng có tác dụng thay thế nhóm hiện tại của bạn. Nó không phải luôn luôn là một ý tưởng tốt.
Daenyth

Tôi sẽ downvote này nếu tôi có thể. Các nhóm ghi đè có thể rất bực bội trong tương lai ... đặc biệt. với -Rtùy chọn!
Edward

0

Khởi động lại máy tính để đảm bảo không có quy trình bị kẹt nào ngăn người dùng và các nhóm của bạn được thực thi chính xác trong quá trình đăng xuất và đăng nhập.

Các bước này sẽ cung cấp cho người dùng nhóm testcủa bạn quyền viếttest_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

Khởi động lại máy tính hoặc thực hiện đăng xuất hệ điều hành của người dùng của bạn. Khởi động lại thiết bị đầu cuối là không đủ.

touch test_file

Người dùng có thể ghi vào tệp vì đây là một phần của nhóm 'kiểm tra' và nhóm có quyền rwx.


3
Không có yêu cầu bạn phải khởi động lại máy tính.
Kevin Panko
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.