例:

例:

ファイルの削除は、ファイル自体ではなく、インクルードディレクトリに対する私の権限に依存していることを知っています。たとえば、ここを参照してください。

しかし、空でないディレクトリはどうですか?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空でないディレクトリでは機能せず、書き込み権限がないとディレクトリを空にすることはできません。

関連情報