Linux的特殊权限(Suid、Sgid、Sbit 详解)

这篇具有很好参考价值的文章主要介绍了Linux的特殊权限(Suid、Sgid、Sbit 详解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Linux系统特殊权限概述

在Linux系统中,普通权限我们了解到有r(读)、w(写)、x(执行),这三种权限,但是在我们查看一些其它的文件时,会发现还会有其它权限的字母。例如:s,t 等

比如下面查看的这三个文件的权限,在不同用户权限上面有不同的字母。

Linux的特殊权限(Suid、Sgid、Sbit 详解)

二、suid

1、在介绍这个权限之前需要了解一些问题

1、普通用户可不可以修改密码?

答:是可以的,可以修改自己的密码

2、/etc/shadow 文件的作用是什么?

答:存储用户密码的文件

3、/etc/shadow 文件的权限是怎么样的?

答:----------. 1 root root 1627 5月 17 00:10 /etc/shadow

4、普通用户是否可以修改/etc/shadow 文件?

答:不可以,因为这个文件对于普通用户来说,没有任何权限,所以不能读取,也不能写入。

5、那么普通用户,为什么可以修改密码?

答:

①因为使用了passwd 这个命令

②passwd命令在属主权限位上,原本是x权限,变成了s权限

③s权限在属主权限位,又叫做SetUID权限,简称SUID

④作用:因为在使用有SUID权限的文件或命令时,会以该文件的属主身份去执行该命令。

2、SUID 作用详解

概念:只要一个命令文件在属主权限位上的x变成s的话,那么其它用户在执行这个命令文件时,就会以该命令文件的属主用户身份去执行。

如果该属主权限位上有执行权限,则会显示(小写)s。

如果该属主权限位上没有执行权限,则会显示(大写)S。

[root@centos7 ~]# useradd hello   #创建一个用户
[root@centos7 ~]# passwd hello    #设置它的密码
更改用户 hello 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@centos7 ~]# ll /bin/passwd    #查看passwd命令权限
-rwsr-xr-x. 1 root root 27832 6月  10 2014 /bin/passwd

[root@centos7 ~]# su hello     #切换到hello用户  
[hello@centos7 root]$ passwd    #修改密码
更改用户 hello 的密码 。
为 hello 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的密码:
passwd:所有的身份验证令牌已经成功更新。   #可以成功修改

[hello@centos7 root]$ su root    #返回root用户
密码:
[root@centos7 ~]# chmod u-s /bin/passwd   #修改passwd的权限,去掉suid权限
[root@centos7 ~]# ll /bin/passwd
-rwxr-xr-x. 1 root root 27832 6月  10 2014 /bin/passwd   #发现s变成了x

[root@centos7 ~]# su hello   #再切换到hello用户
[hello@centos7 root]$ passwd   #修改密码
更改用户 hello 的密码 。
为 hello 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
重新输入新的 密码: 
passwd: 鉴定令牌操作错误    #密码无法进行修改

此时,再引入一个问题,如果普通用户在使用passwd命令时,是以root用户身份去执行的话,那普通用户是不是可以修改其它用户的密码?

答:是不可以的,因为在passwd命令中,存在一种判断,此判断会在执行passwd命令时去判断执行的用户时是root还是普通用户,如果是普通用户,那么只能使用passwd命令,后面不可加上参数,如果是root用户,后面才可加上其它参数(参数就是用户)。那么普通用户就无法进行修改其它用户的密码。

3、 授权SUID

授权方式:

chmod   u+s     filename

chmod   4xxx    filename

实例:

[root@centos7 opt]# touch filename   #创建一个文件
[root@centos7 opt]# ll   #查看详细信息
总用量 0
-rw-r--r--. 1 root root 0 5月  16 23:40 filename  #没有属主权限位没有执行权限
[root@centos7 opt]# chmod u+s filename   #在属主权限位上加上s
[root@centos7 opt]# ll   #查看详细信息
总用量 0
-rwSr--r--. 1 root root 0 5月  16 23:40 filename   #因为没有执行权限,所以就显示(大写)S
[root@centos7 opt]# chmod u+x filename   #再添加执行权限
[root@centos7 opt]# ll   #查看
总用量 0
-rwsr--r--. 1 root root 0 5月  16 23:40 filename   #大写S变为小写s,增加了执行权限

或者以下方式
[root@centos7 opt]# touch filename2  #创建一个文件
[root@centos7 opt]# ll   #查看信息
总用量 0
-rwsr--r--. 1 root root 0 5月  16 23:40 filename
-rw-r--r--. 1 root root 0 5月  16 23:46 filename2   #正常创建的权限:644
[root@centos7 opt]# chmod 4744 filename2   #增加SUID权限,并且增加属主的执行权限
[root@centos7 opt]# ll
总用量 0
-rwsr--r--. 1 root root 0 5月  16 23:40 filename
-rwsr--r--. 1 root root 0 5月  16 23:46 filename2   #属主中变成小写s

4、SUID总结

①让普通用户对可执行的二进制文件,临时拥有二进制文件的属主权限

②如果设置的二进制文件没有执行权限,那么SUID的权限就显示为S(大写)

③特殊权限suid仅对二进制可执行程序有效,其它文件或目录无效。

注意: suid不安全,如果使用了普通用户可以使用属主用户的权限,那么普通用户在执行对应命令文件时,就可以任意查看或修改文件内容,比如修改了etc/sudoers 文件,那普通用户相当于超级用户的复制品。

二、Sgid

1、Sgid作用详解

概念:一般情况下是设置给目录使用的,主要目的就是为了让别的用户无法删除其它用户所创建的文件或目录。

如果该属组权限位上有执行权限,则会显示(小写)s。

如果该属组权限位上没有执行权限,则会显示(大写)S。

实例:

[root@centos7 opt]# mkdir ydq   #创建目录
[root@centos7 opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 5月  17 00:23 ydq   #查看权限
[root@centos7 opt]# chmod 777 ydq   #查看权限为777
[root@centos7 opt]# ll
总用量 0
drwxrwxrwx. 2 root root 6 5月  17 00:23 ydq   #权限已修改
[root@centos7 opt]# cd ydq   #进入到cd目录
[root@centos7 ydq]# mkdir aaa  #创建aaa文件
[root@centos7 ydq]# ll
总用量 0
drwxr-xr-x. 2 root root 6 5月  17 00:23 aaa  #可以看到aaa文件的属主和数组都是root
[root@centos7 ydq]# su hello    #切换hello用户
[hello@centos7 ydq]$ mkdir bbb   #创建bbb目录
[hello@centos7 ydq]$ ll
总用量 0
drwxr-xr-x. 2 root  root  6 5月  17 00:23 aaa
drwxrwxr-x. 2 hello hello 6 5月  17 00:24 bbb  #可以看到bbb文件的属主和属组都是hello文件
[hello@centos7 ydq]$ exit  #返回root用户
exit
[root@centos7 ydq]# cd ../   #返回上一级
[root@centos7 opt]# chmod g+s ydq   #将ydq目录增加sgid
[root@centos7 opt]# ll
总用量 0
drwxrwsrwx. 4 root root 28 5月  17 00:24 ydq   #属组的权限已增加了s
[root@centos7 opt]# cd ydq   #进入ydq目录
[root@centos7 ydq]# su hello   #切换hello用户
[hello@centos7 ydq]$ mkdir ccc    #创建目录ccc
[hello@centos7 ydq]$ ll
总用量 0
drwxr-xr-x. 2 root  root  6 5月  17 00:23 aaa
drwxrwxr-x. 2 hello hello 6 5月  17 00:24 bbb
drwxrwsr-x. 2 hello root  6 5月  17 00:25 ccc   #ccc的属组用户已变为跟ydq目录一致的用户

2、授权Sgid

授权方式:

chmod   g+s     filename

chmod   2xxx    filename

3、Sgid总结

①针对用户组权限位修改,用户创建的目录或文件所属组和该目录的所属组一致。

②当某个目录设置了Sgid后,在该目录中新建的文件不在是创建该文件的默认所属组。

③使用Sgid可以使得多个用户之间共享一个目录的所有文件变得简单。

三、sticky bit(沾滞位)

1、sticky bit 详解

如果该其它用户权限位上有执行权限,则会显示(小写)t。

如果该其它用户权限位上没有执行权限,则会显示(大写)T。

概念:只作用在目录上,当一个目录的没有设置sticky bit权限时,并且该目录对所有用户都有读、写、执行权限时,普通用户在该目录下所创建的文件或目录都会被其它用户删除。

[root@centos7 opt]# mkdir yude    #创建目录yude
[root@centos7 opt]# ll   #查看权限
总用量 0
drwxr-xr-x. 2 root root 6 5月  17 09:26 yude   #权限为755
[root@centos7 opt]# chmod 777 yude   #修改权限为777
[root@centos7 opt]# ll
总用量 0
drwxrwxrwx. 2 root root 6 5月  17 09:26 yude  #权限为777
[root@centos7 opt]# cd yude     #进入所创建的目录

[root@centos7 yude]# su hello     #切换到hello用户
[hello@centos7 yude]$ touch aaa   在目录下创建文件aaa
[hello@centos7 yude]$ ll
总用量 0
-rw-rw-r--. 1 hello hello 0 5月  17 09:26 aaa   #文件aaa创建成功

[hello@centos7 yude]$ exit    #返回上一级目录
exit
[root@centos7 yude]# su ydq   #切换到ydq用户
[ydq@centos7 yude]$ ll   
总用量 0
-rw-rw-r--. 1 hello hello 0 5月  17 09:26 aaa   #可以看到hello用户所创建文件aaa
[ydq@centos7 yude]$ rm -rf ./aaa   #进行删除aaa文件
[ydq@centos7 yude]$ ll    #文件已被删除
总用量 0

概念:当一个目录设置了sticky bit权限时,普通用户在该目录下所创建的文件或目录,只能被该文件或目录的属主用户或root用户删除,其它用户无法删除别的用户所创建的目录或文件。

[root@centos7 opt]# ll    #查看权限
总用量 0
drwxrwxrwx. 2 root root 6 5月  17 09:27 yude   #权限为777
[root@centos7 opt]# chmod o+t yude   #增加sticky bit权限
[root@centos7 opt]# ll   #查看权限
总用量 0
drwxrwxrwt. 2 root root 6 5月  17 09:27 yude   #其它用户上权限多了sticky bit权限
[root@centos7 opt]# cd yude  #进入到yude目录下面

[root@centos7 yude]# su hello    #切换hello用户
[hello@centos7 yude]$ touch bbb    #创建一个文件
[hello@centos7 yude]$ ll    #查看文件,文件正常创建
总用量 0
-rw-rw-r--. 1 hello hello 0 5月  17 09:39 bbb    

[hello@centos7 yude]$ exit   #退出当前用户
exit
[root@centos7 yude]# su ydq    #切换到ydq用户
[ydq@centos7 yude]$ ll
总用量 0
-rw-rw-r--. 1 hello hello 0 5月  17 09:39 bbb   #可以查看到hello用户创建的文件
[ydq@centos7 yude]$ rm -rf ./bbb   #进行删除bbb文件
rm: 无法删除"./bbb": 不允许的操作     #无法进行删除

2、授权Sticky bit

授权方式

chmod   o+t     filename

chmod   1xxx    filename

3、Sticky bit 总结

①让多个用户都具有写权限,并让每个用户都只能删除自己的文件

②投入数sticky目录表现在others 的 x 位,用(小写)t 表示,没有执行权限时(大写)T

③一个目录即使使得它的权限为“777” ,如果设置了粘滞位,除了目录的属主和“root”用户有权限删除,其它用户都不允许删除。

四、总结

1、SUID

主要对命令、或者二进制文件,设置了SUID,那么其它用户在执行该文件时,就会以该文件的属主权限来执行。

2、SGID

主要针对目录进行授权,共享目录,设置了SGID,其它任意用户在该目录下所创建的文件或目录,它们的属组用户都会与父目录相同。

3、SBIT

粘滞位,主要针对目录,设置了SBIT,即便该目录对所有用户都有写的权限,除了root用户,其它用户也只能对自己所创建的文件进行删除移动。

r:读 4

w:写 2

x :执行 1

Suid:4000

Sgid :2000

Sbit :1000文章来源地址https://www.toymoban.com/news/detail-459677.html

到了这里,关于Linux的特殊权限(Suid、Sgid、Sbit 详解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux 文件权限讲解(一般权限、特殊权限、隐藏权限、访问控制列表、Umask)

    目录 文件的一般权限 一般权限有哪些 使用ls -l查看文件/目录权限 配置一般权限和文件所属信息 chmod 修改文件权限 chown 修改文件所属信息(所有者和所属组) chgrp 修改文件所属组 文件特殊权限 SUID 针对所有者的特殊权限 SGID SBID 配置特殊权限 umask 修改文件的权限掩码 uma

    2024年02月04日
    浏览(54)
  • Linux系统文件权限详解

    Linux系统中,我们常常使用命令行来对文件进行操作,比如 mkdir -m 777 temp 命令是去创建一个具有最高读写权限的名为 temp 的文件夹。本篇文章详细介绍了 Linux 系统中常见的文件权限表示方法,通过字母表示法和数字表示法展示了不同权限对文件访问的含义。以777、444、600、

    2024年01月25日
    浏览(38)
  • 关于Windows系统中文件夹的【特殊权限】

    在配置文件权限的时候,很多人都会看到权限中有一个特别的权限叫【特殊权限】 如果说一般的权限比方说【修改】,【读取】啥的也都好理解,但这个【特殊权限】是个啥东西?或许很多人并不理解。那为了避免枯燥,这里先把【特殊权限】是个啥先告诉大家。 【特殊权

    2024年02月13日
    浏览(51)
  • 智能电视root,获取最高权限,su: must be suid to work properly解决

    su命令 superuser.apk或supersu.apk sh命令(通常原系统自带) busybox(可选,拓展原系统的命令,原系统自带的命令较少) 当前电视的system.img镜像文件 其实较简单,就是将sh、su、busybox复制到/system/bin或/system/xbin目录下,然后安装superuser.apk到手机,授权应用程序的超级用户请求。

    2024年02月12日
    浏览(72)
  • Linux 安全 - SUID机制

    最初 UNIX 为文件分配了九个允许位,对应三类用户(同主、同组、其他),三种操作(读、写、执行)。后来,UNIX 又增加了三个允许位:set-user-bit(又称 set-user-id 或 setuid)、set-group-bit(又称 set-group-id 或 setgid)、set-other-bit(又称 sticky bit)。看起来似乎是为文件新增加了

    2024年02月07日
    浏览(43)
  • Linux利用Suid提权实验

    1.Suid suid:linux系统文件中除了读(r),写(w),执行(x)权限外,还有s和t这两个特殊的权限。 当s这个标志出现在文件所有者的x权限上时,此时就被称为 SetUid (简称SUID)则当文件被执行时,该文件是以文件所有者UID而不是用户UID 执行程序。 2.查找Suid命令 find / -perm -u=s

    2024年02月03日
    浏览(42)
  • Linux系统:清除文件内容与两个特殊文件

    目录 一、理论 1.清除文件内容 2. /dev/null与 /dev/zero (1)使用echo命令 (2)使用truncate命令 该命令会将文件内容清空,并将文件大小设置为0。 (3)使用cat命令 该命令会将文件内容清空,但是文件大小不变。 (1)/dev/null Linux系统中,/dev/null被称为空设备,是一个特殊的设备

    2024年02月08日
    浏览(44)
  • 【Linux入门】---Linux权限管理详解

    Linux 严格意义上说的是一个操作系统,我们称之为“核心( kernel )“,但我们一般用户,不能直接使用 kernel 。而是通过 kernel 的“外壳”程序,也就是所谓的 shell ,来与 kernel 沟通。如何理解?为什么不能直接使用 kernel ?从技术角度, Shell 的最简单定义:即命令行解释器

    2024年02月07日
    浏览(37)
  • Linux文件权限详解

    Linux是一款功能强大的操作系统,其文件权限系统是确保文件和系统安全的关键组成部分。正确理解和配置文件权限对于维护系统安全至关重要。初次接触Linux时,在公司服务器上处理文件夹或文件时常常碰到 Permission denied 的提示。为了解决问题,我会直接使用一条简单而粗

    2024年02月05日
    浏览(35)
  • Linux基本权限(详解)

    目录 文件权限位  更改文件权限 chmod指令 chown指令  chgrp指令 数字权限 umask命令 显示当前目录下文件的详细信息 ls  -l 也可以写成 ll Linux下文件的权限位共有十个:按照1333来划分 第一位 代表文件类型。 2~ 4位 代表文件拥有者对于该文件所拥有的权限。 5~ 7位 代表文件所属

    2024年02月06日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包