Пример:

Пример:

Я знаю, что удаление файла зависит от прав доступа к содержащему его каталогу, а не к самому файлу.см. например здесь

Но что насчет непустого каталога? Использование rm -rf NON_EMPTY_DIRне удается, поскольку файлы в каталоге не могут быть удалены. Является ли сохранение каталога непустым и недоступным для записи для других безопасным способом предотвращения удаления папки другими пользователями?

Пример:

# Create write-all outer dir
mkdir outer
chmod 777 outer
# Create two subdirectories, one of which is empty, one not, 
# and none are writable by anyone
mkdir outer/{non-,}empty 
touch outer/non-empty/file
chmod 555 outer/*

ls -la outer
## drwxrwxrwx  4 user user    80 May 31 15:12 .
##   [ .. does not matter here ]                   
## dr-xr-xr-x  2 user user    40 May 31 15:12 empty
## dr-xr-xr-x  2 user user    60 May 31 15:12 non-empty

rm -rf outer/empty
# Succeeds
rm -rf outer/non-empty
# rm: cannot remove outer/non-empty/file: Permission denied

решение1

Они не смогут удалить его, но переименуют или переместят куда-нибудь. Он не исчезнет, ​​но будет выглядеть именно так.

решение2

Может ли кто-нибудь удалить мой непустой каталог из каталога, доступного для записи всем, не имея на него прав записи?

Нет.

Является ли сохранение каталога непустым и недоступным для записи для других безопасным способом предотвращения удаления папки другими пользователями?

Да.

rmdirне работает с непустыми каталогами, и без прав записи они не могут сделать его пустым.

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