chmod-权限管理

chmod的普通用法就不做过多的记录了,主要记录一下suidt sgid sbit权限

Linux下常见的一个命令就是passwd,每个用户都能用这个命令修改自己的密码,但如果查看这个用户的权限,就会发现权限有一个s权限

ll /usr/bin/passwd 
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

![](../../../media/Images/chmod-suid-sgid_2.png | 400)

SUID:表示所有人执行这个文件时,是以这个文件所有者的权限去执行,以passwd这个文件为例就是所有用户执行passwd这个命令时都跟root用户有一样的权限,因为这个文件的所有者权限就是root SGID:表示所有人执行这个文件时,是以这个文件的所属组的权限执行。所属组有什么权限,执行者就有什么权限

SUID特点:

  • 只有可执行文件才能设定 SetUID 权限,对目录设定 SUID,是无效的。

  • 用户要对该文件拥有 x(执行)权限。

  • 用户在执行该文件时,会以文件所有者的身份执行。

  • SetUID 权限只在文件执行过程中有效,一旦执行完毕,身份的切换也随之消失。

配置示例:

chmod 4755 filename

SGID特点:

  • SGID 针对可执行文件有效,普通文件赋予 SGID 没有意义。

  • 用户组需要对此可执行文件有 x 权限;

  • 用户在执行具有 SGID 权限的可执行文件时,用户的群组身份会变为文件所属群组;

  • SGID 权限赋予用户改变组身份的效果,只在可执行文件运行过程中有效;

配置示例:

chmod 2755 filename

SBIT 用途: Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。 SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件,其他用户即使有权限,也只能新增。

配置示例:

chmod 1755 dirname

以数字形式显示目录或文件的权限

stat -c %a FILENAME

查看文件权限及创建、访问、修改时间

stat FILENAME

t权限

在Linux中,当你在/tmp目录上运行ls -ld /tmp时,你可能会看到如下的权限设置:drwxrwxrwt。这个权限设置中有一个特殊的标志,就是最后一个字母 "t"。它的含义是设置了"sticky bit"。

drwxrwxrwt中的每个字符分别表示:

第一个字符 "d" 表示这是一个目录。 "rwx" 表示文件所有者(Owner)对这个目录具有读、写和执行权限。 "rwx" 表示与文件属主同组的用户对这个目录具有读、写和执行权限。 "rwt" 中的 "t" 表示设置了 "sticky bit",这是特殊的权限标志。 "sticky bit" 的作用是防止普通用户删除其他用户的文件或目录。当 "sticky bit" 被设置在一个目录上时,任何用户都可以在这个目录下创建、修改或删除自己的文件,但只有文件的所有者、目录的所有者或超级用户才能删除其他用户创建的文件。这样可以确保/tmp目录下的文件只能被它们的所有者删除,防止其他用户意外或恶意地删除文件。

要为一个目录设置 Sticky Bit 权限,可以使用以下命令:

sudo chmod +t /path/to/directory

要取消目录的 Sticky Bit 权限,可以使用以下命令:

sudo chmod -t /path/to/directory

请注意,只有目录才能设置 Sticky Bit 权限,对文件而言这个权限没有效果。通常,Sticky Bit 权限在临时目录中比较有用,比如 /tmp 目录,以确保只有文件的所有者才能删除自己的文件。

最后更新于