1.9 centos7的文件/目录权限介绍

文件/目录权限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

3a60216e627f55920a86d460d1c48b00.png-wh_

上图显示没法修改

[root@centos7 a]# chattr -i 1.txt
[root@centos7 a]# lsattr -d 1.txt
---------------- 1.txt

关于其余用法,详情请参阅在线帮助man
相关文章
相关标签/搜索