cyb*_*x86 18
包含目录的权限决定了重命名和删除文件的能力。
具体来说,要删除/重命名文件,用户需要对包含的目录具有写入和执行(即遍历)权限,并且相关文件不能是不可变的。(在这种情况下,非特权用户甚至可以删除 root 拥有的文件。)
限制删除:
通过使用以下命令在包含目录上设置“粘滞位”(也称为“限制删除标志”),可以将文件删除仅限于文件的所有者(和特权用户):chmod +t directory。设置了粘滞位的目录在最后一个位置显示“t”(例如drwxr-xr-t) - 这也可以通过在 3 位八进制代码前加上“1”(例如chmod 1755 directory)来设置为“八进制”形式。(Linux 忽略文件上的粘性位 - 尽管其他一些操作系统确实为它分配了含义。)
读取权限:
您应该注意,不需要对包含目录的读取权限。没有它,您仍然可以删除文件,如果您知道它的名称,尽管您将无法“读取”目录的内容(例如,没有读取权限,您将无法运行ls)。
不可变文件:
顺便说一句,通过使文件不可变(即chattr +i)所有者和其他用户(包括特权用户)都不能删除(或重命名、链接或修改)该文件,即使他们对该文件具有写权限目录(只有超级用户可以删除它)。