Использование 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.

Cloudmeteor
источник