ユーザーがグループを介してファイルへの読み取りアクセス権しか持っていない場合でも、グループ内のユーザーはファイルを削除できます。

ユーザーがグループを介してファイルへの読み取りアクセス権しか持っていない場合でも、グループ内のユーザーはファイルを削除できます。

次の権限を持つディレクトリがあります。

drwxrwsr-x 3 john ro 20K Jun 20 14:48 logs

私はjohnとしてログインし、ログ内の新しいファイルをタッチしました。

-rw-r--r-- 1 john ro 0 Jun 20 14:48 d

私が理解しているように、この場合、ジョンだけがファイルdを削除できるはずです。 roグループを持つ他のユーザーはグループ読み取り権限のみを持っているため、ファイルを削除できません。しかし、グループroの他のアカウントを使用して削除しようとすると、ファイルが削除されます!

mathew@ip-10-0-0-148:/mnt/custom/ops/logs$ ls -lrth d
-rw-r--r-- 1 john ro 0 Jun 20 14:48 d
mathew@ip-10-0-0-148:/mnt/custom/ops/logs$ rm d
rm: remove write-protected regular empty file 'd'? yes
mathew@ip-10-0-0-148:/mnt/custom/ops/logs$ ls -lrth d
ls: cannot access 'd': No such file or directory

これは奇妙に見えます!グループメンバーがファイルを読み取ることはできますが、削除できないようにしたいと思います。私は何を見逃していますか?

ベストアンサー1

ファイルを削除するのではなく、ディレクトリからそのエントリを削除することです。これを行うには、ディレクトリ書き込み権限が必要です。 (この権限はあなたの例に存在します)。

粘着性のある部分を見たいかもしれません。これをディレクトリに適用しますchmod +t …/logs/d。これにより、所有者(およびCAP_DAC_OVERRIDE権限を持つユーザーroot)のみがディレクトリからファイルを削除できます。

ファイルにディレクトリエントリがなく、どのプロセスでも開かれていない場合は削除されます。

おすすめ記事