LINUX.ORG.RU

Объясните как работает rm

 , ,


0

1

Привет. Наткнулся на новость на ачате и решил немного поэкспериментировать.

Я создал из под рута файл (папку) с правами удалить файл может только владелец этого файла, а в консоле запустил rm -rf test из под юзера, где test - название моей папки, файла. В итоге моя файл (папка) удалилась. Вопрос: почему? Ведь права же запрещают удалять.

d--------T  2 root root       4096 фев 18 20:35 test
★★★★★

Удаление — это изменение файла-каталога, содержащего удаляемый файл, соответственно и проверяются права на такой каталог.
Ну и root-у можно ;)
На файл можно поставить атрибут immutable, станет нельзя (chattr +i файл).

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 2)

под рутом:

mkdir TEST
cd TEST
chmod 1777 TEST
touch root.txt

под юзером

cd TEST
touch user.txt
rm user.txt #успех
rm root.txt #отказ

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

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

legolegs ★★★★★
()

какие права на папку? 444, 555, 666, 775? В гугл!

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

А-а-а, а я делал все это в каталоге HOME своего user-a. ____________ Но если я не ошибаюсь, то из GUI нельзя удалить из-под user-a папку/файл созданную root-ом. Я читал, что в одном случае это системный вызов, а во втором нет. Как-то так, не помню точно.

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

Действия с файловой системой - это всегда системные вызовы. Из гуи или нет - не важно. Удаление объекта (как и создание) - это изменение директории, в которой он находится. Есть права на изменение директории - пожалуйста (если нет sticky-бита). Нет прав - работайте с теми объектами (файлами, подпапками, fifo, сокетами и пр), которые есть.

legolegs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.