ユーザーに[重複]に書き込む権限がないファイルを削除するロジック

ユーザーに[重複]に書き込む権限がないファイルを削除するロジック

書き込み権限なしでホームディレクトリにファイルを作成する場合:

$ umask 777; touch testfile
$ ls -ln testfile
---------- 1 1000 1000 0 2014-03-21 16:52 testfile
$

..これにより、ファイルを簡単に削除できます。

$ rm -fv testfile
removed `testfile'
$ 

書き込み権限がないディレクトリに書き込み権限なしでファイルを作成すると、そのファイルを削除できません。

$ ls -lnd /var/
drwxr-xr-x 14 0 0 4096 2014-03-21 17:04 /var/
$ ls -ln /var/testfile
---------- 1 1000 1000 0 2014-03-21 17:04 /var/testfile
$ rm -vf /var/testfile 
rm: cannot remove `/var/testfile': Permission denied
$ 

書き込み権限が親ディレクトリから継承されるのは正しいですか?読み取りおよび実行権限も同じですか?

ベストアンサー1

いいえ、権限はこの方法で継承されません。理由は少し異なります。ファイルの削除はファイルに書き込むとは見なされず、ディレクトリに書き込むと見なされます。そのため、ファイルに対する権限がなくてもファイルを削除できます。コンテンツ

ファイル全体の削除は、ファイルの編集と基本的に異なると見なされます。ディレクトリへの書き込み権限を持たないファイルに対してできる最善の方法は、内容を空にすることです。ただし、ディレクトリエントリを削除することはできません。

おすすめ記事