何をすべきか

何をすべきか

私はuserを作成し、smallそれをグループに追加し、kekグループがユーザーのホームディレクトリにあるファイルのみを読み取ることを許可しました。次に、すべてのファイルをroot:keksmall

私が実行したコマンドは次のとおりです。

useradd -ms /bin/bash small
groupadd kek
usermod -a -G kek small
chown -R root:kek /home/small/*
chmod -R g=r  /home/small/*

その後、ファイルを削除しようとすると、次のようになります。

$ ls -l
total 16
-rw-r--r-- 1 root kek  240 Jun 23 06:17 Dockerfile
-rw-r--r-- 1 root kek   39 Jun 21 09:17 flag.txt
-rw-r--r-- 1 root kek 2336 Jun 22 14:19 server.py
-rw-r--r-- 1 root kek   24 Jun 22 08:16 small.py

$ rm flag.txt

$ ls -l
total 12
-rw-r--r-- 1 root kek  240 Jun 23 06:17 Dockerfile
-rw-r--r-- 1 root kek 2336 Jun 22 14:19 server.py
-rw-r--r-- 1 root kek   24 Jun 22 08:16 small.py

$ whoami
small

なぜこれが起こるのですか?

ベストアンサー1

ファイルを削除できるかどうかは、ファイルの属性ではなく、ファイルが配置されているディレクトリの属性です。ユーザーは書き込めないディレクトリにあるファイルを削除できません。

ファイル(およびサブディレクトリ)はディレクトリノードのエントリです。ファイルを削除するにはディレクトリノードからファイルのリンクを解除する必要があるため、ディレクトリ内のファイルを削除するにはディレクトリへの書き込み権限が必要です。

  • ファイルの書き込み権限によって、ファイル内容の変更が許可されるかどうかが決まります。
  • ディレクトリの書き込み権限は、ディレクトリの内容に対する変更が許可されるかどうかを決定します。

関連:

おすすめ記事