Không được phép sử dụng chown để thay đổi chủ sở hữu nhóm của một thư mục Tại sao?


10

Tôi đang cố gắng thực thi chowntrên một thư mục có các quyền và chủ sở hữu sau:

drwxrwxr-x 2 justin devs  4096 Jan  1 20:42 test

Tôi đang cố gắng thực hiện đơn giản như sau với tư cách là justinngười dùng:

chown justin:nginx test

Vì vậy, về cơ bản chỉ cần thay đổi chủ sở hữu nhóm nginx, nhưng tôi đang nhận được:

chown: changing ownership of `test/': Operation not permitted

Có ý kiến ​​gì không?

Câu trả lời:


15

Đầu tiên, sử dụng chgrplệnh thay vì chown và điều đó sẽ làm việc.

Trong trường hợp sử dụng chown ..... Vì lý do bảo mật trong hầu hết các bối cảnh Linux, mọi thay đổi quyền sở hữu đều bị hạn chế đối với người dùng root mặc dù bạn có được đánh dấu là chủ sở hữu của tệp, thư mục, v.v. Trong một trường hợp, điều này là để ngăn người dùng trốn tránh hạn ngạch bằng cách đặt các bit cho phép tệp thành 777 và thay đổi quyền sở hữu tệp thành một số người dùng không xác định khác và ăn hết hạn ngạch của họ.

Vì vậy, sử dụng chownlệnh trong ngữ cảnh người dùng, đặc biệt là khi quyền sở hữu không thay đổi không nên được sử dụng chỉ để thay đổi nhóm của tệp.

LƯU Ý: Bạn phải là thành viên của nhóm bạn đang cố gắng thay đổi tệp thành. Điều này có thể được xác minh bởi id -a. Nếu bạn không ở trong nhóm, bạn sẽ nhận được thông báo này mặc dù bạn là chủ sở hữu của tệp.


1
Điều tương tự với chgrp nginx test, Hoạt động không được phép.
Justin

Nếu bạn đang chạy lệnh chgrp với tư cách là chủ sở hữu của nút, thì nó sẽ hoạt động. Là hệ thống tập tin của bạn được gắn CHỈ ĐỌC?
mdpc

Không có tác dụng. Đây là một trường hợp thử nghiệm:$ mkdir test $ chgrp nginx test/ chgrp: changing group of test/: Operation not permitted $ ll total 4 drwxrwxr-x 2 justin justin 4096 Jan 1 21:18 test
Justin

1
Hiểu rồi .... bạn không thể thay đổi quyền sở hữu thành một nhóm mà bạn không được phép tham gia. Kiểm tra id -ađể xác minh rằng nhóm bạn đang cố gắng thay đổi tệp có sẵn cho bạn.
mdpc

1
vâng, đó là giải pháp.
mdpc

4

Bạn phải là một phần của nhóm để có thể thay đổi quyền sở hữu nhóm hiện tại thành. Bạn có thể chỉnh sửa /etc/groupstệp dưới dạng root để đảm bảo rằng người dùng justin là một phần của nhóm nginx. Sau khi thực hiện thay đổi cho nhóm, bạn cần đăng nhập lại vào hệ thống để khiến nó bị ảnh hưởng hoặc thay đổi thành nhóm mà không cần khởi động lại / đăng xuất, bạn có thể sử dụng cmd newgrp nginx.

Bây giờ bạn sẽ có thể thay đổi nhóm của tệp hoặc thư mục với cmd chgrp nginx testlà người dùng justin.

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.