Linux 文件特殊权限 SUID SGID SBIT

  文件除了常规的权限r, w, x 还有一些特殊的权限,s与t权限,具体的用处如下

  1 SetUID

  当s 这个标志出现在文件所有者的x权限上时, 例如/usr/bin/passwd,

[[email protected] ~]# ll -d /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 Feb 22 2012 /usr/bin/passwd

这个文件的权限状态为 -rwsr-xr-x 此时被称作Set UID 简称SUID 的特殊权限。 那么SUID的权限对于一个文件的特殊功能是什么呢?

SUID 仅对二进制程序有效;

执行者对于该程序需要具有x的可执行权限;

本权限仅在执行程序过程中有效;

执行者将具有该程序所有者的权限;

举个例子,我们linux系统中, 所有账号的密码都记录在/etc/shadow 这个文件中,这个文件的权限为---------- 1 root root 1401 Jun 27 16:17 /etc/shadow, 意思是这个文件仅有root可以强制写入。 既然这个文件只有root 可以修改, 那么其他账户能否自己修改自己的密码呢? 显然是可以的,结果不是很冲突麽!

表面上 /etc/shadow  明明只能root强制修改,一般用户不能访问,为什么一般用户还能够修改这个文件内的密码呢?这就是SUID的功能,

  • 普通用户对于/usr/bin/passwd具有x 权限的,它能够执行passwd这个命令;
  • passwd这个命令的拥有者是root;
  • 普通用户执行passwd的过程中,会“暂时”获得root权限;
  • 普通用户执行passwd命令时暂时获得root权限时就可以修改/etc/shadow

如果普通用户执行cat命令去读取/etc/shadow时,能够读取吗?显然不能,因为cat 不具有SUID权限。

此外SUID仅可用在二进制程序上,不能够用在shell script上。

2 Set GID

当s 标志在文件所有者的x 项目为SUID, 那 s 在用户的 x 时称为Set GID即 SGID. 举个例子来说明

[[email protected] ~]# ls -l /usr/bin/locate
-rwx--s--x. 1 root slocate 38464 Oct 10 2012 /usr/bin/locate

/usr/bin/locate 这个程序可以去查询 /var/lib/mlocate/mlocate.db 这个文件的内容,因为他们属于同一个用户组,如果我们使用普通账号执行locate时, 那这个账号就可以取得slocate 用户组的支持,因此它就可以访问mlocate.db的内容

[[email protected] ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db
-rwx--s--x. 1 root slocate 38464 Oct 10 2012 /usr/bin/locate
-rw-r----- 1 root slocate 4028188 Jun 27 03:13 /var/lib/mlocate/mlocate.db

与SUID不同的是,SGID可以针对文件或者目录来设置。如果是针对文件,SGID与SUID类似

  • SGID 仅对二进制程序有用;
  • 程序执行者对于该程序需要具备 x 的权限;
  • 执行者在执行的过程中获得该程序用户组的支持;

  除了二进制程序之外,SGID能够用在目录上, 当一个目录设置了SGID之后具有如下功能:

  • 用户若对于此目录具有 x 与 r 的权限时,该用户能够进入此目录;
  • 用户在此目录下的有效用户组将会变成该目录的用户组;
  • 若用户在此目录下具有w权限, 则用户所创建的新文件的用户组与此目录的用户组相同;

  3 Sticky Bit

  Sticky Bit 仅针对目录有效, 它对于目录的作用是:

  • 当用户对于此目录具有 w, x 权限时;
  • 当用户在该目录下创建文件或目录时,仅有自己与root 才有权利删除该文件;

  举例来说, /tmp 本身的权利是 drwxrwxrwt 这样的权限下任何人都可以在 /tmp 内添加、修改文件,但仅有该文件/目录创建者与root 能够删除自己的目录或者文件,这个特性非常重要。

  4 SUID/SGUID/SBIT 权限设置

  如何配置文件或者目录使其具有SUID与SGID的权限呢,我们在之前的配置r, w, x的数字前面加上一个数字就可以配置权限了

  • 4 为SGUID
  • 2 为SGID
  • 1 为 SBIT

  举例,如果将一个文件权限改为 "-rwsr-xr-r" 时,由于s 在用户权限中,所以是SUID,在原来的基础755之前加上4即可, chmod 4755 filename

时间: 2025-01-01 09:35:29

Linux 文件特殊权限 SUID SGID SBIT的相关文章

Linux 学习:文件特殊权限SUID, SGID, SBIT

本次记录Linux特殊权限SUID.SGID.SBIT相关知识及使用实例等. 由于SUID和SGID涉及到系统安全,所以对它们知识点的掌握尤为重要. 关于文件权限的表示方法和解析 SUID是Set User ID,SGID是Set Group ID的意思. Linux下可以用ls –l命令来查看文件的权限.用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 这种方法共有十位 9 8 7 6 5 4 3 2 1 0 -  r w x r  -  x  r - x 第9位表示文件类型,

文件特殊权限 SUID\SGID\SBIT

一.SUID 可以查看/usr/bin/passwd文件参照 该文件在属主上有s权限,就是我们说的SUID特殊权限,可以使用数字4添加 如:chmod 4xxx /usr/bin/passwd 该特殊权限指的是:用户在执行该文件时,有文件属主的权限 举个栗子: 使用www用户执行/usr/bin/passwd,由于/usr/bin/passwd有SUID特殊权限,而/usr/bin/passwd的属主是root,所以www用户执行/usr/bin/passwd就相当于root用户来执行/usr/

【Linux】文件特殊权限 SUID/SGID/Sticky Bit

linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/bin/passwd 与/etc/passwd文件的权限 [[email protected] ~]# ls -l /usr/bin/passwd /etc/passwd-rw-r--r-- 1 root root 1549 08-19 13:54 /etc/passwd-rwsr-xr-x 1 ro

文件特殊权限 SUID,SGID,Sticky 笔记

SUID : 运行某程序时 , 相应进程的属主是程序文件自身的属主,而不是启动者 chmod u+s FILENAME  (添加 SUID 权限)      chmod u-s FILENAME  (除去 SUID 权限) 如果 FILE 本身原来就有执行权限,则 SUID 显示为 s ; 否则显示 S; passwd 命令默认具有 SUID 权限 SGID : 运行某程序时 , 相应进程的属组是程序文件自身的属组,而不是启动者 (目录有SGID权限后,在该目录下创建文件目录时,创建后的属组为目

Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

文件默认权限:umask [[email protected] ~]# umask 0022 <==与一般权限有关的是后面三个数字! [[email protected] ~]# umask -S u=rwx,g=rx,o=rx 默认的情况如下: 若使用者创建为『文件』则默认『没有可运行( x )权限』,亦即只有 rw 这两个项目,也就是最大为 666 分,默认权限如下: -rw-rw-rw- 若使用者创建为『目录』,则由於 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777

Linux之特殊权限(SUID/SGID/SBIT)

特殊权限的介绍 Set UID 当s这个标志出现在文件所有者的x权限上时,如/usr/bin/passwd这个文件的权限状态:"-rwsr-xr-x.",此时就被称为Set UID,简称为SUID.那么这个特殊权限的特殊性的作用是什么呢?1.SUID权限仅对二进制程序(binary program)有效:2.执行者对于该程序需要具有x的可执行权限:3.本权限仅在执行该程序的过程中有效(run-time):4.执行者将具有该程序拥有者(owner)的权限.SUID的目的就是:让本来没有相

《Linux鸟哥的私房菜》笔记6:SUID/SGID/SBIT权限简要说明

文件特殊权限 SUID 设置的对象: 文件 产生的作用:可使对于该文件有x权限的执行者获得程序所有者Owner的权限,只对binary program有效 举例: /usr/bin/passwd 该文件权限为:-rws r-x r-x 对于Others的用户帐号有x执行权限,并且其owner权限处设了s,所以可以让others的帐号对于该文件有了owner的权限,不过执行权限仅在该程序的过程中(run-time)内有效 SGID 设置的对象:文件和目录 对文件设置后的作用:SGID只对binar

文件的特殊权限:SUID SGID SBIT

文件的特殊权限:SUID SGID SBIT我们提到关于文件的重要权限,那就是r,w,x这三个读,写,执行的权限,但是我们发现/tmp目录权限就很奇怪, 还有/usr/bin/passwd和  /usr/bin/wall SETUIDSUID仅可以用在二进制程序上,不能够用在shell script上面suid的限制与功能:1.SUID仅对二进制程序有效2.执行者对于该程序需要有X的可执行权限3.本权限仅在执行该程序的时候有效4.执行者将具有该程序所有者的权限 SETGID SGID可以对文件或

Linux文件系统上的特殊权限 &nbsp; &nbsp; &nbsp;SUID, SGID, Sticky(粘之位)

每个人都有自己的梦想,我想把它写出来. Linux文件系统上的特殊权限 SUID, SGID, Sticky(粘之位) 1 文件基本权限 r读, w写, x执行 user, group, other 2 安全上下文 前提:进程有属主和属组:文件有属主和属组: (1) 任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限: (2) 启动为进程之后,其进程的属主为发起者:进程的属组为发起者所属的组: (3) 进程访问文件时的权限,取决于进程的发起者: (a) 进程的发起者,同