文章目录

  • 一、Linux系统特殊权限概述
  • 二、suid
    • 1、在介绍这个权限之前需要了解一些问题
    • 2、SUID 作用详解
    • 3、 授权SUID
    • 4、SUID总结
  • 二、Sgid
    • 1、Sgid作用详解
    • 2、授权Sgid
    • 3、Sgid总结
  • 三、sticky bit(沾滞位)
    • 1、sticky bit 详解
    • 2、授权Sticky bit
    • 3、Sticky bit 总结
  • 四、总结

一、Linux系统特殊权限概述

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

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

二、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     filenamechmod   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     filenamechmod   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     filenamechmod   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

Linux的特殊权限(Suid、Sgid、Sbit 详解)相关推荐

  1. linux 文件访问控制 特殊权限 suid,sgid,sbit

    setuid 和 setgid 分别是 set uid ID upon execution 和 set group ID upon execution 的缩写.我们一般会再次把它们缩写为 suid 和 ...

  2. linux suid权限,Linux 学习:文件特殊权限SUID, SGID, SBIT

    本次记录Linux特殊权限SUID.SGID.SBIT相关知识及使用实例等. 由于SUID和SGID涉及到系统安全,所以对它们知识点的掌握尤为重要.关于文件权限的表示方法和解析 SUID是Set Us ...

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

    Linux之特殊权限(SUID/SGID/SBIT) 博客分类: Linux Linux脚本UnixF#  特殊权限的介绍 Set UID 当s这个标志出现在文件所有者的x权限上时,如/usr/bin ...

  4. linux特殊权限SUID,SGID和SBIT的介绍

    先来看看两个特殊的文件与目录 [root@ldz ~]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 26968 Jan 29  2010 /usr/b ...

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

    每个人都有自己的梦想,我想把它写出来. Linux文件系统上的特殊权限 SUID, SGID, Sticky(粘之位) 1 文件基本权限 r读, w写, x执行 user, group, other ...

  6. Linux配置启动挂载:fstab文件详解

    Linux配置启动挂载:fstab文件详解 [日期:2014-12-23] 来源:Linux社区 作者:aceking10 [字体:大 中 小] fstab文件介绍 fstab文件包含了你的电脑上的存 ...

  7. linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)

    linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...

  8. 阿里云linux centos 一键部署web环境--图文详解

    阿里云linux centos 一键部署web环境--图文详解 标签: linux阿里云一键部署 2017-04-15 12:28 386人阅读 评论(0) 收藏 举报  分类: linux(11)  ...

  9. unix/linux命令“ls -l”选项输出结果详解

    from: http://hi.baidu.com/hoxily/item/12e2a02d03f77e0942634a8e unix/linux命令"ls -l"选项输出结果详解 ...

最新文章

  1. debian gnu linux8,Debian GNU/Linux 9.3 Stretch 和8.10 Jessie正式发布
  2. linux查看用户的操作记录,Linux下查看用户登陆后的操作记录
  3. JMF调用摄像头粉屏的问题(win10 64位系统)
  4. java协变返回类型_Java中的协变返回类型
  5. Mysql ==》 单表查询
  6. 解决vue2.0路由 TypeError: Cannot read property ‘matched‘ of undefined 的错误问题
  7. linux两种库:动态库和静态库(共享库)说明
  8. linux怎么进入etc目录,Linux 系统的/etc目录
  9. 京东到家订单中心ES演进
  10. es6删除数组某一项_什么时候用集合,什么时候用数组?一文帮你清晰界定
  11. 微信H5支付(报跨域问题)
  12. 【Codeforces301E】Yaroslav and Arrangements
  13. html渐变不兼容,CSS实现兼容性的渐变背景(gradient)效果兼容众多浏览器
  14. 【华人学者风采】陈卫 亚洲微软研究院
  15. Java Web开发实战经典 李兴华版 读书笔记(一)
  16. java report to zpl_如何以ZPL格式打印报告
  17. Risk Management and Financial Institution Chapter 11 —— Correlations and Copulas
  18. [英语]100个常见的“公共标志和说明”英文表达(收藏)
  19. pyecharts绘制天气热力图
  20. 给 Spring boot 项目加缓存

热门文章

  1. 绝地求生:刺激战场正式服上线!电脑玩刺激战场手游攻略看过来
  2. java实现 IP/掩码位 转换 ip段范围
  3. Java连接mysql数据库的详细教程(增查)
  4. 人教版小学语文-课文朗读
  5. 手动以及使用torch.nn实现logistic回归和softmax回归
  6. mysql修改连接字符串_修改数据库连接字符串教程
  7. 日志系统的介绍和使用
  8. iCheck不一样的checkbok
  9. git找回被删除的文件
  10. 官宣:FISCO BCOS加入“国家队”,成为BSN首个国产底层技术平台