1、修改属主和属组
chown root:root 文件 #修改属主属组
属主和属组可以使用:或者 . 分隔
chown root 文件 #只是修改属主
chown :root 文件 #只是修改属组
-R #递归设置属主属组
chgrp #只能修改属组
只有root用户权限才可以任意修改属主属组,普通用户不能修改
[root@lixian ~]# chown lx:lx /root/lixian 设置属主属组 [root@lixian ~]# chown -R lx:lx /root/lixian 递归设置属主属组 [root@lixian ~]# chgrp aa /root/lixian 只能设置属组
2、umask权限控制
umask是个权限控制的命令,默认的值是022
目录最大权限是777,减去umask的默认权限,结果就是新建目录的权限
文件最大权限是666,减去umask的默认权限,结果就是新建文件的权限,当文件的权限为奇数时,会在奇数位上+1。
drwxr-xr-x. 2 root root 6 Dec 18 16:58 test #新创建的目录权限为755 -rw-r--r--. 1 root root 0 Dec 18 16:58 test.log #新创建的文件权限为644
cat /etc/profile永久设置 umask
[root@lixian ~]# umask 033 [root@lixian ~]# umask 0033
0033最前面的0 是特殊权限
3、特殊权限
①、setuid:在运行一个命令的时候,相当于这个命令的所有者
主要作用于属主权限的x位,s表示
rwsr-xr-x s权限对应的数字是4
使用:chmod u+s 文件
如果普通用户没有执行权限,也不能使用命令
[a@lixian /]$ rm -rf 3 #删除3这个目录,删除不了 rm: cannot remove ‘3/aaa’: Permission denied [root@lixian /]# chmod u+s /bin/rm #给rm这个命令设置特殊权限,让其他用户也能使用 [a@lixian /]$ rm -rf 3 #可以删除 [root@lixian /]# chmod o-x /bin/rm #去除o位的执行权限 [a@lixian /]$ rm -rf a #不能删除 -bash: /usr/bin/rm: Permission denied
②、setgid:让一个目录下的所有新创建的目录或者文件的默认组都是该目录的组,让一个组成为共享目录。
主要作用于属组权限的x位,s表示
使用:chmod g+s 共享目录
其他用户创建文件的时候,属组也是共享组,前提是给其他用户权限
1:创建一个目录,作为共享目录
mkdir /opt/gongxiang
2:创建一个组,作为共享组
groupadd gongxiang
3:将目录设置为共享组
chgrp gongxiang /opt/gongxiang/
4:让属主属组都要任何权限,其他用户没有权限
chmod 770 /opt/gongxiang/
5:将两个用户加入共享组
usermod -G gongxiang test01 usermod -G gongxiang test02
6:给共享目录设置setgid
chmod g+s /opt/gongxiang/
③、sticky 粘滞位
让一个目录成为所有用户都有所有权限,权限为777,
又让所有用户除了root和属主可以管理自己的文件或者目录,其它人没有管理的权限。
主要作用于在其他人的x位,t表示
chmod o+t 目录
所有人只能管理自己的东西,不能去操作别人的东西
相当于在一个公共区域给自己的东西加了一把锁。
[root@lixian ~]# mkdir -m 777 /test 创建文件权限为777 [root@lixian ~]# ll -d /test drwxrwxrwx. 2 root root 6 Dec 18 18:58 /test [root@lixian ~]# chmod o+t /test/ 给文件增加共享目录 [root@lixian ~]# ll -d /test drwxrwxrwt. 2 root root 6 Dec 18 19:00 /test [root@lixian ~]# stat /test File: ‘/test’ Size: 6 Blocks: 0 IO Block: 4096 directory Device: 803h/2051d Inode: 1083835 Links: 2 Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:default_t:s0 Access: 2019-12-18 19:00:13.822960217 +0800 Modify: 2019-12-18 19:00:33.146959534 +0800 Change: 2019-12-18 19:01:09.490958251 +0800 Birth: -
4、特殊属性
特殊属性不受权限的控制
lsattr 文件 查看文件的特殊属性
chattr +a 文件 给文件增加特殊属性
a #表示只能追加,不能删除,移动,修改,一般给重要的文件,日志,可以复制查看和执行
i #什么都不能操作,不能删除,移动,追加,重定向,一般给重要的配置文件,可以复制查看和执行
#测试a属性
[root@lixian ~]# chattr +a test.txt 增加a权限 [root@lixian ~]# lsattr test.txt 查看文件的特殊属性 -----a---------- test.txt [root@lixian ~]# cat test.txt hostname [root@lixian ~]# ./test.txt qls [root@lixian ~]# cp test.txt /tmp/ [root@lixian ~]# rm -f test.txt 不能删除 rm: cannot remove ‘test.txt’: Operation not permitted [root@lixian ~]# mv test.txt /opt/ 不能移动 mv: cannot move ‘test.txt’ to ‘/opt/test.txt’: Operation not permitted [root@lixian ~]# vim test.txt 不能修改,vim进去,但不能保存退出,强制也不行 [root@lixian ~]# echo pwd >> test.txt 可以追加 [root@lixian ~]# echo pwd > test.txt 也不能重定向 -bash: test.txt: Operation not permitted
#测试i属性
[root@lixian ~]# lsattr test.txt 查看特殊属性的信息 ---------------- test.txt [root@lixian ~]# chattr +i test.txt 增加i权限 [root@lixian ~]# cat test.txt hostname pwd [root@lixian ~]# ./test.txt qls /root [root@lixian ~]# cp ./test.txt /opt/ [root@lixian ~]# mv ./test.txt /mnt/ 不能移动 mv: overwrite ‘/mnt/test.txt’? y mv: cannot move ‘./test.txt’ to ‘/mnt/test.txt’: Operation not permitted [root@lixian ~]# rm -f test.txt 不能删除 rm: cannot remove ‘test.txt’: Operation not permitted [root@lixian ~]# echo 123 >test.txt 不能重定向 -bash: test.txt: Permission denied [root@lixian ~]# echo 123 >>test.txt 不能追加 -bash: test.txt: Permission denied