nik*_*000 0 users permissions group
我创建了 user small,将他添加到组kek并允许该组仅读取用户主目录中的文件。然后我将所有文件 chown 到root:kek. 但是,small仍然可以删除他家目录中的文件。
我运行的命令:
useradd -ms /bin/bash small
groupadd kek
usermod -a -G kek small
chown -R root:kek /home/small/*
chmod -R g=r /home/small/*
Run Code Online (Sandbox Code Playgroud)
然后当我尝试删除文件时:
$ 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
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况?
是否可以删除文件不是文件的属性,而是文件所在目录的属性。用户不能删除位于他们无法写入的目录中的文件。
文件(和子目录)是目录节点中的条目。要删除文件,需要将其与目录节点断开链接,因此必须具有对该目录的写权限才能删除其中的文件。
有关的: