Người dùng không có đặc quyền (không phải root) không thể gửi chown
tệp đến tên người dùng khác. Để sử dụng chown
, người dùng phải có đặc quyền của người dùng mục tiêu. Nói cách khác, chỉ root
có thể cung cấp một tệp cho người dùng khác.
Như đã giải thích ở đây (cảm ơn @slhck):
Chỉ các quy trình có ID người dùng hiệu quả bằng ID người dùng của tệp hoặc với các đặc quyền phù hợp mới có thể thay đổi quyền sở hữu tệp. Nếu _POSIX_CHOWN_RESTRICTED có hiệu lực cho đường dẫn:
Thay đổi ID người dùng bị hạn chế đối với các quy trình có đặc quyền phù hợp.
Thay đổi ID nhóm được phép theo quy trình có ID người dùng hiệu quả bằng ID người dùng của tệp, nhưng không có đặc quyền phù hợp, nếu và chỉ khi chủ sở hữu bằng với ID người dùng của tệp hoặc (uid_t) -1 và nhóm bằng nhau hoặc ID nhóm hiệu quả của quy trình gọi hoặc một trong các ID nhóm bổ sung của nó.
Lý do đằng sau này đã được giải thích độc đáo bởi @Gilles trong này Unix & Linux câu trả lời:
Lý do cho sự hạn chế này là việc tặng một tệp cho người dùng khác có thể cho phép những điều xấu xảy ra trong trường hợp không phổ biến, nhưng vẫn là những tình huống quan trọng. Ví dụ:
- Nếu một hệ thống có bật hạn ngạch đĩa, Alice có thể tạo tệp có thể ghi trên thế giới trong một thư mục chỉ có thể truy cập bởi cô ấy (để không ai khác có thể truy cập tệp có thể ghi trên thế giới đó trong thư mục), sau đó chạy chown để tạo tệp đó thuộc sở hữu của Bill người dùng khác. Sau đó, tệp sẽ được tính theo hạn ngạch đĩa của Bill mặc dù chỉ Alice mới có thể sử dụng tệp.
- Nếu Alice đưa tập tin cho Bill, Bill sẽ không tạo ra tập tin đó. Đây có thể là một vấn đề nếu tệp chứa dữ liệu bất hợp pháp hoặc làm tổn hại dữ liệu.
- Một số chương trình yêu cầu tệp đầu vào của họ thuộc về một người dùng cụ thể để xác thực yêu cầu (ví dụ: tệp chứa một số hướng dẫn mà chương trình sẽ thực hiện thay mặt cho người dùng đó). Đây thường không phải là một thiết kế an toàn, bởi vì ngay cả khi Bill tạo một tệp chứa các hướng dẫn chính xác về mặt cú pháp, anh ta có thể không có ý định thực hiện chúng tại thời điểm cụ thể này. Tuy nhiên, cho phép Alice tạo một tệp có nội dung tùy ý và lấy nó làm đầu vào từ Bill chỉ có thể làm mọi thứ tồi tệ hơn.