本文共 4002 字,大约阅读时间需要 13 分钟。
一、文件或目录权限chmod
[root@localhost ~]# ls -ltotal 4-rw-r--r--. 1 root root 0 Mar 28 08:20 2.txt-rw-------. 1 root root 2331 Mar 28 09:02 anaconda-ks.cfg.1rw- r-- r--. 1 root root //第一到三字符:rw- 表示所有者拥有读、写权限//第四到六字符:r-- 表示所属组拥有读的权限//第七到十字符:r-- 表示其他用户拥有读的权限权限使用数字表示: r=4 w=2 x=1 rwx=7 rw-=6 --x=1例如:rw-r--r--.=644 rw-r-xr-x=655chmod命令(change mode缩写):用来变更文件或目录的权限选项:-c或——changes:效果类似“-v”参数,但仅回报更改的部分;-f或--quiet或——silent:不显示错误信息;-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;例:chmod -R 770 hll //将hll文件夹下的所以子文件的权限也改为770-v或——verbose:显示指令执行过程;--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;<权限范围>+<权限设置>:开启权限范围的文件或目录的该选项权限设置;<权限范围>-<权限设置>:关闭权限范围的文件或目录的该选项权限设置;<权限范围>=<权限设置>:指定权限范围的文件或目录的该选项权限设置;例1:[root@localhost ~]# chmod 700 2.txt[root@localhost ~]# ls -ltotal 4-rwx------. 1 root root 0 Mar 28 08:20 2.txt前十位字符串后面的 .的解释(有.表示selinux开启,需要关闭selinux后.就没有显示了)-rwx------. 1 root root 0 Mar 28 08:20 2.txtchmod命令还可以这样使用:chmod u=rwx,g=r,o=r hll例2:chmod a+x hll //将所有者用户、所属组、其他用户的权限都+x执行权限[root@localhost tmp]# chmod a+x hll[root@localhost tmp]# ls -ldrwxr-xr-x. 4 root root 24 Mar 28 08:26 hll例3:chmod a-x hll //将所有者用户、所属组、其他用户的权限都去掉x执行权限[root@localhost tmp]# chmod a-x hll[root@localhost tmp]# ls -ldrw-r--r--. 4 root root 24 Mar 28 08:26 hll或者还可以使用:chmod u-x hll //所有者去掉x权限chmod g-w hll //所属组去掉w权限chmod o-x hll //其他用户去掉x权限二、更改所有者和所属组chownchown命令(change owner):更改所有者权限命令例1:[root@localhost tmp]# chown user1 yum.log //更改yum.log所有者权限为user1用户[root@localhost tmp]# ls -l-rw-------. 1 user1 root 0 Mar 25 23:52 yum.log例2:[root@localhost tmp]# chown user1:user2 /tmp/yum.log //更改yum.log的所有者为user1,所属组为user2[root@localhost tmp]# ls -l-rw-------. 1 user1 user2 0 Mar 25 23:52 yum.logchgrp命令(change group):更改文件或目录的所属组权限命令例3:[root@localhost tmp]# chown :root /tmp/yum.log //只更改yum.log的所属组为root[root@localhost tmp]# ls -l-rw-------. 1 user1 root 0 Mar 25 23:52 yum.log例4:[root@localhost tmp]# chgrp user1 /tmp/yum.log //更改yum.log所属组权限为user1组[root@localhost tmp]# ls -l-rw-------. 1 user1 user1 0 Mar 25 23:52 yum.log查看系统用户:cat /etc/passwdchown用法格式:chown -R username:group filename三、umask:用来决定默认的目录和文件权限的
[root@localhost ~]# umask0022 //系统root用户的umask指为0022修改系统默认mask值:[root@localhost ~]# umask0022[root@localhost ~]# umask 002[root@localhost ~]# umask0002目录默认权限设置规律:777 - umask 真实算法:777=(rwxrwxrwx)-(-------wx)=774
文件默认权限设置规律:666 - umask 真实算法:666=(rw-rw-rw-)- (-------wx) = 644注意:-(什么都没有)-(减号)x(x权限)=-(什么都没有)[root@localhost ~]# touch 11.txt[root@localhost ~]# ls -l 11.txt-rw-r--r--. 1 root root 0 Mar 29 00:17 11.txt //创建一个文件默认权限是644[root@localhost ~]# mkdir 123
[root@localhost ~]# ls -ld 123drwxr-xr-x. 2 root root 6 Mar 29 00:18 123 //创建一个文件夹/目录默认权限755四、隐藏权限lsattr_chattr
[root@localhost ~]# chattr +i 11.txt //给11.txt文件添加i权限,这样11.txt文件别人就不能修改、删除、移动等[root@localhost ~]# ls -ltotal 4-rw-r--r--. 1 root root 0 Mar 29 00:17 11.txtdrwxr-xr-x. 2 root root 6 Mar 29 00:18 123-rwx------. 1 root root 0 Mar 28 08:20 2.txt-rw-------. 1 root root 2331 Mar 28 09:02 anaconda-ks.cfg.1[root@localhost ~]# mv 11.txt 13.txt //提示没有权限改名mv: cannot move ‘11.txt’ to ‘13.txt’: Operation not permitted[root@localhost ~]# lsattr 11.txt //lsattr命令查看文件隐藏的权限----i----------- 11.txt[root@localhost ~]# chattr -i 11.txt //chattr -i命令去掉-i权限[root@localhost ~]# lsattr 11.txt---------------- 11.txtchattr +a :只能追加字符,不能删除,不能改名称,不能修改文件内容,可以更改时间信息(可以使用head -n2 /etc/passwd >> 11.txt追加字符)
[root@localhost ~]# chattr +a 11.txt //给11.txt文件+a隐藏权限[root@localhost ~]# head -n2 /etc/passwd >> 11.txt //为11.txt文件追加/etc/passwd文件前2行字符[root@localhost ~]# mv 11.txt 13.txt //为11.txt修改名称提示没有权限mv: cannot move ‘11.txt’ to ‘13.txt’: Operation not permitted[root@localhost ~]# lsattr 11.txt //lsattr命令查看11.txt有-i权限-----a---------- 11.txt[root@localhost ~]# chattr -a 11.txt //删除-a权限[root@localhost ~]# lsattr 11.txt---------------- 11.txtchattr +i 目标目录:目录没有被写入、删除、更改、创建子文件夹等权限
lsattr -R 111:可以显示111目录下的所有子目录,如果不加-R选项,只能例出显示一层目录转载于:https://blog.51cto.com/13669226/2092259