ルート以外の人はフォルダを削除できませんが、書き込みは可能です。

ルート以外の人はフォルダを削除できませんが、書き込みは可能です。

私のUbuntuシステムのext4ファイルシステムには、root以外のユーザーとして、通常の操作中に誤って削除したくないフォルダがいくつかあります。フォルダ内のフォルダ/ファイルを移動、作成、または削除できる必要があります。

(もちろん、ルートは必要なものは何でもできる必要があるため、これはルートではなくユーザーにのみ適用されます)

これを行う必要がある場合は、rootとして実行できます。

答え1

一般ユーザーに削除したくないディレクトリの親ディレクトリへの書き込みアクセス権がないこと、およびユーザーにディレクトリ自体への書き込みアクセス権があることを確認します。このように:

$ tree -pu
.
└── [drwxr-xr-x root    ]  testDir
    └── [drwxrwxrwx user    ]  subDir

上記のように、ディレクトリtestDirはそのディレクトリに属し、書き込み権限のみを持ちrootます。rootディレクトリtestDir/subDirは私のユーザーのもので、誰もがディレクトリへのフルアクセス権を持っています。つまり、ここから自由にファイルを作成して削除できます。

$ touch testDir/subDir/file
$ echo "hello World" > testDir/subDir/file2
$ ls -l testDir/subDir/
total 4
-rw-r--r-- 1 terdon terdon  0 May  1 17:56 file
-rw-r--r-- 1 terdon terdon 12 May  1 17:57 file2
$ rm testDir/subDir/file
$ ls -l testDir/subDir/
total 4
-rw-r--r-- 1 terdon terdon 12 May  1 17:57 file2

ただし、ディレクトリ自体を削除することはできません。

$ rm -r testDir/subDir
rm: cannot remove 'testDir/subDir': Permission denied

空でも動作しません。

$ rm testDir/subDir/*
$ rmdir testDir/subDir/
rmdir: failed to remove 'testDir/subDir/': Permission denied

答え2

ディレクトリを追加専用として表示できます。chattr +a <dir>つまり、そのディレクトリに新しいファイルを作成できますが、削除することはできません。

関連情報