Разрешение на папку, принадлежащую пользователю root

Разрешение на папку, принадлежащую пользователю root

Когда я создаю каталог как пользователь root с разрешением 777, то я могу удалить его, когда я вхожу в систему как пользователь по умолчанию, но когда я вхожу как пользователь aили b, я не могу удалить его. Показывается, что разрешение отклонено.

У меня вопрос: почему мой пользователь по умолчанию может удалить папку, созданную пользователем root, а другие пользователи не могут, хотя у всех у них есть права 777.

решение1

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

Пример: я создаю каталог, владельцем которого является пользователь root, в каталоге, владельцем которого я являюсь, а затем удаляю его.

$ sudo mkdir directory
$ ls -l
total 4
drwxr-xr-x  2 root  wheel  512 Nov 25 11:11 directory
$ rmdir directory
$ ls -l

(нет выходных данных)

Теперь, если подкаталогсодержит файлы, то права доступа к этому каталогу становятся более интересными:

$ sudo mkdir directory
$ sudo touch directory/file
$ rm -rf directory
rm: directory/file: Permission denied
rm: directory: Directory not empty

Здесь я не могу удалить подкаталог, поскольку у меня нет прав на удаление файла, который находится внутри него.

Но вы говорите, что разрешения установлены на 777, а это значит, что любой может удалить файлы внутри него:

$ sudo chmod 777 directory
$ rm -rf directory

(Нет ошибки)

Другой пользователь в моей системе все равно не сможет этого сделать, поскольку у него нет прав на запись в каталоге, где я работаю, хотя онмогвсе равно удалитьсодержаниеподкаталога, принадлежащего пользователю root, если этот каталог был им доступен (пользователям потребуются разрешения на выполнение для каталога ивсе родительские каталоги).

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