LINUX.ORG.RU

Права для каталогов.

 ,


0

1

Почему я не могу удалить d-wx-wx-wx?

$ mkdir dir1 && chmod 333 dir1
$ mkdir dir2 && touch dir2/file && chmod 333 dir2 
$ rm -rf dir1
$ rm -rf dir2
rm: невозможно удалить 'dir2': Отказано в доступе

r - право на просмотр (ls dir). x - право на вход (cd dir). wx (а не w, как утверждают многие) - право на запись.

Так почему, когда у директории d-wx-wx-wx и внутри лежит файл, я не могу её удалить?



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

Вот поэтому и любят слаку, сидя под рутом таких проблем нет 😂

menangen ★★★★★
()

strace посмотри.

openat(AT_FDCWD, "dir2", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_NOFOLLOW|O_DIRECTORY) = -1 EACCES (Отказано в доступе)
openat(AT_FDCWD, "dir2", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_NOFOLLOW|O_CLOEXEC|O_DIRECTORY) = -1 EACCES (Отказано в доступе)
unlinkat(AT_FDCWD, "dir2", AT_REMOVEDIR) = -1 ENOTEMPTY (Каталог не пуст)

При этом чтение запрещено.

Radjah ★★★★★
()

Ключ -r у rm означает «рекурсивно». То есть rm входит в каталог, читает его содержимое, находит там каталоги, входит в них и т.д. А у тебя на этапе чтения содержимого прав нет.

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