第十六天-linux文件系统特殊权限suid-sgid

  在Linux系统中,有时候执行某个命令时,需要对另一个文件进行操作,而要做的文件又不是普通用户有权限进行操作的。例如,修改用户密码passwd,该命令文件的所有者和组都是root,同组用户和其他用户都具有执行权限,即普通用户也可以使用命令修改自己的密码,而被修改的文件/etc/passwd又没有普通用户的权限,这时就可以通过suid来解决。提示:用八进制数4000表示setuid权限位。

suid知识小结:
1、用户对应的前三位的x位上如果有s就表示设置了suid。当x位上没有x的时候,suid就是S。
2、setuid位是让普通用户可以以root(或其他)用户的角色运行root(或其他)账号才能运行的程序或命令。
3、仅对二进制命令或程序有效,不能用在shell等类似脚本文件上(因为shell脚本仅仅调用二进制命令程序而已,因此,具有权限还需要看二进制命令本身)。
4、二进制命令或程序需要可执行权限x。
5、suid修改的是执行命令的权限,而不是处理的目标文件的权限。
6、suid权限仅在程序执行过程中有效。
7、执行命令的任意系统用户都可以获得该命令程序执行期间对应的拥有者的所有权限。
8、suid是一把双刃剑,是一个比较危险的功能,对系统安全有一定的威胁。系统中很少用到suid功能的命令将其取消suid权限(安全优化)。

举例:

[email protected]:~$ which passwd
/usr/bin/passwd
[email protected]:~$ ls -l `which passwd`
-rwsr-xr-x 1 root root 51224  7月 22 21:49 /usr/bin/passwd
[email protected]:~/test/suid$ touch suid
[email protected]:~/test/suid$ ls -l
-rw-rw-r-- 1 xiaorui xiaorui 0 11月 28 20:59 suid
[email protected]:~/test/suid$ chmod 4664 suid
[email protected]:~/test/suid$ ls -l
-rwSrw-r-- 1 xiaorui xiaorui 0 11月 28 20:59 suid
[email protected]:/lrz$ rm -f suid
rm: cannot remove ‘suid‘: Permission denied
[email protected]:/lrz# chmod u+s suid
[email protected]:/lrz# ls -l
-rwSr--r-- 1 root root 0 11月 28 21:13 suid
[email protected]:/lrz$ rm -f suid
rm: cannot remove ‘suid‘: Permission denied
[email protected]:~# which rm
/bin/rm
[email protected]:~# chmod u+s /bin/rm
[email protected]:~# ls -l /bin/rm
-rwsr-xr-x 1 root root 60160 11月  5 01:45 /bin/rm
[email protected]:/lrz$ ls -l suid
-rwSr--r-- 1 root root 0 Nov 28 21:13 suid
[email protected]:/lrz$ rm -f suid
[email protected]:/lrz$ ls 

如何查找拥有suid权限的文件?

[email protected]:~# find /usr/bin -type f -perm 4755
/usr/bin/passwd
/usr/bin/pkexec
/usr/bin/newgrp
/usr/bin/sudo
/usr/bin/mtr
/usr/bin/chfn
/usr/bin/gpasswd
/usr/bin/chsh
[email protected]:~#
[email protected]:~# find /usr/bin -type f -perm 4755|xargs ls -l
-rwsr-xr-x 1 root root  50712  7月 22 21:49 /usr/bin/chfn
-rwsr-xr-x 1 root root  41432  7月 22 21:49 /usr/bin/chsh
-rwsr-xr-x 1 root root  68312  7月 22 21:49 /usr/bin/gpasswd
-rwsr-xr-x 1 root root  75320 10月 25  2014 /usr/bin/mtr
-rwsr-xr-x 1 root root  36688  7月 22 21:49 /usr/bin/newgrp
-rwsr-xr-x 1 root root  51224  7月 22 21:49 /usr/bin/passwd
-rwsr-xr-x 1 root root  23304 11月 25 05:16 /usr/bin/pkexec
-rwsr-xr-x 1 root root 151072  3月 13  2015 /usr/bin/sudo
[email protected]:~# find /usr/bin -type f -perm 4755 -exec ls -l {} \;
-rwsr-xr-x 1 root root 51224  7月 22 21:49 /usr/bin/passwd
-rwsr-xr-x 1 root root 23304 11月 25 05:16 /usr/bin/pkexec
-rwsr-xr-x 1 root root 36688  7月 22 21:49 /usr/bin/newgrp
-rwsr-xr-x 1 root root 151072  3月 13  2015 /usr/bin/sudo
-rwsr-xr-x 1 root root 75320 10月 25  2014 /usr/bin/mtr
-rwsr-xr-x 1 root root 50712  7月 22 21:49 /usr/bin/chfn
-rwsr-xr-x 1 root root 68312  7月 22 21:49 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 41432  7月 22 21:49 /usr/bin/chsh

sgid知识小结:
  与suid不同的是,sgid既可以针对文件也可以针对目录设置。
  对于文件,sgid的功能如下:
    1、sgid仅对二进制命令及程序有效。
    2、二进制命令或程序需要有可执行权限x。
    3、执行程序的任意用户可以获得该命令程序执行期间所属组的权限。
  对于目录,sgid的功能如下:
    1、用户在此目录下创建的文件和目录,具有和此目录相同的用户组。
    setgid位主要用在目录中,当为某个目录设置了setgid位之后,在该目录中新创建的文件具有该目录的所有者权限,而不是创建该文件的用户的默认所有者。这样,使得在多个用户之间共享一个目录中的文件变得简单。提示:用八进制数2000表示setgid权限位。
sgid locate命令案例:

[email protected]:~# which locate
/usr/bin/locate
[email protected]:~# ls -l `which locate`
lrwxrwxrwx 1 root root 24  9月 20 07:49 /usr/bin/locate -> /etc/alternatives/locate
[email protected]:~# ls -l /etc/alternatives/locate
lrwxrwxrwx 1 root root 16  9月 20 07:49 /etc/alternatives/locate -> /usr/bin/mlocate
[email protected]:~# ls -l /usr/bin/mlocate
-rwxr-sr-x 1 root mlocate 39520 11月 18  2014 /usr/bin/mlocate
[email protected]:~# ls -l /var/lib/mlocate/mlocate.db
-rw-r----- 1 root mlocate 9988044 11月 28 20:36 /var/lib/mlocate/mlocate.db

rhce考试题:
  创建共享目录:创建共享目录/home/admins,属组为adminuser,adminuser组成员对目录有读写和执行的权限,其他所有用户没有任何权限(除root除外),在/home/admins目录中创建的文件,会自动继承adminuser组

[email protected]:~# groupadd adminuser
[email protected]:~# mkdir /home/admins
[email protected]:~# ls -ld /home/admins
drwxr-xr-x 2 root root 4096 11月 28 22:09 /home/admins
[email protected]:~# chown .adminuser /home/admins/
[email protected]:~# ls -ld /home/admins
drwxr-xr-x 2 root adminuser 4096 11月 28 22:09 /home/admins
[email protected]:~# chmod 2770 /home/admins/
[email protected]:~# ls -ld /home/admins/
drwxrws--- 2 root adminuser 4096 11月 28 22:09 /home/admins/
[email protected]:~# touch /home/admins/sgid.txt
[email protected]:~# ls -l /home/admins/sgid.txt
-rw-r--r-- 1 root adminuser 0 11月 28 22:10 /home/admins/sgid.txt

suid、sgid小结:
     针对suid以及sgid,工作中尽量不用,多用sudo 管理,如果有可能查找系统无用suid位的命令等进行撤除。s S都是suid(用户位),sgid(用户组位)的标示,和x重合时就显示小写的字母s。

粘滞位sticky Bit(sbit)及设置方法
  粘滞位的理解,我们还是先看一个例子:

[email protected]:~# ls -ld /tmp
drwxrwxrwt 17 root root 4096 11月 28 23:57 /tmp

  我们看到/tmp权限位最后的一个字母是t,这就是设置了粘滞位。
  粘滞位的设置,用八进制的1000位来表示

  粘滞位的功能现在也很少用了,不过对与像/tmp目录这样的,是整个系统临时文件存储地,还是有点意义。一个目录即使它的所有权限都放开rwxrwxrwx,如果是设置了粘滞位,除非目录的属主和root用户有权限删除它,除此之外其他用户不能删除这个目录。用途一般是把一个文件夹的权限都打开,然后来共享文件,像/tmp目录一样。
sticky:比sgid更安全,让多个用户都具有写权限的目录,每个用户只能删除自己的文件。表现在other位,用t表示,如果没有执行权限,那么就是T,如果有执行权限,那么就是t。
  特殊权限对应的数字suid 4000 ,sgid 2000,粘滞位1000

时间: 2024-10-24 02:26:00

第十六天-linux文件系统特殊权限suid-sgid的相关文章

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的

linux文件系统特殊权限及suid sgid sticky

linux文件系统特殊权限及suid sgid sticky 1.Linux文件系统上的特殊权限 权限模型: u, g, o r, w, x 2.进程的安全上下文: 前提:进程有属主(进程以哪个用户的身份运行):文件有属主和属组: (1) 用户是否能够把某个可执行程序文件启动为进程,取决于用户对程序文件是否拥有执行权限: (2) 程序启动为进程后,此进程的属主为当前用户,也即进程的发起者:进程所属的组,为发起者的基本组: (3) 进程拥的访问权限,取决其属主的访问权限: (a) 进程的属主,同文

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

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

024特殊权限suid,sgid,sticky

特殊权限suid,sgid,sticky 查看umask(set_uid=4,set_gid=2,stick_bit=1) set_uid(给普通用户拥有当前文件用户的执行权) ls -l 可以看见文件属性(执行二进制文件)(root用户不受限制) chmod u+s XXX 如:-rwxr-x--x root:root xxxx.sh -rwsr-x--x root:root xxxx.sh  (有x权限会是s的情况就可以临时身份执行,大写S就是没有x权限的时候显示) set_gid(sgid

Linux 文件系统于权限(学习记录)

Linux文件与权限 ??在Linux中有着一切皆文件的说法,而文件的权限大小和用户所拥有的权限决定了用户对文件的控制程度,因此文件的权限和用户的权限对Linux中文件和系统的安全有很大的影响. 一. 文件系统 1.在linux中文件和目录被组织成一个单根倒置的结构,所有文件从根(/)下开始. 2.Linux文件名称区分大小写. 3.文件有两类数据:元数据(metadata)和数据(data).其中元数据存放的是文件的iNode等信息,数据存放的是文件的具体内容. 4.文件名最长255个字节.各

Linux系统上的特殊权限SUID,SGID,STICKY以及额外权限管理工具facl命令

Linux系统上的特殊权限 特殊权限:SUID, SGID, STICKY 安全上下文: 1.进程以某用户的身份运行:进程是发起此进程用户的代理,因此以此用户的身份和权限完成所有操作: 2.权限匹配模型: (1) 判断进程的属主,是否为被访问的文件属主:如果是,则应用属主的权限:否则进入第2步: (2) 判断进程的属主,是否属于被访问的文件属组:如果是,则应用属组的权限:否则进入第3步: (3) 应用other的权限: SUID: 默认情况下:用户发起的进程,进程的属主是其发起者:因此,其以发起

linux系统上的特殊权限SUID,SGID,STICKY

特殊权限:SUID SGID STICKY linux的安全上下文: 1.进程以用户的身份运行,进程是发起此用户的代理,因此以此用户的身份和权限完成所有的操作. 2.权限匹配模型: 1)判断进程的属主,是否以被访问的文件属主.如果是,则应用属主权限,否则进入第2步. 2)判断进程的属主,是否属于被访问的文件属组.如果是,则应用属组的权限,否则进入第3步. 3)应用other的权限. SUID: 默认情况下,用户发起的进程,进程的属主是其发起者,因此,其以发起者的身份在运行. SUID的功用:用户

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,Sticky 笔记

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