suid (set uid)特殊权限
set uid 简称suid
当我们为某个命令设定suid,无论谁使用该命令,都会使用该命令的“属主”运行该命令
suid == 4000(特殊权限)
添加suid:chmod u+s / chmod 4755
去掉suid:chmod u-s
suid优点:可以让普通用户执行无法执行的命令
suid缺点:如果rm为suid,无论谁执行该命令,都能删除系统的任何资源
进程能够以何种身份去查看一个文件,取决于运行这个进程的用户,对这个文件有没有权限
sgid(set gid)特殊权限(RHCE考试)
将目录设置为sgid后,如果在往该目录下创建文件,都将于该目录的所属组保持一致
设定sgid:chmod g+s / chmod 2777
取消sgid:chmod g-s
[root@oldboy ~]# groupadd devops
[root@oldboy ~]# useradd zhangsan -G devops
[root@oldboy ~]# useradd lisi -G devops
[root@oldboy ~]# ll share
total 0
-rw-rw-r--. 1 lisi devops 0 Aug 8 11:30 file
-rw-rw-r--. 1 zhangsan devops 0 Aug 8 11:31 file1
[root@oldboyedu ~]# mkdir /opt/share
[root@oldboyedu ~]# chmod 2777 share/
[root@oldboyedu ~]# chown .devops share/
[root@oldboy opt]# ll
total 36
drwxrwsrwx. 2 root devops 31 Aug 8 11:31 share\
测试不同的用户在该目录下创建文件,检查属主和属组
[root@oldboy opt]# su - zhangsan
[zhangsan@oldboy share]$
[zhangsan@oldboy share]$ touch file3
[zhangsan@oldboy share]$ ll
total 0
-rw-rw-r--. 1 zhangsan devops 0 Aug 8 16:18 file3
使用sgid可以使用多个用户之间共享一个目录的所有文件变得简单
sbit(sticky粘滞位)
如果一个目录设定了粘滞位,那么谁都可以在该目录下创建文件
删除文件只能是谁创建的谁删除,除此以外root和/tmp/的所属主都能删除该目录下的内容
设定粘滞位 1000(特殊权限)
chmod o+t / chmod 1777
取消粘滞位:chmod o-t
[root@oldboy ~]# cd /tmp/
[root@oldboy tmp]# ll -d /tmp/
drwxrwxrwt. 7 root root 93 Aug 8 15:42 /tmp/
特殊属性 chattr lsattr
chatrr 只有 root 用户可以使用,用来修改文件系统的权限属性,建立凌驾于 rwx 基础权限之上的授权。
-a:只能追加,无其他操作
-i: 锁定文件,不能删除,不能追加,不能移动
使用-a参数,只能追加,不能删除和写入
[root@oldboy ~]# touch file1
[root@oldboy ~]# lsattr file1
---------------- file1
[root@oldboy ~]# chattr +a file1
[root@oldboy ~]# lsattr file1
-----a---------- file1
[root@oldboy ~]# echo "123" >> file1
[root@oldboy ~]#
[root@oldboy ~]# echo "456" > file1
-bash: file1: Operation not permitted
[root@oldboy ~]# rm -f file1
rm: cannot remove ‘file1’: Operation not permitted
使用-i参数,锁定文件,不能写入,追加,删除
[root@oldboy ~]# touch file2
[root@oldboy ~]# lsattr file2
---------------- file2
[root@oldboy ~]# chattr +i file2
[root@oldboy ~]# echo "123" >> file2
-bash: file2: Permission denied
[root@oldboy ~]# echo "456" > file2
-bash: file2: Permission denied
[root@oldboy ~]# rm -f file2
rm: cannot remove ‘file2’: Operation not permitted
进程掩码umask
umask是用来控制默认创建文件或目录的权限
umask设定为002,表示要减去的权限
目录 777-002=755
文件 666-002=644
umask设定为奇数 偶数对文件和目录的影响
目录 :对目录毫无影响
文件 :如果umask出现了奇数,要在奇数位+1
设定umask
umask number临时设定(当前bash窗口有效,会随着bash的关闭一起结束)
vim /etc/profile /etc/login.defs 如果修改则为永久
ps:umask不需要调整,默认就是安全的权限