Những quyền nào người ta cần để chạy chmod, lệnh chown trên một thư mục / mục?


9

Tôi đã luôn chạy các lệnh chmod / chown với tư cách là người dùng sudo. Nhưng hôm nay tôi tự hỏi nếu tôi không sử dụng sudo, tôi cần những quyền nào để thực sự thực thi chmod/chownlệnh trên một thư mục / tệp? Tôi đã thử googling câu hỏi, nhưng không có gì xuất hiện mà trả lời cụ thể câu hỏi này.

Câu trả lời:


18

Trên Linux:

chown : "Chỉ một quy trình đặc quyền (Linux: một quy trình có CAP_CHOWN khả năng) mới có thể thay đổi chủ sở hữu của một tệp." (Nguồn: chown (2)) Cách dễ dàng để trở thành một quá trình như vậy là được điều hành bởi root. Xem explain_chownđể được giúp đỡ tìm hiểu tại sao một chownthất bại cụ thể . Xem capabilitiescác cách để cung cấp cho các quy trình khả năng khác hơn là chạy như root.

chmod : Chủ sở hữu của tệp hoặc rootcó thể thay đổi quyền, cộng với các quy trình khác có CAP_FOWNERkhả năng. (Nguồn)

chgrp : "Chủ sở hữu tệp có thể thay đổi nhóm tệp thành bất kỳ nhóm nào mà chủ sở hữu đó là thành viên. Quá trình đặc quyền (Linux: với CAP_CHOWN) có thể thay đổi nhóm tùy ý." (chown (2))


1
Linux bắt đầu triển khai các khả năng vào khoảng năm 2004, nhưng đề xuất POSIX có liên quan đã bị rút lại vào năm 1997. Nếu bạn đang sử dụng một hệ điều hành hiện đại như Solaris, thì PRIV_FILE_CHOWNphải có tất cả các tệp cục bộ và PRIV_FILE_CHOWN_SELFđể các tệp cục bộ do bạn sở hữu. BTW: Một hệ điều hành cho phép truy cập các tệp từ xa từ NFS có thể được coi là rủi ro bí mật. Trên HP-UX, bất kỳ người dùng thông thường nào cũng có thể truy cập các tệp của mình và đây cũng được coi là rủi ro bảo mật.
schily

PS đề xuất POSIX khả năng đã bị rút vì nó chỉ xử lý các đặc quyền giữa người dùng thông thường và người dùng root lịch sử. Solaris có số lượng đặc quyền tốt gấp đôi so với Linux và cho phép loại bỏ các đặc quyền như ví dụ: fork () và exec ().
schily

Lưu ý rằng trên Linux, khi không có đặc quyền, bạn có thể chowncác tệp bạn sở hữu, nhưng chỉ có phần gid (cho bất kỳ nhóm nào bạn là thành viên). Tôi có thể làm chown stephane:other-group myfile(hoặc chown :other-group) miễn là tôi là thành viên của other-group.
Stéphane Chazelas

Còn chgrplệnh thì sao? Bạn có thể vui lòng thêm lời giải thích cho điều đó?
Maxim Koretskyi

@ StéphaneChazelas, cảm ơn, dựa trên câu trả lời của bạn Tôi cho rằng chủ sở hữu có thể chạy thành công chgrpmà không cần người dùng đặc quyền?
Maxim Koretskyi
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.