chown - Hoạt động không được phép


37

Tôi đang đăng nhập dưới dạng minime.

Tôi không hiểu tại sao nó không cho phép tôi chọn tập tin mà tôi sở hữu mà không có đặc quyền su. Rõ ràng tôi có thể sử dụng sudo, nhưng tôi muốn hiểu tại sao? vì nhóm dữ liệu www?

chown minime:www-data user-functions.php

ls -lh

-rw-r--r--  1 minime minime    24K Jan  6 16:11 user-functions.php

Error:

chown: changing ownership of `user-functions.php': Operation not permitted

Câu trả lời:


51

Người dùng không có đặc quyền (không phải root) không thể gửi chowntệ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ỉ rootcó 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.


Cảm ơn @slhck Tôi đã kiểm tra mantrang và không thể tìm thấy một đề cập rõ ràng về điều này, câu trả lời được cập nhật.
terdon

tuyệt quá! bây giờ rất rõ ràng ... điều gì xảy ra nếu minime là một phần của nhóm dữ liệu www?

@SandroDzneladze không, bạn cần phải có ID người dùng giống như người dùng bạn muốn truy cập.
terdon
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.