一、文件的特殊权限:suid
    展示于文件属主的执行权限位:
    如果属主本来有执行权限,则展示为s;否则,展示为S;

功用:对于一个可执行文件来讲,任何用户运行此程序为进程时,进程的属主不再是发起者本人,而可执行程序文件自己的属主;

管理文件SUID权限的方法:
        chmod u+|-s FILE...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@1inux ~]# useradd fedora
[root@1inux ~]# cp /bin/cat /var/tmp/
[root@1inux ~]# cd /var/tmp
[root@1inux tmp]# ls -l /var/tmp/cat 
-rwxr-xr-x 1 root root 48568 Mar 26 19:11 /var/tmp/cat
[root@1inux tmp]# 
默认情况下 root可以查看/etc/shadow 文件 
[root@1inux ~]# /var/tmp/cat /etc/shadow
root:$6$EEFfMfXr$94ddcEaxbjta7bj3HCdwlJsi4jG6mHn73bee.God1MB2TsPURJgsw6M6VQxXNQvfIFFKFBcMIBkoiMgqSvaFI1:16519:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
adm:*:15980:0:99999:7:::
.......
而其他用户不能访问/etc/shadow
[fedora@1inux tmp]$ /var/tmp/cat /etc/shadow
/var/tmp/cat: /etc/shadow: Permission denied  //使用fedora用户查看 显示拒绝
[fedora@1inux tmp]$ 
接下来我们用root用户给其增加特殊权限
[root@1inux tmp]# chmod u+s /var/tmp/cat      //增加特殊权限suid
[root@1inux tmp]# ls -l /var/tmp/cat 
-rwsr-xr-x 1 root root 48568 Mar 26 19:11 /var/tmp/cat    //可以看到属主的权限由rwx变成了rws
然后我们再以fedora用户查看/etc/shadow 文件,验证是否可以查看成功
[fedora@1inux tmp]$ ls -l /var/tmp/cat 
-rwsr-xr-x 1 root root 48568 Mar 26 19:11 /var/tmp/cat
[fedora@1inux tmp]$ /var/tmp/cat /etc/shadow  //OK,现在可以查看文件了
root:$6$EEFfMfXr$94ddcEaxbjta7bj3HCdwlJsi4jG6mHn73bee.God1MB2TsPURJgsw6M6VQxXNQvfIFFKFBcMIBkoiMgqSvaFI1:16519:0:99999:7:::
bin:*:15980:0:99999:7:::
daemon:*:15980:0:99999:7:::
.......

OK   给/var/tmp/cat增加特殊权限后,其他用户也可以访问使用其访问/etc/shadow 文件了

二、属组特殊权限:sgid
    展示于文件属组的执行权限位;
    如果属组本来有执行权限,则展示为s;否则,展示为S;

功用:

当目录属组有写权限,且有sgid权限时,那么所有属于此目录的属组,且以属组身份在此目录新建文件或目录时,新文件或目录的属组不是创建者所属的基本组,而是目录自己的属组;

            chmod g+|-s FILE...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
演示过程:
1、创建用户、目录并修改权限
[root@1inux tmp]# groupadd distro
[root@1inux tmp]# useradd -G distro gentoo
[root@1inux tmp]# useradd -G distro fedora
[root@1inux tmp]# id gentoo
uid=502(gentoo) gid=503(gentoo) groups=503(gentoo),502(distro)
[root@1inux tmp]# id fedora
uid=501(fedora) gid=501(fedora) groups=501(fedora),502(distro)
[root@1inux tmp]# mkdir /var/tmp/test
[root@1inux tmp]# chgrp distro /var/tmp/test
[root@1inux tmp]# ls -dl /var/tmp/test
drwxr-xr-x 2 root distro 4096 Mar 26 19:41 /var/tmp/test
[root@1inux tmp]# chmod g+w /var/tmp/test  //给此目录的属组添加写权限
[root@1inux tmp]# ls -dl /var/tmp/test
drwxrwxr-x 2 root distro 4096 Mar 26 19:41 /var/tmp/test
2、创建用户验证
[fedora@1inux test]$ touch a.fedora
[fedora@1inux test]$ ls -l
total 0
-rw-rw-r-- 1 fedora fedora 0 Mar 26 19:51 a.fedora      //其属组是fedora
[root@1inux ~]# su gentoo
[gentoo@1inux test]$ touch /var/tmp/test/b.gentoo
[gentoo@1inux test]$ ls -l
total 0
-rw-rw-r-- 1 fedora fedora 0 Mar 26 19:51 a.fedora
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 19:52 b.gentoo    //其属组gentoo
3、给/var/tmp/test目录增加特殊权限
[root@1inux tmp]# chmod g+s /var/tmp/test    //修改权限
[root@1inux tmp]# ls -ld /var/tmp/test/
drwxrwsr-x 2 root distro 4096 Mar 26 19:52 /var/tmp/test/    //可以看到其属组权限变成了rws
[root@1inux tmp]# 
4、验证在拥有特殊权限目录下创建文件的属组是否发生改变
 我们分别以fedora,gentoo在其目录下创建文件查看其属性
[fedora@1inux test]$ touch s.fedora       //以fedora用户创建
[fedora@1inux test]$ ls -l
total 0
-rw-rw-r-- 1 fedora fedora 0 Mar 26 19:51 a.fedora
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 19:52 b.gentoo
-rw-rw-r-- 1 fedora distro 0 Mar 26 19:57 s.fedora    //此时创建的文件属组变成了distro
[gentoo@1inux test]$ touch s.gentoo    //以gentoo用户创建
[gentoo@1inux test]$ ls -l
total 0
-rw-rw-r-- 1 fedora fedora 0 Mar 26 19:51 a.fedora
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 19:52 b.gentoo
-rw-rw-r-- 1 fedora distro 0 Mar 26 19:57 s.fedora
-rw-rw-r-- 1 gentoo distro 0 Mar 26 19:57 s.gentoo    //用gentoo在此目录下创建的文件属组也是distro
[gentoo@1inux test]$

这样拥有特殊权限的目录,其属组内的任何用户在其目录下创建文件或目录,所创建的文件或目录的属组不再是创建用户自己的属组而是其目录的属组,即特殊权限目录的属组,这样拥有此属组的任意用户都可以修改此属组内用户创建的文件

三、目录特殊权限:sticky
    展示于目录其它用户的执行权限位;
    如果其它用户本来有执行权限,则展示为t;否则,展示为T;

功用:
        对于全局可写,或某组全局可写目录,所有用户都可以在此目录创建文件或删除自己为属主的那些文件,但不能删除非自己为属主文件或目录;

        chmod o+|-t FILE...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
演示:
1、创建目录并修改权限
[root@1inux tmp]# mkdir admin
[root@1inux tmp]# chmod o+w admin
[root@1inux tmp]# ls -ld admin    //查看权限
drwxr-xrwx 2 root root 4096 Mar 26 20:27 admin
2、分别以fedora、gentoo用户在此目录下创建文件
[gentoo@1inux admin]$ ls -l
total 0
-rw-rw-r-- 1 fedora fedora 0 Mar 26 20:28 a.fedora
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 20:29 a.gentoo
-rw-rw-r-- 1 fedora fedora 0 Mar 26 20:28 b.fedora
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 20:29 b.gentoo
[gentoo@1inux admin]$ 
3、分别用fedora、gentoo用户删除对方创建的文件
[gentoo@1inux admin]$ rm a.fedora    
rm: remove write-protected regular empty file `a.fedora'? y    //发现gentoo可以删除fedora创建的文件
[gentoo@1inux admin]$ ls -l
total 0
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 20:29 a.gentoo
-rw-rw-r-- 1 fedora fedora 0 Mar 26 20:28 b.fedora
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 20:29 b.gentoo
[gentoo@1inux admin]$ 
[fedora@1inux admin]$ rm a.gentoo 
rm: remove write-protected regular empty file `a.gentoo'? y    //fedora也可以删除gentoo创建的文件
[fedora@1inux admin]$ ls -l
total 0
-rw-rw-r-- 1 fedora fedora 0 Mar 26 20:28 b.fedora
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 20:29 b.gentoo
[fedora@1inux admin]$ 
4、以root用户登陆 对/var/tmp/admin 目录 添加特殊权限 sticky
[root@1inux tmp]# chmod o+t admin
[root@1inux tmp]# ls -ld admin
drwxr-xrwt 2 root root 4096 Mar 26 20:32 admin     //可以看到其它用户权限变成了rwt
5、分别以fedora、gentoo登陆在/var/tmp/admin目录下删除对方文件
[fedora@1inux admin]$ rm b.gentoo 
rm: remove write-protected regular empty file `b.gentoo'? y
rm: cannot remove `b.gentoo': Operation not permitted        //发现此时fedora已经无法删除gentoo创建的文件
[fedora@1inux admin]$ 
[gentoo@1inux admin]$ ls -l
total 0
-rw-rw-r-- 1 fedora fedora 0 Mar 26 20:28 b.fedora
-rw-rw-r-- 1 gentoo gentoo 0 Mar 26 20:29 b.gentoo
[gentoo@1inux admin]$ rm b.fedora 
rm: remove write-protected regular empty file `b.fedora'? y
rm: cannot remove `b.fedora': Operation not permitted        //此时gentoo用户也无法删除fedora创建的用户
[gentoo@1inux admin]$

特殊权限位表示:

1
2
3
4
5
6
7
8
9
 sst:   【suid   sgid   sticky】
    000 0
    001 1
    010 2
    011 3
    100 4
    101 5
    110 6
    111 7

以后修改文件或目录权限时,也可以加上特殊权限,特殊权限置于普通权限之前,

1、修改/abc 目录权限为775且拥有sticky权限

1
chmod 1775 /abc

2、修改文件file权限为664并且拥有suid、sgid权限

1
chmod 6664 file

所以在umask定义的0002中的第一个0 就表示特殊权限
            umask 0002

安全上下文:
        1、进程以某用户的身份运行;进程是发起此进程的用户代理,其以对应用户身份完成所需的操作;
        2、权限匹配模型:
            (1) 进程的属主,是否是被访问的资源的属主;如果是,则应用属主权限;
            (2) 否则,查看进程的属组,是否属于被访问资源的属组;如果是,则应用属组权限;
            (3) 否则,则应用其它权限;

本文转自 1inux 51CTO博客,原文链接:http://blog.51cto.com/1inux/1652051

文件的特殊权限:suid sgid sticky相关推荐

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

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

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

    linux中除了常见的读(r).写(w).执行(x)权限以外,还有3个特殊的权限,分别是setuid.setgid和stick bit 1.setuid.setgid 先看个实例,查看你的/usr/b ...

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

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

  4. LINUX--特殊权限SUID,SGID,Sticky

    SUID:   运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者 SGID:   运行某程序时,相应进程的属组是程序文件自身的属组,而不说启动者的属组 Sticky:    在一个公共目 ...

  5. linux的权限管理以及特殊权限SUID,SGID,Sticky

    一切皆文件是linux重要的哲学思想之一,用户通过帐号密码登录系统以获得系统的使用权,在系统内部是通过UID来唯一标识一个用户,那么一个用户是否可以去访问或者使用某个文件资源,就取决于该用户是否有对应 ...

  6. 特殊权限:SUID,SGID,Sticky

    特殊权限 passwd:s SUID: 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者:     chmod u+s FILE     chmod u-s FILE         如 ...

  7. linux基础2-cd、mkdir、touch、umask、chattr、lsattr、SUID/SGID/Sticky Bit

    一 cd : . 代表当前目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表[目前用户身份]所在的自家目录 与cd效果相同 ~account 代表 account 这个用户的自家家目录 二m ...

  8. 彻底了解 suid, sgid ,sticky权限

    sticky: 粘性的, 如 : sticky tape: 粘胶带 /tmp, /var/tmp: 位 sticky: 表示: 第一, 任何用户都可以在该目录下创建文件(编辑自己的文件),第二, 但是 ...

  9. linux 目录的粘滞位,Linux浅谈SUID,SGID,Sticky粘滞位对目录以及文件的相关作用

    我们知道在Linux中,root管理员的权限是很大的,能够支持执行绝大部分程序以及命令进而对文件进行相对应的修改,写入.当然这些作用只能体现在root管理员上.但是有一个现象,有些普通用户是可以通过p ...

最新文章

  1. oracle 11gR2 RAC root.sh 错误 ORA-15072 ORA-15018
  2. 【2019浙江省赛 - A】Vertices in the Pocket(权值线段树下二分,图,思维)
  3. 95-910-165-源码-FlinkSQL-Flink SQL 中的时间属性
  4. mysql备份单实例(一)shell
  5. 计算机网络对等模式,计算机网络有两种常用的工作模式,它们是对等模式和客户/服务器模式。QQ聊天属于________模式。...
  6. 5G概念被热炒,运营商吃相不要太难看
  7. 毕设一:python 爬取苏宁的商品评论
  8. 华三comware跳槽_H3C Comware
  9. Introduction to Robotics 总结1~6
  10. windows CMD命令大全及详细解释和语法
  11. 在外企必会的英文单词
  12. 畜牧养殖APP系统开发源码
  13. 导入eclipse项目时select eclipse projects to import显示nothing to show--踩坑记录
  14. 计算机蓝屏的解决方法,电脑开机蓝屏怎么解决?电脑蓝屏原因及解决方法
  15. 两个手机靠近,唤起应用如微信(需打开NFC)
  16. 唐诗宋词学习·141~145节
  17. castle典范英语 storm_典范英语6的第一、二、三、四、五、六、七本翻译。写的好的分绝对多!!...
  18. spark源码-shuffle原理分析-1-ShuffleWriter
  19. 数据库隔离级别(收藏)
  20. python 网络抓包

热门文章

  1. 所有你要知道的 BERT 模型压缩方法,都在这里!
  2. 清华大学董胤蓬:Adversarial Robustness of Deep Learning
  3. 多角度人脸识别简单介绍
  4. SAP MM 给合同的ITEM上传附件以及附件查询
  5. 【AI学习篇】实战深度学习(3):深度学习的数据表示
  6. 如何成为一名优秀CTO
  7. 也谈SAP业务顾问如何避免被ABAP开发顾问怒打
  8. 干货丨综述卷积神经网络:从基础技术到研究前景
  9. 使用深度学习和树搜索进行从零开始的既快又慢的学习
  10. codeblocks的错误提示框不见了