Использование chown для смены владельца группы не допускается ... Почему?


10

Я пытаюсь выполнить chownв каталоге, который имеет следующие разрешения и владельцев:

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

Я пытаюсь просто выполнить следующее как justinпользователь:

chown justin:nginx test

В общем, просто измените владельца группы на nginx, но я получаю:

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

Любые идеи?

Ответы:


15

Сначала используйте chgrpкоманду вместо chown, и это сработает.

В случае использования chown ..... По соображениям безопасности в большинстве контекстов Linux любое изменение владельца ограничено пользователем root, даже если вы помечены как владелец файла, каталога и т. Д. Или нет. В одном случае это делается для того, чтобы пользователи не уклонялись от квот, устанавливая биты разрешения доступа к файлу на 777 и изменяя владение файлом на какого-то другого неизвестного пользователя и поглощая их квоту.

Таким образом, использование chownкоманды в пользовательском контексте, особенно если владелец не изменяется, не следует использовать просто для изменения группы файла.

ПРИМЕЧАНИЕ. Вы должны входить в группу, в которую вы пытаетесь изменить файл. Это может быть подтверждено id -a. Если вы не в группе, вы получите это сообщение, даже если вы являетесь владельцем файла.


1
То же самое chgrp nginx test, операция не разрешена.
— Джастин

Если вы запускаете команду chgrp как владелец inode, это должно работать. Ваша файловая система смонтирована ТОЛЬКО ДЛЯ ЧТЕНИЯ?
— MDPC

Нету не работает. Вот тестовый пример:$ 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
— Джастин

1
Понял .... вы не можете сменить владельца на группу, в которой вам не разрешено находиться. Проверьте, id -aчто группа, в которую вы пытаетесь изменить файл, доступна вам.
— MDPC

1
да, это решение.
— MDPC

4

Вы должны быть частью группы, чтобы иметь возможность изменить текущее владение группой на. Вы можете отредактировать /etc/groupsфайл как root, чтобы убедиться, что пользователь justin является частью группы nginx. После внесения изменений в группу необходимо повторно войти в систему, чтобы она вступила в силу, или перейти в группу без перезапуска / выхода из системы. Вы можете использовать cmd newgrp nginx.

Теперь вы сможете изменить группу файла или папки с помощью cmd chgrp nginx testот имени пользователя justin.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.