it-swarm-vi.com

Làm cách nào để đặt quyền truy cập tệp mặc định cho tất cả các thư mục / tệp trong một thư mục?

Tôi muốn đặt một thư mục sao cho mọi thứ được tạo trong đó (thư mục, tệp) đều kế thừa các quyền và nhóm mặc định.

Hãy gọi nhóm là "phương tiện truyền thông". Ngoài ra, các thư mục/tệp được tạo trong thư mục sẽ có g + rw tự động.

274
Chris

Tôi đã tìm thấy nó: Áp dụng quyền mặc định

Từ bài viết:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

Tiếp theo chúng tôi có thể xác minh:

getfacl /<directory>

Đầu ra:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x
288
Chris

Đây là một bổ sung cho câu trả lời của Chris, nó dựa trên kinh nghiệm của tôi trên giàn Arch Linux của tôi.

Sử dụng công tắc mặc định (-d) và công tắc sửa đổi (-m) sẽ chỉ sửa đổi các quyền mặc định mà không giữ nguyên các quyền hiện có:

setfacl -d -m g::rwx /<directory>

Nếu bạn muốn thay đổi toàn bộ cấu trúc quyền của thư mục bao gồm cả cấu trúc quyền hiện có (bạn sẽ phải thực hiện thêm một dòng và làm cho nó đệ quy -R:

setfacl -R -m g::rwx /<directory>

ví dụ.

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

( CREDIT để markdwite trong các nhận xét cho synthax của dòng thu hồi tất cả các đặc quyền)

29
thebunnyrules

Thêm chính bạn/người dùng đã đăng nhập vào nhóm dữ liệu www, để chúng tôi có thể làm việc với các tệp được tạo bởi máy chủ dữ liệu www

Sudo usermod -a -G www-data $USER

Cần khởi động lại/relogin để nhóm mới được thêm vào có hiệu lực

cd /var/www

Thêm dữ liệu www làm thành viên nhóm của thư mục html và người dùng của bạn là chủ sở hữu, vì vậy chúng tôi sở hữu nó cũng như thành viên nhóm

Sudo chown -R $USER:www-data html

Đặt tên người dùng của bạn thay cho NGƯỜI DÙNG

Đặt đọc, viết, thực thi quyền theo yêu cầu, (ugo) u = user, g = group, o = other

Sudo chmod 750 html

Đặt GID của html, bây giờ, các tệp mới được tạo trong html sẽ kế thừa quyền sở hữu:

Sudo chmod g+s html

Điều này tạo ra các quy tắc mặc định cho các tệp/thư mục mới được tạo trong thư mục html và thư mục con.

Sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Tạo SELinux nếu được cài đặt, bỏ qua yêu cầu ngữ cảnh dữ liệu www để cho phép ghi quyền

Sudo setsebool -P httpd_unified 1

danh sách thư mục để xem quyền mới được áp dụng

ls -ld html

Trả lại cái này

drwxrwsr-x+   3 html www-data

Dấu + + biểu thị rằng ACL, Danh sách điều khiển truy cập, được đặt trên thư mục.

Tham khảo: Liên kết đến diễn đàn

1
Bsienn