Rm: не удается удалить каталог/: Отказано в разрешении

Я создал каталог с именем "shadi" и установил для него это разрешение

sinoosh@ubuntu:/home$ ls -ld shadidrwxr-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" для каталога является обязательным, если вы хотите удалить любой файл из каталога.

terminal screenshot of "ls -ld /home"

Если я нахожусь в каталоге с разрешением "w", я могу удалить любой из его файлов, не беспокоясь о самом разрешении файла.Обратите внимание, что мой нынешний каталог /home/rohith который имеет разрешение "w", и, следовательно, я могу удалить любой из его файлов независимо от прав доступа к файлам.

terminal screenshot of removing /home/rohith/shadi

Если тот же файл создается в каталоге "/ home", у которого нет разрешения "w", я получаю тот же результат, что и у вас ! :)

terminal screenshot of trying to remove /home/shadi

Это происходит потому, что вы не являетесь владельцем каталога, он принадлежит 'root' и группе 'root'. Таким образом, чтобы удалить его, вы можете либо сменить владельца, а затем удалить его (здесь вы повышаете свои права и становитесь "root" для получения права собственности):

sudo chown $USER:$USER ./shadirm -r ./shadi

Или вы отказываетесь от принятия права собственности и делаете sudo rm чтобы повысить свои права и стать "root" для удаления:

sudo rm -r ./shadi

Попробуйте это:

sudo rm -r ./shadi

Разрешения показывают корень владельца и корень группы, поэтому вы должны использовать sudo.

Это разные аккаунты.

Как бы вы ожидали безопасности от своей учетной записи, если бы у всех было разрешение на удаление вашего домашнего каталога?

У вас нет возможности w разрешение на удаление чужого домашнего каталога по умолчанию, за исключением случаев, когда они chmod +w оно.

Вот различные разрешения и пример (-rwxr-x---/rwxrx):

+-+-+-+-+|+| u|g|o|+-+-+-+-+| r|1|1|1|+-+-+-+-+|Ж|2|2|2|+-+-+-+-+| x|4|4|4|+-+-+-+-+|*|7|5|0|+-+-+-+-+
Это происходит примерно так: 1 + 2 + 4 = 7, 1 + 4 = 5, 0 = 0, так что 750, то есть идеальная система разрешений. Владелец (u в данном случае) может читать, записывать и выполнять файл, группа владельца (g в данном случае) может читать и выполнять, и любой другой (o в данном случае) ничего не может сделать. Это легендарный:
u: текущий пользователь (User) g: группы текущего пользователя (Groups)o: не группы текущего пользователя (Others)r: разрешение на чтение (Read) w: разрешение на запись (Write) x: разрешение на выполнение (X-ecute)
.

сначала вы должны получить root-доступ с помощью:

sudo su

затем принудительно удалите файл

rm -rf ./shadi