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

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.”

[test1@localhost ~]$ ll /usr/bin/passwd
-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

[test1@localhost ~]$ chmod g+s 2
[test1@localhost ~]$ ll
总用量 0
-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

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

权限设置

SUID:chmod u+s
SGID:chmod g+s
SBIT:chmod o+t

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

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

演示

SUID

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

SGID

╭─root@localhost.localdomain /home
╰─➤ ll
总用量 4.0K
drwx------. 14 du du 4.0K 5月 13 17:59 du
╭─root@localhost.localdomain /home
╰─➤ cd du
╭─root@localhost.localdomain /home/du
╰─➤ touch testfile1
╭─root@localhost.localdomain /home/du
╰─➤ mkdir testdir1
╭─root@localhost.localdomain /home/du
╰─➤ ll
总用量 0
drwxr-xr-x. 2 root root 6 5月 13 18:49 testdir1 #属组还是创建者的属组
-rw-r--r--. 1 root root 0 5月 13 18:49 testfile1 #属组还是创建者的属组
╭─root@localhost.localdomain /home/du
╰─➤ cd ..
╭─root@localhost.localdomain /home
╰─➤ chmod 2700 du #数字形式设置sgid
╭─root@localhost.localdomain /home
╰─➤ ll
总用量 4.0K
drwx--S---. 15 du du 4.0K 5月 13 18:49 du
╭─root@localhost.localdomain /home
╰─➤ cd du
╭─root@localhost.localdomain /home/du
╰─➤ touch testfile2
╭─root@localhost.localdomain /home/du
╰─➤ mkdir testdir2
╭─root@localhost.localdomain /home/du
╰─➤ ll
总用量 0
drwxr-xr-x. 2 root root 6 5月 13 18:49 testdir1
drwxr-sr-x. 2 root du 6 5月 13 18:51 testdir2 #属组继承了设置了sgid父目录du的属组
-rw-r--r--. 1 root root 0 5月 13 18:49 testfile1
-rw-r--r--. 1 root du 0 5月 13 18:50 testfile2 #属组继承了设置了sgid父目录du的属组

SBIT

╭─root@localhost.localdomain /home/testdir1
╰─➤ touch testfile{1..3}
╭─root@localhost.localdomain /home/testdir1
╰─➤ mkdir testdir{1..3}
╭─root@localhost.localdomain /home
╰─➤ su - user1
上一次登录:一 5月 13 19:09:09 CST 2019pts/0 上
[user1@localhost ~]$ cd /home/testdir1
[user1@localhost testdir1]$ rm test*
rm: 无法删除"testdir1": 是一个目录
rm: 无法删除"testdir2": 是一个目录
rm: 无法删除"testdir3": 是一个目录
rm:是否删除有写保护的普通空文件 "testfile1"?y
rm:是否删除有写保护的普通空文件 "testfile2"?y
rm:是否删除有写保护的普通空文件 "testfile3"?y
[user1@localhost testdir1]$ ll
总用量 0
drwxr-xr-x. 2 root root 6 5月 13 19:08 testdir1
drwxr-xr-x. 2 root root 6 5月 13 19:08 testdir2
drwxr-xr-x. 2 root root 6 5月 13 19:08 testdir3
[user1@localhost testdir1]$ rm -r test*
rm:是否删除有写保护的目录 "testdir1"?y
rm:是否删除有写保护的目录 "testdir2"?y
rm:是否删除有写保护的目录 "testdir3"?y # testdir1目录没有设置sbit,user用户可以删除root用户创建的文件
[user1@localhost testdir1]$ ll
总用量 0
[user1@localhost testdir1]$ su - root
密码:
上一次登录:一 5月 13 19:11:10 CST 2019pts/0 上
最后一次失败的登录:一 5月 13 19:14:30 CST 2019pts/0 上
最有一次成功登录后有 2 次失败的登录尝试。
╭─root@localhost.localdomain ~
╰─➤ cd /home
╭─root@localhost.localdomain /home
╰─➤ ll
总用量 4.0K
drwx------. 16 du du 4.0K 5月 13 18:51 du
drwxrwxrwx. 2 root root 6 5月 13 19:13 testdir1
drwx------. 5 user1 user1 121 5月 13 19:09 user1
╭─root@localhost.localdomain /home
╰─➤ chmod o+t testdir1 #给testdir1目录设置sbit
╭─root@localhost.localdomain /home
╰─➤ ll
总用量 4.0K
drwx------. 16 du du 4.0K 5月 13 18:51 du
drwxrwxrwt. 2 root root 6 5月 13 19:13 testdir1
drwx------. 5 user1 user1 121 5月 13 19:09 user1
╭─root@localhost.localdomain /home
╰─➤ cd testdir1
╭─root@localhost.localdomain /home/testdir1
╰─➤ touch file{1..3}
╭─root@localhost.localdomain /home/testdir1
╰─➤ su - user1
上一次登录:一 5月 13 19:11:39 CST 2019pts/0 上
[user1@localhost ~]$ cd ..
[user1@localhost home]$ cd testdir1
[user1@localhost testdir1]$ rm file*
rm:是否删除有写保护的普通空文件 "file1"?y
rm: 无法删除"file1": 不允许的操作
rm:是否删除有写保护的普通空文件 "file2"?y
rm: 无法删除"file2": 不允许的操作
rm:是否删除有写保护的普通空文件 "file3"?y
rm: 无法删除"file3": 不允许的操作 # user1用户不能删除root用户创建的文件
[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权限

演示

╭─root@localhost.localdomain /home
╰─➤ setfacl -m u:user1:x file1
╭─root@localhost.localdomain /home
╰─➤ su - user1
上一次登录:一 5月 13 19:16:18 CST 2019pts/0 上
[user1@localhost ~]$ cd /home
[user1@localhost home]$ getfacl file1
# file: file1
# owner: root
# group: root
user::rwx
user:user1:--x
group::rwx
mask::rwx
other::rwx [user1@localhost home]$ cat file1
cat: file1: 权限不够
[user1@localhost home]$ su - du
上一次登录:一 5月 13 19:51:51 CST 2019pts/0 上
[du@localhost ~]$ cat /home/file1
hello
[du@localhost ~]$ su - root
密码:
上一次登录:一 5月 13 19:52:57 CST 2019pts/0 上
╭─root@localhost.localdomain ~
╰─➤ setfacl -b /home/file1
╭─root@localhost.localdomain ~
╰─➤ getfacl /home/file1
getfacl: Removing leading '/' from absolute path names
# file: home/file1
# owner: root
# group: root
user::rwx
group::rwx
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. volatile 关键字精讲

    1.错误案例 通过一个案例引出volatile关键字,例如以下代码示例 : 此时没有加volatile关键字两个线程间的通讯就会有问题 public class ThreadsShare { priv ...

  2. NOIP初赛篇——04计算机软件系统

    计算机软件是指计算机系统中的程序及其文档,也是用户与硬件之间的接口,用户主要通过软件与计算机进行交流,软件是计算机的灵魂.没有安装软件的计算机称为"裸机",无法完成任何工作.一般软 ...

  3. readhat6.5下安装weblogic10.3.6

    转载自:http://www.mianhuage.com/752.html 1.安装前准备 1.1.准备安装包generic.jar1.2.创建weblogic用户及用户组创建组命令:groupadd ...

  4. TypeScript接口与类的使用

    一.TypeScript接口 Interfaces 可以约定一个对象的结构 一个对象去实现一个接口 就必须拥有这个接口中所有的成员用interface定义接口, 并且定义接口中成员的类型 编译之后会发 ...

  5. #2020征文-开发板# 用鸿蒙开发AI应用(五)HDF 驱动补光灯

    目录: 前言 硬件准备 HDF 驱动开发 总结 前言上一篇,我们在鸿蒙上运行了第一个程序,这一篇我们来编写一个驱动开启摄像头的红外补光灯,顺便熟悉一下鸿蒙上的 HDF 驱动开发. 硬件准备先查一下原理 ...

  6. Openstack Ocata 公共服务端(三)

    Openstack Ocata 公共服务端 mysql 安装: yum install mariadb mariadb-server mysql 安装过程省略 rabbit-server 安装包: # ...

  7. Mac pycharm更换版本后打不开

    1.第一步:先输入:   cd /Applications/PyCharm.app/Contents/MacOS 2.第二步:查看无法打开pycharm的原因,需要输入:c./pycharm 3.第三 ...

  8. RandomForest 随机森林算法与模型参数的调优

    公号:码农充电站pro 主页:https://codeshellme.github.io 本篇文章来介绍随机森林(RandomForest)算法. 1,集成算法之 bagging 算法 在前边的文章& ...

  9. 【EXPDP】expdp/impdp数据泵远程导入导出

    Oracle在10g的时候有一个很好用的导出工具expdp(数据泵) 但是这个工具好用的同时,有一个局限,就是必须用本地的用户才可以导出数据,也就是说数据泵只能导出本地数据库的数据 但是如果业务需求是 ...

  10. 全网最全!彻底弄透Java处理GMT/UTC日期时间

    目录 前言 本文提纲 版本约定 正文 Date类型实现 时区/偏移量TimeZone 设置默认时区 让人恼火的夏令时 Date时区无关性 读取字符串为Date类型 SimpleDateFormat格式 ...