Day 11 特殊权限
1.suid
set uid 简称 suid
当我们位某个命令设定了suid,无论谁使用该命令,都会使用该命令的“属主”运行该命令
suid = 4000
chmod u+s /user/bin/passwd
chmod 4755 /user/bin/passwd
chmod u-s #去掉权限
- suid优点:可以让普通用户执行无法执行的命令,方便
-
suid缺点:如果rm为suid,任何用户都能删除系统的任何资源,不安全
进程能够以何种身份去查看一个文件,取决于运行这个进程的用户对这个文件有没有权限
2.sgid
set gid 简称 sgid
将目录设置为gid后,如果往该目录下创建文件,都与该目录的所属组保持一致。
sgid = 2000
[root@localhost ~]# groupadd devops
[root@localhost ~]# useradd zhangsan -G devops
[root@localhost ~]# useradd lisi -G devops
[root@localhost ~]# mkdir /opt/share
[root@localhost ~]# chmod 2777 /opt/share
[root@localhost ~]# chown .devops /opt/share
#测试不同的用户在该目录下创建文件,检查属主和属组
使用sgid可以使得多个用户之间共享一个目录的所有文件变得简单。
3.sbit
如果一个目录设定了粘滞位,任何用户都可以再该目录下创建文件
删除文件谁创建的睡能删除,root和/tmp的所属主都能删除该目录下的内容
sbit = 1000
chmod o+t /tmp
chmod 1777 /tmp
粘滞位使用场景
用户上传资源场景
4.特殊属性chattr lsattr
+a 只能追加,无其他操作
+i 锁定文件,不能删除,追加,移动
1.模拟场景,任何人不能创建用户,/etc/passwd 锁定
[root@localhost ~]# chattr +i /etc/passwd #锁定文件
[root@localhost ~]# lsattr /etc/passwd #查看
----i----------- /etc/passwd
[root@localhost ~]# useradd test1 #无法创建
useradd: cannot open /etc/passwd
[root@localhost ~]# chattr -i /etc/passwd #取消锁定
[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
[root@localhost ~]# useradd test1 #创建成功
[root@localhost ~]#
2.日志文件,只允许追加内容,不能删除、更改
[root@localhost ~]# chattr +a /var/log/secure #设该文件仅允许追加,不能更改删除
[root@localhost ~]# lsattr /var/log/secure
-----a---------- /var/log/secure
[root@localhost ~]# chattr -a /var/log/secure #解除
[root@localhost ~]# lsattr /var/log/secure
---------------- /var/log/secure
5.umask 默认权限
- umask是用来控制默认创建文件或目录的权限
- umask设定为0022,表示要减去的权限
- 目录 777 - 002 = 755
- 文件 666 - 022 = 644
- umask 设定为奇数、偶数对文件和目录有什么影响
- 目录: 对目录没什么影响
- 文件: 如果umask 出现了奇数,要在奇数位+1
- 设定umask
- umask number 临时 (当前bash窗口有效,会随着bash的关闭一 起结束)
- vim /etc/profile /etc/login.defs # 如果修改则都为永久
-
umask不用跳转,默认就是最安全的权限