Linux下设置权限让用户只删除自己的文件的方法

修复 Linux 上的文件权限错误 | Linux 中国

linux系统下文件的特殊权限

在Linux系统上,文件具有特殊的权限,即SUID、SGID和Sticky。
它们不一样。

SUID,设置用户ID。
这是在文件中设置的。
当用户运行该文件时,会暂时使用文件所有者的权限。
例如/usr/bin/passwd,具有SUID权限,为-rwsr-xr-x。
如果普通用户使用它来更改密码,他们将暂时获得root权限并能够查看/etc/shadow,这是一个只有root才能查看的文件。
如果目录设置为SUID,这个就没用了。

SGID,设置组ID。
这对于文件和目录是不同的。
对于文件来说,执行时使用该文件所属组的权限。
例如,如果一个文件属于一个设计组,则设置SGID,然后用户执行它,即设计组ID。
对于目录,新创建的文件或子目录的组继承父目录的组。
例如,设计目录有一个 SGID,用户 dgn1 在那里创建文件。
该文件所属的组是Design组,而不是用户自己的组。
这样,设计团队的所有成员都将使用该目录,并且文件将归设计团队所有。

粘性的,粘性的一块。
这主要适用于目录。
安装后,用户将只能删除、移动和重命名自己的文件或目录,而不能删除、移动和重命名其他文件或目录。
例如,在/tmp目录下有一个名为drwxrwxrwt的文件,它是Sticky。
任何人都可以在/tmp中创建文件,但只能管理自己的文件,其他人不能乱搞。

这些特殊许可证由数字表示。
SUID 为 4 ,SGID 为 2 ,Sticky 为 1 随意添加。
例如,SUID是4 7 5 5 所有者有SUID,其他人有rwx。
SGID, 2 7 7 0, 目录有SGID并且组可以读、写和执行。
Sticky,1 7 7 7 ,目录有Sticky,任何人都可以读、写和执行它。

仅此而已。