Я сделал каталог названным "shadi" и установил это разрешение для него
sinoosh@ubuntu:/home$ ls -ld shadi
drwxr-xrwx 2 root root 4096 Jul 1 01:58 shadi
В этой ситуации у меня есть полномочия "других", но почему я не могу удалить ее?
sinoosh@ubuntu:/home$ rm -r shadi/
rm: cannot remove ‘shadi/’: Permission denied
Здесь проблема в том, что у вас нет разрешения "w" в каталоге /home
.
При удалении файла обратите внимание, что вы не записываете в этот файл, а изменяете содержимое каталога, в котором находится файл, поэтому наличие разрешения "w" на каталог является обязательным, если вы хотите удалить любой файл из каталога.
Если я нахожусь в каталоге с разрешением "w", я могу удалить любой из его файлов, не беспокоясь о самом разрешении на файл.
Обратите внимание, что мой настоящий каталог /home/rohith
имеет разрешение "w", и поэтому я могу удалить любой из его файлов независимо от разрешения файлов.
Если тот же самый файл создан в каталоге "/home", который не имеет разрешения "w", я получу тот же результат, что и ваш ! :)
Это происходит потому, что вы не являетесь владельцем каталога, он принадлежит 'root' и 'группе корней'. Поэтому, чтобы удалить каталог, вы можете либо изменить владельца и затем удалить его (здесь вы поднимаете свои права и становитесь 'root' для получения права собственности):
sudo chown $USER:$USER ./shadi
rm -r ./shadi
Или вы пропускаете получение права собственности и делаете sudo rm
для поднятия ваших прав и становитесь 'root' для удаления:
sudo rm -r ./shadi
Попробуйте следующее:
sudo rm -r ./shadi
Разрешения показывают корень владельца и группу корней, поэтому вы должны использовать sudo.
используйте эту команду в качестве пользователя root: комната-rf ./shadi
Как бы вы ожидали безопасности от вашей учетной записи, если бы у всех было разрешение на удаление вашего домашнего каталога?
У вас нет разрешения w
на удаление чужого домашнего каталога по умолчанию, за исключением случаев, когда они chmod +w
его.
Вот различные разрешения, и пример (-rwxr-x---
/rwxrx
):
+-+-+-+-+ |+|u|g|o| +-+-+-+-+ |r|1|1|1| +-+-+-+-+ |w|2|2|2| +-+-+-+-+ |x|4|4|4| +-+-+-+-+ |*|7|5|0| +-+-+-+-+Все идет так:
1 + 2 + 4 = 7
, 1 + 4 = 5
, 0 = 0
, то есть 750
, т.е. идеальная система разрешений. Владелец (u
в данном случае) может читать, записывать и выполнять файл, группа владельцев (g
в данном случае) может читать и выполнять, а любой другой (o
в данном случае) ничего не может делать. Такова легенда:u: current user (User) g: current user's groups (Groups) o: not current user's groups (Others) r: read permission (Read) w: write permission (Write) x: execute permission (X-ecute).
вы должны сначала получить root-доступ:
sudo su
затем принудительно удалить файл
rm -rf ./shadi