Изменить владельца файла, не будучи пользователем root

Изменить владельца файла, не будучи пользователем root

Я предлагаю, чтобы у меня был файл журнала с разрешением 666 и его владельцем была alice. Так что пользователь 'bob' может сменить его владельца следующим образом:

cp log log.temp; rm log; mv log.temp log

Как же мне устранить этот риск?

решение1

Как сказал выше Андрей, боб может делать то, что вы говорите, только если у него есть права на каталог, содержащий файл. Просто измените права доступа к каталогу на xx5, если вы хотите, чтобы боб имел доступ, но не мог создавать новые файлы.

отПонимание разрешений UNIX

Разрешения на доступ к файлам и папкам означают разные вещи с точки зрения пользователя.

Для файлов

  • Читать: Если содержимое файла можно прочитать
  • Писать:Если пользователь или процесс может записывать в файл (изменять его содержимое)
  • Выполнять:Если файл может быть выполнен

Для каталогов

  • Читать:Если список каталогов можно получить
  • Писать:Если пользователь или процесс может каким-либо образом изменить содержимое каталога: создать новые или удалить существующие файлы в каталоге или переименовать файлы.
  • Выполнять:Если пользователь или процесс может получить доступ к каталогу, то перейдите в него (сделайте его текущим рабочим каталогом)

решение2

Если предположить, что у OP была веская причина предоставить Алисе и Бобу права на запись в каталог журнала, то альтернативный ответ будет таким.

chmod og+t directorypath

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

+tразрешает перемещение и удаление файлов в каталоге только владельцу файла (за исключением root).

Вот как /tmp работает dir.

Связанный контент