LINUX.ORG.RU

Удаление файлов другого пользователя

 


0

1

Создаю в домашней директории (обычного пользователя) от рута файл -rw-r--r-- 1 root root 6 июл 19 19:32 0000.txt Потом логинюсь под обычным пользователем и удаляю этот фаил. Как так?

★★

Последнее исправление: voltmod (всего исправлений: 1)

Ответ на: комментарий от voltmod

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

Aber ★★★★★
()

Удаление файла - это изменение(«запись») состояния каталога. Отбери права на запись в каталог у пользователя - и он не сможет удалять файлы, находящиеся в нём.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Отбери права на запись в каталог у пользователя - и он не сможет удалять файлы, находящиеся в нём.

Есть альтернативный вариант, если я ничего не путаю то будет достаточно поставить на каталог sticky bit.
Но пользователь может этот sticky bit снять, так что тут все зависит от того чего хочет ТС.

Aber ★★★★★
()
Ответ на: комментарий от voltmod

да. все правильно.
ты просто смешиваешь в один винегрет запись в каталог (это специализированный файл с набором имен и ссылок на входящие в этот каталог файлы) и запись в непосредственно файл.

pfg ★★★★★
()
Ответ на: комментарий от voltmod

немного странное поведение

В файловых системах для Unix и подобных ОС есть такая сущность как inode. В нём хранится информация о файле: размер, владелец, права, даты и т.д. А вот имя там не хранится. Имя записывается в каталог, что-то вроде: имя -> номер_inode. Когда ты удалешь файл из каталога, такая запись пропадает. Но сам inode и файл могут оставаться, если у файла было больше одного имени. Именно благодаря inode'ам ты можешь создавать несколько имён (жёстких ссылок) для одного файла. А удаляется файл, когда на его inode не ссылается больше ни одного имени.

ls-h ★★★★★
()