Как работают разрешения на каталоги?

Я не понимаю, как работают разрешения на каталоги. Например:

r : я могу перечислить все существующие файлы в каталоге (например, ls )

w : я могу изменить файл в каталоге, удалить его и создать новый подкаталог

x : я могу получить доступ к каталогу (например, cd )

Если я прав в следующей ситуации:

 -w- 
  • Могу ли я удалить файл, если я уже знаю его имя?
  • Могу ли я удалить файл, даже если у меня нет разрешения на запись в него?

Другой вопрос. В случае залипания (например, /tmp ) я не могу удалить или переименовать файл, если я не являюсь его владельцем: для этого недостаточно разрешений на доступ к файлу?

Разрешение x для каталога dir позволяет вам получить доступ к файлам dir/file . Без него разрешение w совсем не поможет, поскольку для создания или удаления файлов вам нужно будет указывать на них.

Однако, если у вас есть -wx в каталоге, вы можете удалить файлы, если знаете их имена (и создавать новые файлы).

Чтение каталога, то есть распечатка содержимого, не требует доступа ни к одному из dir/file , просто к самому dir , поэтому, если у вас есть r-- , вы можете получить список файлов.

Права доступа к файлу не влияют на удаление файла, даже в липких каталогах, по крайней мере, в моем Linux. Страница man ( chmod (1) ) говорит, что вы должны быть владельцем файла или каталога, чтобы удалить или переименовать файлы из липкого каталога.

 /tmp$ ls -l test -rw-rw-rw- 1 root root 0 Aug 19 16:17 test /tmp$ rm test rm: cannot remove 'test': Operation not permitted 

Смотрите также: Выполнить или прочитать бит. Как работают разрешения каталогов в Linux?