Đảm bảo các tệp mới trong một thư mục thuộc về nhóm


67

Tôi muốn tạo một thư mục dùng chung khi một số người dùng (tất cả thuộc về nhóm của tôi) có thể tạo và chỉnh sửa các tệp. Tôi muốn tất cả các tệp trong thư mục này và thư mục con thuộc về nhóm của tôi

Tôi đã thay đổi các tệp hiện có để sử dụng nhóm mygroupchgrp , nhưng các tệp mới vẫn được tạo thuộc về nhóm chính của người dùng. Có cách nào để đảm bảo các tệp mới thuộc về nhóm mà không cần chạy chgrp liên tục.

Câu trả lời:


108

Bạn muốn đặt bit SetGID.

chmod g+s dir

Tất cả các tệp mới được tạo trong thư mục sẽ có nhóm được đặt thành nhóm của thư mục.

Một bài đăng trên blog siêu người dùng đã giải thích các bit dính và các bit quyền Linux khác:

SetGID, tuy nhiên, là một trò chơi bóng hoàn toàn khác. Khi một thư mục có tập bit SetGID và một tệp được tạo trong thư mục đó, quyền sở hữu nhóm của tệp sẽ tự động được sửa đổi thành nhóm của thư mục.


1
Cảm ơn. Các tài liệu tham khảo là hữu ích. mô tả lệnh umask là một phần của hình ảnh
ngay lúc

4
Còn việc tạo thư mục con trong thư mục ban đầu cũng thuộc nhóm thư mục mẹ thì sao? Điều này có thể không?
daaxix

Câu trả lời của @ LukePH dưới đây rất quan trọng để không bị nhầm lẫn khi điều này thất bại trong âm thầm: sử dụng sudo
hoàng


11

Điều này có thể khiến một vài người bị mắc kẹt với setgid, nếu nhóm của thư mục khác với nhóm của bạn, bạn có thể cần chạy chmod với quyền root nhưng bạn sẽ không gặp phải bất kỳ lỗi nào cho thấy bạn cần phải làm điều này.

không có sudo

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir

$ chmod g+s dir                                     # no errors

$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar  9 10:44 dir   # but nothing changed

$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar  9 10:51 nosudo        # and the group is set wrong

với sudo

$ sudo chmod g+s dir

$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar  9 10:44 dir   # the setgid bit is now on

$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke      0 Mar  9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar  9 10:51 withsudo # and the group is set right
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.