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

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

Вот пример:

% sudo touch ~/test

% ls -la ~/test    
-rw-r--r-- 1 root root 0 Jun 18 20:31 /home/aboettger/test

% rm ~/test
rm: remove write-protected regular empty file ‘/home/aboettger/test’? Y

% ls -la ~/test
ls: cannot access /home/aboettger/test: No such file or directory
4
задан 18 June 2015 в 21:35

2 ответа

Поскольку для расцепления файла нужен доступ для записи на содержании каталога. Можно действительно получить это косвенно посредством владения каталогом, с тех пор если Вы - владелец, можно всегда предоставлять себе доступ для записи. Но в этом случае Вы найдете, что Ваш корневой каталог, уже, перезаписываем Вами. Владение каталога не является необходимостью. Доступ для записи. Это включает доступ для записи через "другой" через состав группы, или через запись ACL, где они применяются.

8
ответ дан 1 December 2019 в 09:03

Если у Вас есть достаточные полномочия (rwx) в каталоге, можно удалить любой файл в том каталоге.

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

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

связанный системный вызов unlinkat(). Например, при удалении file.txt:

unlinkat(AT_FDCWD, "file.txt", 0)       = 0
1
ответ дан 1 December 2019 в 09:03

Другие вопросы по тегам:

Похожие вопросы: