文件与目录权限设置不止读、写、执行这些,还有所谓的特殊权限,由于特殊权限会拥有一些“特权”;

1 2 3 4
本章内容 SUID SGID SBIT 文件扩展权限ACL

1、SUID

作用:程序运行时执行者拥有程序属主(owner)的权限

限制1:SUID权限仅对二进制程序(binary program)有效,即系统中的一些命令,不能用在脚本上;

限制2:对目录设置无效

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

表现形式:owner身份的x权限上显示s,如:/usr/bin/passwd这个文件的权限状态:“-rwsr-xr-x.”

  1. [test1@localhost ~]$ ll /usr/bin/passwd
  2. -rwsr-xr-x. 1 root root 27832 6 10 2014 /usr/bin/passwd

2、SGID

作用:①程序运行时执行者拥有程序属组(group)的权限;

②在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会,继承上级目录的所属组;

限制1:既可以给二进制可执行程序设置,也可以对目录设置,SGID主要用在目录上;

限制2:程序执行者对于该程序来说,需具备x的权限;

表现形式:属组(group)身份的x权限上显示s 如: -rwxrwsrwx 1 test1 test1 0 5月 13 10:21 dirname

  1. [test1@localhost ~]$ chmod g+s 2
  2. [test1@localhost ~]$ ll
  3. 总用量 0
  4. -rwxrwsrwx 1 test1 test1 0 5 13 10:21 2

3、SBIT

作用:当用户在该目录下建立文件或目录时,仅有owner与 root才有权力删除(针对other身份);

限制1:针对目录设置,对文件不起作用;

表现形式:其他人身份(other)的x权限上显示t 如:drwxrwxrwt. 43 root root 4096 5月 13 15:48 /tmp

  1. [test1@localhost ~]$ ls -ld /tmp
  2. drwxrwxrwt. 43 root root 4096 5 13 15:48 /tmp

权限设置

  1. SUID:chmod u+s
  2. SGID:chmod g+s
  3. SBIT:chmod o+t

数字模式就是四位数字中的第一位代表特殊权限(suid=4、sgid=2、sbit=1);不建议用数字模式因为有时会不好用

  1. SUID:chmod 4777
  2. SGID:chmod 2777
  3. SBIT:chmod 1777 # 其中777指代三种基本权限(r、w、x)设置,因情况设定;

演示

SUID

  1. ╭─root@localhost.localdomain ~
  2. ╰─➤ ll `which passwd`
  3. -rwsr-xr-x. 1 root root 28K 6 10 2014 /bin/passwd #可以看出passwd已经设置了suid
  4. ╭─root@localhost.localdomain ~
  5. ╰─➤ chmod u-s /bin/passwd #删除suid的设置
  6. ╭─root@localhost.localdomain ~
  7. ╰─➤ ll /bin/passwd
  8. -rwxr-xr-x. 1 root root 28K 6 10 2014 /bin/passwd #可以看出已删除
  9. ╭─root@localhost.localdomain ~
  10. ╰─➤ su - du 切换到du用户
  11. 上一次登录:一 5 13 16:26:41 CST 2019pts/0
  12. [du@localhost ~]$ passwd #使用passwd修改du用户密码
  13. 更改用户 du 的密码
  14. 新的 密码:
  15. 重新输入新的 密码:
  16. passwd: 鉴定令牌操作错误 #因为du用户没有权限所以不成功
  17. [du@localhost ~]$ su - root
  18. 密码:
  19. 上一次登录:一 5 13 18:09:08 CST 2019pts/0
  20. ╭─root@localhost.localdomain ~
  21. ╰─➤ chmod u+s /bin/passwd #给du用户设置suid
  22. ╭─root@localhost.localdomain ~
  23. ╰─➤ ll /bin/passwd
  24. -rwsr-xr-x. 1 root root 28K 6 10 2014 /bin/passwd #设置成功
  25. ╭─root@localhost.localdomain ~
  26. ╰─➤ su - du
  27. 上一次登录:一 5 13 18:09:50 CST 2019pts/0
  28. [du@localhost ~]$ passwd
  29. 更改用户 du 的密码
  30. 新的 密码:
  31. 重新输入新的 密码:
  32. passwd:所有的身份验证令牌已经成功更新。 #使用passwd设置成功

SGID

  1. ╭─root@localhost.localdomain /home
  2. ╰─➤ ll
  3. 总用量 4.0K
  4. drwx------. 14 du du 4.0K 5 13 17:59 du
  5. ╭─root@localhost.localdomain /home
  6. ╰─➤ cd du
  7. ╭─root@localhost.localdomain /home/du
  8. ╰─➤ touch testfile1
  9. ╭─root@localhost.localdomain /home/du
  10. ╰─➤ mkdir testdir1
  11. ╭─root@localhost.localdomain /home/du
  12. ╰─➤ ll
  13. 总用量 0
  14. drwxr-xr-x. 2 root root 6 5 13 18:49 testdir1 #属组还是创建者的属组
  15. -rw-r--r--. 1 root root 0 5 13 18:49 testfile1 #属组还是创建者的属组
  16. ╭─root@localhost.localdomain /home/du
  17. ╰─➤ cd ..
  18. ╭─root@localhost.localdomain /home
  19. ╰─➤ chmod 2700 du #数字形式设置sgid
  20. ╭─root@localhost.localdomain /home
  21. ╰─➤ ll
  22. 总用量 4.0K
  23. drwx--S---. 15 du du 4.0K 5 13 18:49 du
  24. ╭─root@localhost.localdomain /home
  25. ╰─➤ cd du
  26. ╭─root@localhost.localdomain /home/du
  27. ╰─➤ touch testfile2
  28. ╭─root@localhost.localdomain /home/du
  29. ╰─➤ mkdir testdir2
  30. ╭─root@localhost.localdomain /home/du
  31. ╰─➤ ll
  32. 总用量 0
  33. drwxr-xr-x. 2 root root 6 5 13 18:49 testdir1
  34. drwxr-sr-x. 2 root du 6 5 13 18:51 testdir2 #属组继承了设置了sgid父目录du的属组
  35. -rw-r--r--. 1 root root 0 5 13 18:49 testfile1
  36. -rw-r--r--. 1 root du 0 5 13 18:50 testfile2 #属组继承了设置了sgid父目录du的属组

SBIT

  1. ╭─root@localhost.localdomain /home/testdir1
  2. ╰─➤ touch testfile{1..3}
  3. ╭─root@localhost.localdomain /home/testdir1
  4. ╰─➤ mkdir testdir{1..3}
  5. ╭─root@localhost.localdomain /home
  6. ╰─➤ su - user1
  7. 上一次登录:一 5 13 19:09:09 CST 2019pts/0
  8. [user1@localhost ~]$ cd /home/testdir1
  9. [user1@localhost testdir1]$ rm test*
  10. rm: 无法删除"testdir1": 是一个目录
  11. rm: 无法删除"testdir2": 是一个目录
  12. rm: 无法删除"testdir3": 是一个目录
  13. rm:是否删除有写保护的普通空文件 "testfile1"y
  14. rm:是否删除有写保护的普通空文件 "testfile2"y
  15. rm:是否删除有写保护的普通空文件 "testfile3"y
  16. [user1@localhost testdir1]$ ll
  17. 总用量 0
  18. drwxr-xr-x. 2 root root 6 5 13 19:08 testdir1
  19. drwxr-xr-x. 2 root root 6 5 13 19:08 testdir2
  20. drwxr-xr-x. 2 root root 6 5 13 19:08 testdir3
  21. [user1@localhost testdir1]$ rm -r test*
  22. rm:是否删除有写保护的目录 "testdir1"y
  23. rm:是否删除有写保护的目录 "testdir2"y
  24. rm:是否删除有写保护的目录 "testdir3"y # testdir1目录没有设置sbit,user用户可以删除root用户创建的文件
  25. [user1@localhost testdir1]$ ll
  26. 总用量 0
  27. [user1@localhost testdir1]$ su - root
  28. 密码:
  29. 上一次登录:一 5 13 19:11:10 CST 2019pts/0
  30. 最后一次失败的登录:一 5 13 19:14:30 CST 2019pts/0
  31. 最有一次成功登录后有 2 次失败的登录尝试。
  32. ╭─root@localhost.localdomain ~
  33. ╰─➤ cd /home
  34. ╭─root@localhost.localdomain /home
  35. ╰─➤ ll
  36. 总用量 4.0K
  37. drwx------. 16 du du 4.0K 5 13 18:51 du
  38. drwxrwxrwx. 2 root root 6 5 13 19:13 testdir1
  39. drwx------. 5 user1 user1 121 5 13 19:09 user1
  40. ╭─root@localhost.localdomain /home
  41. ╰─➤ chmod o+t testdir1 #给testdir1目录设置sbit
  42. ╭─root@localhost.localdomain /home
  43. ╰─➤ ll
  44. 总用量 4.0K
  45. drwx------. 16 du du 4.0K 5 13 18:51 du
  46. drwxrwxrwt. 2 root root 6 5 13 19:13 testdir1
  47. drwx------. 5 user1 user1 121 5 13 19:09 user1
  48. ╭─root@localhost.localdomain /home
  49. ╰─➤ cd testdir1
  50. ╭─root@localhost.localdomain /home/testdir1
  51. ╰─➤ touch file{1..3}
  52. ╭─root@localhost.localdomain /home/testdir1
  53. ╰─➤ su - user1
  54. 上一次登录:一 5 13 19:11:39 CST 2019pts/0
  55. [user1@localhost ~]$ cd ..
  56. [user1@localhost home]$ cd testdir1
  57. [user1@localhost testdir1]$ rm file*
  58. rm:是否删除有写保护的普通空文件 "file1"y
  59. rm: 无法删除"file1": 不允许的操作
  60. rm:是否删除有写保护的普通空文件 "file2"y
  61. rm: 无法删除"file2": 不允许的操作
  62. rm:是否删除有写保护的普通空文件 "file3"y
  63. rm: 无法删除"file3": 不允许的操作 # user1用户不能删除root用户创建的文件
  64. [user1@localhost testdir1]$

文件扩展权限ACL

作用:对特定的用户进行权限管控,

[root@cjk ~]# setfacl -m u:testuser:rw filename或dirname #u-->user ;指定testuser用户有特殊权限rw;-m表设置

[root@cjk ~]# getfacl filename或dirname #查看acl权限

[root@cjk ~]# setfacl -b filename或dirname #删除acl权限

[root@cjk ~]# setfacl -R -m u:du:rw- testdirectory/ #-R一定要在-m前面,表示目录下所有文件

[root@cjk ~]# setfacl -x u:du /tmp/a.txt # 去掉单个权限

[root@cjk ~]# setfacl -b /tmp/a.txt # 去掉所有acl权限

演示

  1. ╭─root@localhost.localdomain /home
  2. ╰─➤ setfacl -m u:user1:x file1
  3. ╭─root@localhost.localdomain /home
  4. ╰─➤ su - user1
  5. 上一次登录:一 5 13 19:16:18 CST 2019pts/0
  6. [user1@localhost ~]$ cd /home
  7. [user1@localhost home]$ getfacl file1
  8. # file: file1
  9. # owner: root
  10. # group: root
  11. user::rwx
  12. user:user1:--x
  13. group::rwx
  14. mask::rwx
  15. other::rwx
  16. [user1@localhost home]$ cat file1
  17. cat: file1: 权限不够
  18. [user1@localhost home]$ su - du
  19. 上一次登录:一 5 13 19:51:51 CST 2019pts/0
  20. [du@localhost ~]$ cat /home/file1
  21. hello
  22. [du@localhost ~]$ su - root
  23. 密码:
  24. 上一次登录:一 5 13 19:52:57 CST 2019pts/0
  25. ╭─root@localhost.localdomain ~
  26. ╰─➤ setfacl -b /home/file1
  27. ╭─root@localhost.localdomain ~
  28. ╰─➤ getfacl /home/file1
  29. getfacl: Removing leading '/' from absolute path names
  30. # file: home/file1
  31. # owner: root
  32. # group: root
  33. user::rwx
  34. group::rwx
  35. other::rwx

linux系统权限管理拓展:特殊权限的更多相关文章

  1. Linux系列教程(十六)——Linux权限管理之ACL权限

    通过前面的两篇博客我们介绍了Linux系统的用户管理,Linux用户和用户组管理之相关配置文件 讲解了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow ...

  2. 【Linux】 Linux权限管理与特殊权限

    Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在 ...

  3. Linux权限管理之ACL权限

    注:转载自:https://www.cnblogs.com/ysocean/p/7801329.html 目录 1.什么是 ACL 权限? 2.查看分区 ACL 权限是否开启:dump2fs ①.查看 ...

  4. 鸟哥的linux私房菜——第十三章学习(Linux 帐号管理与 ACLL 权限设置)

    第十三章.Linux 帐号管理与 ACLL 权限设置 1.0).使用者识别码: UID 与 GID UID :User ID GID :group ID [root@study ~]# ll -d / ...

  5. linux 系统磁盘管理体系

    目录 linux 系统磁盘管理体系 一.磁盘的基本概念 二.磁盘的内部结构 三.磁盘的外部结构 四.磁盘的接口及类型 五.fdisk磁盘分区实践 六.gdisk 分区 七.parted 高级分区工具. ...

  6. centos linux系统日常管理复习 CPU物理数逻辑核数,iftop ,iotop ,sar ,ps,netstat ,一网卡多IP,mii-tool 连接,ethtool速率,一个网卡配置多个IP,mii-tool 连接,ethtool速率 ,crontab备份, 第十八节课

    centos linux系统日常管理复习 物理CPU和每颗CPU的逻辑核数,uptime ,w,vmstat,iftop ,iotop ,sar ,ps,netstat ,一个网卡配置多个IP,mii ...

  7. centos linux 系统日常管理4 scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法 第十七节课

    centos linux 系统日常管理4  scp,rsync,md5sum,sha1sum,strace ,find Rsync 常见错误及解决方法  第十七节课 rsync可以增量同步,scp不行 ...

  8. centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs 第十六节课

    centos linux系统日常管理3  服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,cur ...

  9. linux系统用户管理(一)

    Linux系统用户管理1.用户管理*****2.Linux用户命令****3.用户创建的原理***4.密码管理***5.组命令管理**6.身份切换*****7.sudo提升权限***** 我们现在所使 ...

  10. 实验三:Linux系统用户管理及VIM配置

    项目 内容 这个作业属于哪个课程 班级课程的主页链接 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043133-木腾飞 学习目标 1.学习Linux系统用户管理2.学习vim使用及配置 实 ...

随机推荐

  1. Head First 设计模式 —— 08. 外观 (Facade) 模式

    思考题 想想看,你在 JavaAPI 中遇到过哪些外观,你还希望 Java 能够新增哪些外观? P262 println.log 日志接口.JDBC 接口 突然让想感觉想不出来,各种 API 都用得挺 ...

  2. 【MyBatis】MyBatis 入门

    MyBatis 入门 文章源码 软件框架 软件框架伴随着软件工程的发展而出现,所谓的软件框架,是提取了特定领域的软件的共性部分所形成的软件体系,它并不是一个成熟的软件,更像是一个半成品.开发者在框架之 ...

  3. 【十天自制软渲染器】DAY 02:画一条直线(DDA 算法 & Bresenham’s 算法)

    推荐关注公众号「卤蛋实验室」或访问博客原文,更新更及时,阅读体验更佳 第一天我们搭建了 C++ 的运行环境并画了一个点,根据 点 → 线 → 面 的顺序,今天我们讲讲如何画一条直线. 本文主要讲解直线 ...

  4. 【Linux】查看系统僵尸进程

    ps -ef|grep -v grep|grep defunct 如果这个有显示内容的话,可以手动将进程kill掉即可 ---------------------------------------- ...

  5. 【Oracle】常见等待事件处理

    1.查看数据库中需要关注的等待事件: select sw.seq#,sw.sid||','||s.serial# sids,s.username,sw.event,sw.P1,sw.p2,sw.p3, ...

  6. misc刷题

    前言:听说misc打得好,头发多不了 kali自带的字典: cd /usr/share/wordlists/ 字典网站:http://contest-2010.korelogic.com/wordli ...

  7. K8s遇到问题解决思路

    问题排查一 从describe去查找相应的deploy/pod/rs/svc [root@k8s-master ~]# kubectl describe po/nginx-f95d765f9-8b6b ...

  8. Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details. To force a start use "systemctl reset-failed

    安装docker时,自己添加了国内的hub.docker.com镜像 [root@ce-docker ~]# systemctl restart docker 出现以下报错:Job for docke ...

  9. oracle rac与单实例DG切换

    1.主库查看状态(RAC库) SQL> select database_role,switchover_status from v$database; DATABASE_ROLE SWITCHO ...

  10. D2Admin 登录用户重新初始话右侧菜单

    背景 最近用到D2Admin开发项目,用户登录菜单要根据用户角色权限获取,但是又不想用官网的方案(vue基于d2-admin的RBAC权限管理解决方案),所以自己加了个只修改 menuAside的方案 ...