文件/目录权限chmodlinux
#查看目录/文件的权限 [root@linux1 ~]# ls -l /tmp/a/ 总用量 0 drwxr-xr-x. 2 root root 6 10月 24 09:28 2 # drwxr-xr-x 一共有十位数,其中:最前面第一位表示类型 #前三个表明 全部者(user)拥有的权限 #中间三个表明 组群(group)拥有的权限 #最后三个表明 其余人(other)拥有的权限 #r表示文件能够被读(read) #w表示文件能够被写(write) #x表示文件能够被执行 #-表示相应的权限尚未被授予
须要注意的是:查看文件权限的目录问题: 若是有文件夹 /a/b/ccentos
那么执行 ls -l /a/b 查看权限的文件并非b,而是查看的c的权限。安全
ls -l /a 查看的是b文件的权限bash
ls -l /a/b 查看的是c文件的权限服务器
ls -l /a/b/c 查看的是c文件的权限app
#修改权限 drwxr-xr-x. 4 root root 24 10月 25 20:25 a #user=rwx #group=r-x #other=r-x 语法: #chmod u=[选项],g=[选项],o=[选项] 文件/目录 #实例以下: [root@centos7 tmp]# chmod u=rwx,g=r,o=r a [root@centos7 tmp]# ls -l drwxr--r--. 4 root root 24 10月 25 20:25 a #取消权限 # chmod a-x,u-x,g-x 文件/目录 #实例以下: [root@centos7 tmp]# chmod u-r,g-r,o-r a [root@centos7 tmp]# ls -l d-wx------. 4 root root 24 10月 25 20:25 a
#rwx:能够用数字来代替 r----------4 w----------2 x----------1 - -------- 0 #实例 -rw-r--r--. 1 root root 334 10月 25 21:34 a/1.txt #---------(600)全部者有读和写的权限 # ------(400)群组(用户组)有读的权限 # ---(400)其余人只有读的权限 #因此,能够标记为644 若是每位加1 即755 以下设置 [root@centos7 tmp]# chmod 755 a/1.txt [root@centos7 tmp]# ls -l a/1.txt -rwxr-xr-x. 1 root root 334 10月 25 21:34 a/1.txt #这样子,就把简单的把执行权限都加上了 #chomd -R 的用法以下,更改当前目录或子目录的权限 [root@centos7 tmp]# chmod -R 777 a [root@centos7 tmp]# ls -l /tmp/a 总用量 4 -rwxrwxrwx. 1 root root 334 10月 25 21:34 1.txt drwxrwxrwx. 3 root root 15 10月 25 21:32 b
更改全部者和所属组chown,chgrpide
#chown 即change owner的缩写 改变文件全部者属性 #chown 全部者:所属组 1.txt 修改所属组 [root@centos7 a]# chown user:user 1.txt [root@centos7 a]# ls -l 1.txt -rw-r--r--. 1 user user 339 10月 25 22:00 1.txt #chown 能够加R选项,用来修改目录及如下的全部文件的权限 [root@centos7 tmp]# ls -l a/ 总用量 4 -rw-r--r--. 1 user user 346 10月 25 22:01 1.txt drwxrwxrwx. 3 user user 15 10月 25 21:32 b #chgrp (change group) #chgrp命令:chgrp命令用来改变文件或目录所属的用户组。该命令用来改变指定文件所属的用户组。 格式:chgrp [选项] 组名 文件名 [root@centos7 tmp]# ls -l a -rw-r--r--. 1 user user 346 10月 25 22:01 1.txt [root@centos7 a]# chgrp root 1.txt [root@centos7 a]# ls -l 1.txt -rw-r--r--. 1 user root 346 10月 25 22:01 1.txt
umask测试
umask 每一个用户都有一个默认的umask值,是用来确认用户的默认权限。centos7
# 查看umask值 [root@centos7 a]# umask 0022 默认文件权限计算方法 1)假设umask值为:022(全部位为偶数) 6 6 6 ==>文件的起始权限值 0 2 2 - ==>umask的值 --------- 6 4 4 2)假设umask值为:045(其余用户组位为奇数) 6 6 6 ==>文件的起始权限值 0 4 5 - ==>umask的值 --------- 6 2 1 ==>计算出来的权限。因为umask的最后一位数字是5,因此,在其余用户组位再加1。 0 0 1 + --------- 622 ==>真实文件权限 默认目录权限计算方法 7 7 7 ==>目录的起始权限值 0 2 2 - ==>umask的值 --------- 7 5 5 #实例一:umask全部位全为偶数时,多数读者对这个例子无疑问 [root@oldboy oldboy]# umask 0022 #→umask当前数值 [root@oldboy oldboy]# umask 044 #→更改成044 [root@oldboy oldboy]# umask 0044 [root@oldboy oldboy]# mkdir umask_test #→建目录测试 [root@oldboy oldboy]# ls -ld umask_test drwx-wx-wx 2 root root 4096 Nov 12 19:21 umask_test #→对应数字权限为733,是否是符合上面的计算方法? [root@oldboy oldboy]# touch umask_test.txt [root@oldboy oldboy]# ls -l umask_test.txt -rw--w--w- 1 root root 0 Nov 12 19:21 umask_test.txt #→对应数字权限为622,是否是符合上面的计算方法?
#实例二:umask值的部分或所有位为奇数时,这个是读者疑问最大的 #当umask值的其余属组位为奇数时 [root@oldboy oldboy]# umask 0023 [root@oldboy oldboy]# mkdir dir [root@oldboy oldboy]# touch file [root@oldboy oldboy]# ls -l 总计 4 drwxr-xr-- 2 root root 4096 11-15 01:04 dir #→对应数字权限为754 -rw-r--r-- 1 root root 0 11-15 01:04 file #→对应数字权限为644 #提示:根据前面的计算方法,当umask为0023时,dir的权限应该是754,而file的权限应该为643,可是因为umask的其余组位为奇数,所以最终权限为其余组位加1,即643加001(对应实践结果644)。注意:umask为偶数的位不要加1。 #实例三:umask值的全部位为奇数时 [root@oldboy oldboy]# umask 0551 [root@oldboy oldboy]# umask 0551 umask 为0551 根据掩码方法计算:目录权限为226,文件权限115,而实际文件权限为226(umask的三个权限位都是奇数,因此,每一个位分别加1就是正确的权限) [root@oldboy oldboy]# mkdir dir5 [root@oldboy oldboy]# touch file5 [root@oldboy oldboy]# ls -l 总计 4 d-w--w-rw- 2 root root 4096 11-15 01:27 dir5 #→目录对应数字权限为226 --w--w-rw- 1 root root 0 11-15 01:27 file5 #→目录对应数字权限为226 再来一例验证下: [root@oldboy oldboy]# umask 0333 [root@oldboy oldboy]# umask 0333 umask 为0333 根据掩码方法计算:目录权限为444,文件权限333,而实际文件权限为444(umask的三个位都是奇数,因此,每一个位分别加1就是正确的权限) [root@oldboy oldboy]# mkdir dir3 [root@oldboy oldboy]# touch file3 [root@oldboy oldboy]# ls -l|grep 3 dr--r--r-- 2 root root 4096 11-15 01:30 dir3 #→目录对应数字权限为444 -r--r--r-- 1 root root 0 11-15 01:30 file3 #→目录对应数字权限为444
隐藏权限lsattr_chattrspa
除了设置文件或目录的读(r)、写(w)、执行(x)权限外,对于某些有特殊要求的档案(如服务器日志)还能够追加隐藏权限的设定。
chattr 设置隐藏权限 选项参数有
i:设定文件不能被删除、更名、设定连接关系,同时不能写入或新增内容。
a:即append,设定该参数后,只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性。
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
lsattr 查看隐藏权限 选项有
-a:显示全部文件属性,包括隐藏文件(.)、当时目录(./)及上层目录(../)。
-d:仅列示目录属性。
-R:递归列示目录及文件属性。
#实例: #给目录添加隐藏权限 [root@centos7 a]# chattr +i c #添加权限 [root@centos7 a]# lsattr -d c #查看权限 ----i----------- c #给文件添加隐藏权限 [root@centos7 a]# chattr +i 1.txt [root@centos7 a]# lsattr -d 1.txt ----i----------- 1.txt
上图显示没法修改
[root@centos7 a]# chattr -i 1.txt [root@centos7 a]# lsattr -d 1.txt ---------------- 1.txt 关于其余用法,详情请参阅在线帮助man