chown - Операция не разрешена

37

Я вошел как миним.

Я не понимаю, почему он не позволяет мне выбирать свой собственный файл без прав su. Очевидно, я могу использовать sudo, но я хотел бы понять, почему? из-за группы 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

источник

Ответы:

51

Непривилегированные пользователи (не root) не могут chownфайлы с другими именами пользователей. Чтобы использовать chown, пользователь должен иметь привилегии целевого пользователя. Другими словами, только rootможет передать файл другому пользователю.

Как объяснено здесь (спасибо @slhck):

Только процессы с эффективным идентификатором пользователя, равным идентификатору пользователя файла или с соответствующими привилегиями, могут изменять владельца файла. Если _POSIX_CHOWN_RESTRICTED действует для пути:

  • Изменение идентификатора пользователя ограничено процессами с соответствующими привилегиями.

  • Изменение идентификатора группы разрешено для процесса с эффективным идентификатором пользователя, равным идентификатору пользователя файла, но без соответствующих привилегий, если и только если владелец равен идентификатору пользователя файла или (uid_t) -1 и группа равна либо к эффективному идентификатору группы вызывающего процесса, либо к одному из его дополнительных идентификаторов группы.

Объяснение этого было хорошо объяснено @Gilles в этом ответе Unix & Linux:

Причина этого ограничения заключается в том, что передача файла другому пользователю может привести к возникновению плохих вещей в необычных, но все же важных ситуациях. Например:

  • Если в системе активированы дисковые квоты, Алиса может создать файл, доступный для записи в мире, в каталоге, доступном только ей (чтобы никто другой не мог получить доступ к этому файлу, доступному для записи в каталоге), а затем запустить команду chown, чтобы сделать этот файл владельцем другой пользователь Билл. После этого файл будет считаться дисковой квотой Билла, даже если файл может использовать только Алиса.
  • Если Алиса передает файл Биллу, нет никаких признаков того, что Билл не создал этот файл. Это может быть проблемой, если файл содержит недопустимые или иным образом компрометирующие данные.
  • Некоторые программы требуют, чтобы их входной файл принадлежал определенному пользователю для аутентификации запроса (например, файл содержит некоторые инструкции, которые программа будет выполнять от имени этого пользователя). Обычно это небезопасный дизайн, потому что даже если Билл создал файл, содержащий синтаксически правильные инструкции, он, возможно, не намеревался выполнять их в это конкретное время. Тем не менее, разрешение Алисе создавать файл с произвольным содержимым и принимать его в качестве входных данных от Билла может только усугубить ситуацию.
terdon
источник
Спасибо @slhck Я проверил manстраницу и не смог найти явного упоминания об этом, ответ обновлен.
Тердон
отличный! теперь ясно ... что если minime входит в группу www-data?
@SandroDzneladze Нет, у вас должен быть такой же идентификатор пользователя, как у пользователя, которого вы хотите назначить.
тердон