4、权限管理
基本权限:UGO
权限概念
由超管决定某个计算机用户,能否访问某个文件。(图片文件,视频文件,普通文件)只有当权力冲突时,权限才会起作用
权限的三类对象:UGO
- u:所属主(文件或目录的创建者,也就是主人)
- g:所属组(文件或目录主人的用户组组员)
- o:其他人(除了上面两种以外的其他用户)
- a:所有用户,也就是u+g+o,上面三类对象的简写
权限的三种类型
- 可读:r = 4
- 可写:w = 2
- 可执行:x = 1
注意:数字表示可以用数字代替字母,例如:给某个用户r和w权限,可以写成4+2,也就是6
三种权限对与文件和目录的含义
权限类型 | 对文件的含义 | 对目录的含义 |
---|---|---|
r(读) | 可以读取文件内容 | 可以看到目录所包含的文件 |
w(写) | 可以更改文件内容 | 可以增删改目录中的文件 |
x(执行) | 可以作为程序执行 | 可以进入目录,但是不能看到和修改目录中的文件 |
查看文件权限详情
使用ls -l
命令,或者 ll
命令,后者是前者的简写
以file.txt文件为例:
权限详情如下:
权限表达式
可以使用+、-、=来设置权限对象的权限类型,其中权限类型可以用字母也可以用数字
-
+:新增权限
例如:给属主添加r和w权限,也就是读写权限
-
字母表达式:
u+r+w
-
数字表达示:
u+6
注意:假设添加已有的权限类型,不会有任何变化,也不会报错
-
-
-:删除权限
例如:给属组去掉 x 权限,也就是执行权限
- 字母表达式:
g-x
- 数字表达式:
g-1
注意:假设删除本来就没有的权限类型,不会有任何变化,也不会报错
- 字母表达式:
-
=:强制赋值权限
例如:给属主强制赋值r权限,也就是不管属主有无什么权限,强制属主只有r权限
- 字母表达式:
u=r
- 数字表达式:
u=4
- 字母表达式:
设置多个权限对象
使用逗号隔开即可,如果一次性设置三个权限对象的权限类型,可以把权限对象省略,但是要注意顺序是:属主、属组、其他人
例如:u=7,g=7,o=4
等价于:774
chmod:设置文件或目录的权限
词组change mode的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。
设置权限时可以使用数字法,亦可使用字母表达式,对于目录文件,建议加入-R参数进行递归操作,这意味着不仅对于目录本身,而且也对目录内的子文件/目录进行新权限的设定。
语法格式:chmod 参数 权限表达式 文件名
常用参数
参数 | 描述 |
---|---|
-c | 改变权限成功后再输出成功信息 |
-f | 改变权限失败后不显示错误信息 |
-R | 递归处理所有子文件 |
-v | 显示执行过程详细信息 |
--help | 显示帮助信息 |
--no-preserve-root | 不特殊对待根目录 |
--preserve-root | 禁止对根目录进行递归操作 |
--reference | 使用指定参考文件的权限 |
--version | 显示版本信息 |
使用示例
-
设置文件file.txt的权限为774,并显示执行过程
[root@lyy tmp]# chmod -v 774 file.txt mode of "file.txt" changed from 0644 (rw-r--r--) to 0775 (rwxrwxr-x)
-
设置目录:dir2可以被所有人进入且查看内部文件,并显示执行过程
[root@lyy tmp]# chmod -v a=r+x dir2 mode of "dir2" changed from 0755 (rwxr-xr-x) to 0555 (r-xr-xr-x)
chown:更改文件或目录的所属主和组
chown命令来自英文词组change owner的缩写,其功能是改变文件或目录的用户和用户组信息。管理员可以改变一切文件的所属信息,而普通用户只能改变自己文件的所属信息。
语法格式:chown 参数 所属主.所属组 文件名
语法格式:chown 参数 所属主:所属组 文件名
上面中都可以
常用参数
参数 | 描述 |
---|---|
-c | 显示所属变更信息 |
-f | 若该文件拥有者无法被更改也不显示错误 |
-h | 仅对链接文件(而非真正指向的文件)进行更改 |
-P | 不遍历任何符号链接 |
-R | 递归处理所有子文件 |
-v | 显示执行过程详细信息 |
--help | 显示帮助信息 |
--no-preserve-root | 不特殊对待根目录 |
--preserve-root | 不允许在根目录上执行递归操作 |
--version | 显示版本信息 |
使用示例
-
改变文件file.txt的所属主为liu
[root@lyy tmp]# chown liu file.txt
-
改变文件file.txt的所属组为liu( " . "也可以用 " : " 代替)
[root@lyy tmp]# chown .liu file.txt [root@lyy tmp]# chown :liu file.txt
-
同时改变文件file.txt的所属主为root,所属组为root
[root@lyy tmp]# chown root.root file.txt [root@lyy tmp]# chown root:root file.txt
-
改变目录:dir1及目录下子文件的属主和组都为liu
[root@lyy tmp]# chown liu.liu dir1 [root@lyy tmp]# chown -R liu:liu dir1
chgrp:更文件或目录的所属组
词组”change group“的缩写,其功能是用于更改文件所属用户组。Linux系统中常用chown命令更改文件所属用户及用户组身份信息,如仅需要修改文件所属用户组身份信息,则可以使用chgrp命令更快地完成。
语法格式:chgrp [参数] 文件/目录名
常用参数
参数 | 描述 |
---|---|
-c | 显示调试信息 |
-f | 不显示错误信息 |
-h | 对符号链接文件做修改 |
-L | 遍历每个符号链接 |
-P | 不遍历每个符号链接 |
-R | 递归处理所有子文件 |
-v | 显示执行过程详细信息 |
--help | 显示帮助信息 |
--vesion | 显示版本信息 |
使用示例
-
改变目录dir1的所属组为liu
[root@lyy tmp]# chgrp liu dir1
-
改变目录dir1及目录下所以子文件的所属组为:liu
[root@lyy tmp]# chgrp -R liu dir1
进阶权限:ACL
ACL简介
ACL(access control list),访问控制列表,通过给指定的用户或组制定ACL策略规则来控制用户对文件或目录的访问
ACL和UGO的区别
-
UGO可设置的权限对象中,属主和属组都只能有一个,无法设置多个用户或用户组对于相同文件或目录的不同权限,其余用户都属于其他里面
假设想要设置用户对于file.txt文件的访问,用户1的权限只能是 r 权限,用户2的权限只能是 w 权限,用户3的权限只能是 x 权限,使用UGO显然无法完成预期的效果
-
ACL可以设置多个用户或用户组对同一个文件或目录的不同访问权限,属于是UGO的进阶版
假设设置用户对于file.txt文件的访问权限,可以这样设置:用户1设置r权限,用户2设置rw权限,用户3设置x权限,用户4设置rwx权限,用户5什么权限都没有等等
用户组也是同理
权限的优先级
- 如果文件的属于者访问文件,那么将使用属主权限进行访问限制
- 如果访问的用户设置了acl权限,那么使用acl对该用户设置的权限,对该用户进行访问限制
- 如果访问的用户在属主的用户组内,那么将使用属组权限进行访问限制
- 如果访问的用户在设置了acl权限的用户组内,那么使用acl对该用户组设置的权限,对该用户进行访问限制
- 除去上面情况外的用户来访问,则使用其他人权限进行访问限制
不管是文件还是组,只要使用acl设置后都以acl设置的权限为最高级(针对ugo)
设置acl策略规则
假设有用户:user1;用户组grp1;
-
给用户user1设置acl规则为:rw
u:user1:rw
-
给用户组grp1设置acl规则为:rwx
g:grp1:rwx
-
给文件拥有人设置acl规则为:rwx
U::rwx
-
文件文件属主所在的用户组设置acl规则为:rw
g::rw
-
给文件其他人设置acl规则:r
o::r
getfacl:显示文件或目录的acl策略规则
getfacl命令来自英文词组get file access control list的缩写,其功能是显示文件或目录的ACL策略。
语法格式:getfacl 参数 文件或目录名
常用参数
参数 | 描述 |
---|---|
-a | 显示文件的ACL策略 |
-c | 不显示注释标题 |
-d | 显示目录的ACL策略 |
-e | 显示所有的有效权限 |
-h | 显示帮助信息 |
-L | 找到符号链接对应的文件 |
-n | 显示用户ID和组群ID |
-P | 不找符号链接对应的文件 |
-R | 递归处理所有子文件 |
-t | 设置表格输出格式 |
-v | 显示版本信息 |
使用示例
-
显示文件file的acl策略
[root@lyy tmp]# getfacl file # file: file # owner: root # group: root user::rw- user:liu:rw- group::r-- group:group01:r-- mask::rw- other::r--
-
不显示注释
[root@lyy tmp]# getfacl -c file user::rw- user:liu:rw- group::r-- group:group01:r-- mask::rw- other::r--
-
以表格的形式显示
[root@lyy tmp]# getfacl -t file # file: file USER root rw- user liu rw- GROUP root r-- group group01 r-- mask rw- other r--
setfacl:设置文件或目录的acl策略规则
词组set file access control list的缩写,其功能是设置文件ACL策略规则。FACL即文件访问控制列表策略
通过该技术可以更加精准地控制权限的分配,例如仅允许某个用户访问指定目录,或仅有某个用户才具有写入权限。把权限约束在一个极小的范围内,系统也就更加安全了。
语法格式:setfacl 参数 给对象设置的acl规则 文件或目录名
常用参数
参数 | 描述 |
---|---|
-b | 删除指定文件或目录所配置的所有acl规则 |
-d | 应用到默认访问控制列表 |
-k | 移除默认访问控制列表 |
-L | 跟踪符号链接文件 |
-m | 更改或添加指定对象的ACL策略规则 |
-P | 找到符号链接对应的文件 |
-R | 递归处理所有子文件 |
-x | 删除指定对象的所有ACL规则 |
--help | 显示帮助信息 |
--vesion | 显示版本信息 |
使用示例
-
对用户liu设置acl规则,允许对文件file进行读写。对用户user01设置acl规则,允许对文件读
// 为用户liu设置acl [root@lyy tmp]# setfacl -m u:liu:rw file [root@lyy tmp]# getfacl file // getfacl:查看文件或目录的acl策略规则 # file: file // 文件名 # owner: root // 属主 # group: root // 属组 user::rw- // 属主的权限 user:liu:rw- // 单独为用户liu设置的权限 group::r-- // 属组的权限 mask::rw- // acl掩码 other::r-- // 其他人权限 // 为用户user01设置acl [root@lyy tmp]# setfacl -m u:user01:r file [root@lyy tmp]# getfacl file # file: file # owner: root # group: root user::rw- user:liu:rw- // 单独为用户liu设置的权限 user:user01:r-- // 单独为用户user01设置的权限 group::r-- mask::rw- other::r--
-
删除用户liu在file文件的所有权限
[root@lyy tmp]# setfacl -x liu file // 该文件已经没有用户liu的acl权限了,liu再访问该文件的权限就是其他人权限了 [root@lyy tmp]# getfacl file # file: file # owner: root # group: root user::rw- user:user01:r-- group::r-- mask::r-- other::r--
-
删除文件file配置的所有acl规则
[root@lyy tmp]# setfacl -b file // file文件配置的所有acl规则都被删除了 [root@lyy tmp]# getfacl file # file: file # owner: root # group: root user::rw- group::r-- other::r--
-
为目录dir配置用户liu的acl规则为:rwx,配置用户组group01的acl规则为:rx。(注意:-R必须在-m前面,否则会报错)
// 为目录dir配置用户liu的acl规则为:rwx [root@lyy tmp]# setfacl -Rm g:group01:rx dir // 为目录dir配置用户组group01的acl规则为:rx [root@lyy tmp]# setfacl -Rm u:liu:rwx dir // 使用getfacl查看是否配置成功 [root@lyy tmp]# getfacl dir # file: dir # owner: root # group: root user::rwx user:liu:rwx // 为用户liu配置的acl规则 group::r-x group:group01:r-x // 为用户组group01配置的acl规则 mask::rwx other::r-x
-
对其他用户(o)设置acl规则,可以对文件file进行读
[root@lyy tmp]# setfacl -m o::r file
ls -l与getfacl
ls -l
命令(简写为ll)并不正确的显示拥有acl策略规则的文件或目录
- 使用
ls -l
命令查看一个拥有acl策略的文件file01:
-rw-rw-r--+ 1 root root 0 4月 25 06:11 file01
- 使用
ls -l
命令查看一个没有acl策略的文件file02
-rw-r--r--. 1 root root 0 4月 25 07:32 file02
通过上面对比可以看出:selinux标识处,显示+的表示该文件或目录拥有acl策略,如果是一个 " . " 则表示该文件没有acl策略
所以当我们使用ls -l
命令查看文件权限时,发现selinux标识处是 + ,那么就需要使用getfacl命令来查看该文件
特殊权限
特殊权限概述
linux文件的三种特殊权限分别是:suid权限、sgid权限、sticky权限;
- suid权限作用于文件属主
- sgid权限作用于属组上
- sticky权限作用于other其他上
suid权限
作用:让普通用户临时拥有该文件的属主的执行权限
注意:suid权限只能应用在二进制可执行文件(命令)上,而且suid权限只能设置在属主位置上。
增加、移除suid权限
-
suid权限使用s表示,增加权限u+s,移除权限u-s;
-
suid权限也可以使用数字形式表示,0表示去除suid权限,4表示添加suid权限,而且是在原权限的数字表达形式开头加0或4
如:0755移除suid权限,4755添加suid权限。
使用示例:
例如,普通用户无法使用cat命令查看/root里面的文件,因为权限不够
想要普通用户也可以使用cat命令查看/root里面的文件,这需要切换到超级管理员给/usr/bin/cat文件添加suid,让普通用户使用cat命令时的权限跟root一样
最后记得将移除suid权限
过程如下
// 普通用户无法使用cat命令查看root里面的文件,权限不够
[liu@lyy ~]$ cat /root/rootdir/file
cat: /root/rootdir/file: 权限不够
// 切换到root超级管理员的账号
[liu@lyy ~]$ su - root
密码:
上一次登录:四 4月 25 17:35:55 CST 2024从 192.168.10.1pts/1 上
// 给cat文件添加suid权限。下面命令等价于:chmod 4755 /user/bin/cat
[root@lyy ~]# chmod u+s /usr/bin/cat
// 查看文件权限,发现属主位置上的执行权限变为:s。表示suid权限添加成功
[root@lyy ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat
// 切换到普通用户:liu
[root@lyy ~]# su - liu
上一次登录:四 4月 25 19:43:31 CST 2024pts/1 上
// 再使用cat命令,发现可以查看/root中的文件了
[liu@lyy ~]$ cat /root/rootdir/file
宋嘉龙大傻逼
// 实验完成,切换到超级管理员的账号,移除suid权限
[liu@lyy ~]$ su - root
密码:
上一次登录:四 4月 25 17:35:55 CST 2024从 192.168.10.1pts/1 上
// 移除suid权限。下面命令等价于:chmod 0755 /user/bin/cat
[root@lyy ~]# chmod u-s /usr/bin/cat
// 使用ll命令查看,确认移除完成
[root@lyy ~]# ll /usr/bin/cat
-rwxr-xr-x. 1 root root 54080 8月 20 2019 /usr/bin/cat
注:以// 开头的是注释,并不是命令或运行结果
总结
-
给cat文件添加suid权限。下面两个命令等价
[root@lyy ~]# chmod 4755 /user/bin/cat [root@lyy ~]# chmod u+s /usr/bin/cat
-
移除cat文件的suid权限。下面两个命令等价
[root@lyy ~]# chmod 0755 /user/bin/cat [root@lyy ~]# chmod u-s /usr/bin/cat
sgid权限
作用:sgid权限一般应用在目录上,当一个目录拥有sgid权限时,任何用户在该目录下创建的文件的属组都会继承该目录的属组。
注意:sgid只能作用在属组位置上
增加、移除sgid权限
- sgid权限也使用s表示,增加权限g+s,移除权限g-s;
- sgid权限也可以使用数字形式表示,0表示去除sgid权限,2表示添加sgid权限,而且是在原权限的数字表达形式开头加0或2,如:0755移除sgid权限,2755添加sgid权限。
使用示例
// 当前登录的用户身份:root
// 查看目录dir1的详细可知,他的属组是用户组:liu
[root@lyy rootdir]# ll -d dir1
drwxr-xr-x. 2 root liu 6 4月 26 07:41 dir1
// 为目录dir1添加sgid权限。等价于命令:chmod 2755 dir1
[root@lyy rootdir]# chmod g+s dir1
// 查看目录dir1的详细信息,发现属组位置的执行权限变为:s,说明成功添加了sgid权限
[root@lyy rootdir]# ll -d dir1
drwxr-sr-x. 2 root liu 6 4月 26 07:41 dir1
// 使用root身份在目录dir1下面创建文件file
[root@lyy rootdir]# touch dir1/file
// 查看文件file的详细信息,发现文件还是属于用户组liu
[root@lyy rootdir]# ll dir1/file
-rw-r--r--. 1 root liu 0 4月 26 07:44 dir1/file
// 移除目录dir1的sgid权限。等价于命令:chmod 0755 dir1
[root@lyy rootdir]# chmod g-s dir1
// 再用root身份在目录dir1下创建一个文件file02
[root@lyy rootdir]# touch dir1/file02
// 查看文件file02的详情,发现他的属组又是root组的了
-rw-r--r--. 1 root root 0 4月 26 07:46 dir1/file02
// 下面是两个文件对比,一个在目录有sgid权限时添加的,一个是在目录没有sgid权限时添加的
[root@lyy rootdir]# ll dir1
总用量 0
-rw-r--r--. 1 root liu 0 4月 26 07:44 file
-rw-r--r--. 1 root root 0 4月 26 07:46 file02
总结:
-
添加目录dir1的sgid权限。下面两个命令等价
[root@lyy rootdir]# chmod 2755 dir1 [root@lyy rootdir]# chmod g+s dir1
-
移除目录dir1的sgid权限。下面两个命令等价
[root@lyy rootdir]# chmod 0755 dir1 [root@lyy rootdir]# chmod g-s dir1
sticky权限
作用:sticky权限一般针对目录来设置,作用是只允该目录下的文件的创建者删除自己的创建的文件,不允许其他人删除文件。(root用户除外,因为root用户是超级管理员)
注意:sticky权限只能设置在other位置上。
添加、移除sticky权限
- sticky权限使用t表示,增加权限o+t,移除权限o-t;
- sticky权限也可以使用数字形式表示,0表示去除权限,1表示添加权限,而且是在原权限的数字表达形式开头加0或1,如下:如:0755移除sticky权限,1755添加sticky权限。
使用示例
// 登录普通用户:user01,并创建目录:user01_dir
[user01@localhost tmp]$ mkdir user01_dir
// 在目录下创建文件:file
[user01@localhost tmp]$ touch user01_dir/file
// 将目录user01_dir及下面的子文件的权限都设置成可读可写可执行
[user01@localhost tmp]$ chmod -R 777 user01_dir
// 给目录user01_dir添加sticky权限。等价于命令:chmod 1777 user01_dir
[user01@localhost tmp]$ chmod o+t user01_dir
// 查看目录user01_dir的详细信息,发现其他人的执行权限变为:t,说明sticky权限设置成功
[user01@localhost tmp]$ ll -d user01_dir
drwxrwxrwt. 2 user01 user01 18 4月 26 00:19 user01_dir
// 切换另一个普通用户:user02
[user01@localhost tmp]$ su - user02
密码:
// 对用户user01创建的文件进行读写,发现都么有任何问题
[user02@localhost tmp]$ vim user01_dir/file
[user02@localhost tmp]$ cat user01_dir/file
111
222
333
// 但是无法删除文件,因为该文件所在的目录有sticky权限,除了属主和root以为都不能删
[user02@localhost tmp]$ rm user01_dir/file
rm: 无法删除"user01_dir/file": 不允许的操作
// 切换到用户user01,并删除文件,删除成功
[user01@localhost ~]$ rm /tmp/user01_dir/file
// 使用root超管的身份,移除user01_dir目录的sticky权限。等价于命令:chmod 0777 user01_dir
[root@localhost ~]# chmod o-t /tmp/user01_dir
// 查看是否移除成功
[root@localhost ~]# ll -d /tmp/user01_dir
drwxrwxrwx. 2 user01 user01 18 4月 26 00:25 /tmp/user01_dir
总结
-
为目录:user01_dir添加sticky权限。下面两个命令等价
[user01@localhost tmp]$ chmod 1777 user01_dir [user01@localhost tmp]$ chmod o+t user01_dir
-
移除目录:user01_dir的sticky权限。下面两个命令等价
[root@localhost ~]# chmod 0777 user01_dir [root@localhost ~]# chmod o-t /tmp/user01_dir
特殊权限的大写与小写
使用 ll 命令后,可以通过特殊权限的大小写来分辨是否开启了对象的执行权限:
- 当特殊权限为大写时,该对象没有执行权限
- 当特殊权限为小写是,该对象有执行权限
如下:
-
这是一个什么权限也没有的文件file
[root@localhost rootdir]# ll /root/rootdir/file ----------. 1 root root 0 4月 26 01:18 /root/rootdir/file
-
为他加上全部特殊权限后,特殊权限显示大写,因为他的三个权限对象都没有执行权限
[root@localhost rootdir]# chmod u+s file [root@localhost rootdir]# chmod g+s file [root@localhost rootdir]# chmod o+t file [root@localhost rootdir]# ll /root/rootdir/file ---S--S--T. 1 root root 0 4月 26 01:18 /root/rootdir/file
-
为三个权限对象加上执行权限后,特殊权限的位置就显示小写了
[root@localhost rootdir]# chmod u+x file [root@localhost rootdir]# chmod g+x file [root@localhost rootdir]# chmod o+x file [root@localhost rootdir]# ll /root/rootdir/file ---s--s--t. 1 root root 0 4月 26 01:18 /root/rootdir/file
隐藏权限
chattr:更改文件的隐藏权限
词组change attribute的缩写,其功能是更改文件隐藏权限
常用的ls命令仅能查看文件的一般权限、特殊权限、SELinux安全上下文与是否有FACL(文件访问控制列表)等情况,但却无法查看到文件的隐藏权限
语法格式:chattr 参数 权限 文件名
常用参数
参数 | 描述 |
---|---|
-R | 递归处理所有子文件 |
-v | 设置文件或目录版本 |
-V | 显示执行过程详细信息 |
+ | 开启文件或目录的指定隐藏属性 |
— | 关闭文件或目录的指定隐藏属性 |
= | 设置文件或目录的指定隐藏属性 |
常用权限
参数 | 描述 |
---|---|
i | 无法对文件进行任何修改(包括移动、重命名、删除等) |
a | 仅允许补充内容,无法覆盖/删除内容 |
S | 文件内容在变更后立即同步到硬盘 |
s | 彻底从硬盘中删除,不可恢复 |
A | 不再修改这个文件或目录的最后访问时间 |
b | 不再修改文件或目录的存取时间 |
D | 检查压缩文件中的错误 |
d | 使用dump命令备份时忽略本文件/目录 |
c | 默认将文件或目录进行压缩 |
u | 当删除某文件后依然保留其在硬盘中的数据 |
t | 让文件系统支持尾部合并 |
x | 可以直接访问压缩文件中的内容 |
使用示例
-
给文件file添加隐藏权限:i,无法对file文件进行任何修改
[root@localhost rootdir]# chattr +i file
-
移除文件file的隐藏权限:i
[root@localhost rootdir]# chattr -i file
-
为目录:dir1及其他的子文件都添加隐藏权限:i,并显示执行过程
[root@localhost rootdir]# chattr -R -V +i dir1 chattr 1.42.9 (28-Dec-2013) dir1的标志被设为 ----i-----------
-
移除目录:dir1及其他的子文件的隐藏权限:i,并显示执行过程
[root@localhost rootdir]# chattr -R -V -i dir1 chattr 1.42.9 (28-Dec-2013) dir1的标志被设为 ----------------
lsattr:查看文件的隐藏权限
词组list attribute的缩写,其功能是显示文件的隐藏属性。
隐藏属性也叫隐藏权限,顾名思义就是用chattr命令添加在文件上的隐藏权限属性。这些属性信息用常规的ls命令无法查看,需要使用lsattr命令查看。
语法格式:lsattr 参数 文件名
常用参数
参数 | 描述 |
---|---|
-a | 显示目录中的所有文件 |
-d | 仅显示目录名称 |
-D | 显示属性的名称及默认值 |
-E | 显示从用户设备数据库中获得的当前值 |
-F | 设置用户定义的格式 |
-l | 显示设备的逻辑名称 |
-R | 递归处理所有子文件 |
-V | 显示版本信息 |
使用示例
-
查看指定文件:file的隐藏属性
[root@localhost rootdir]# lsattr file ----i-d--------- file
-
查看指定目录dir1的隐藏属性
[root@localhost rootdir]# lsattr -d dir1 ---------------- dir1
-
查看指定目录dir1中全部文件的隐藏属性
[root@localhost rootdir]# lsattr -R dir1 ---------------- dir1/file01 ---------------- dir1/file02 ---------------- dir1/file03
掩码
掩码的作用
Linux系统对于普通文件的默认权限是0666,目录的默认权限是0777
但是为什么我们创建的文件或目录不是这个权限呢,如下
[root@localhost rootdir]# touch file
[root@localhost rootdir]# mkdir dir
[root@localhost rootdir]# ll
总用量 0
drwxr-xr-x. 2 root root 6 4月 26 16:40 dir
-rw-r--r--. 1 root root 0 4月 26 16:39 file
出现上述原因是因为文件和目录的权限都经过掩码过滤了
使用umask命令查看掩码的值
[root@localhost rootdir]# umask
0022
经过掩码过滤(也就是按位相减),就得到我们现在看到的文件和目录的权限:0644和0755
umaks:设置/查看掩码
词组“user file-creation mode mask”的缩写,其功能是用于管理权限掩码。umask中文常被译为文件掩码,权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可获得建立文件时预设的权限
语法格式:umask [参数] [权限掩码]
常用参数
参数 | 描述 |
---|---|
-p | 输出的掩码可以直接作为指令执行 |
-S | 使用文字来表示权限掩码 |
使用示例
-
查看当前系统的掩码
[root@localhost rootdir]# umask 0022
-
设置掩码为0111
[root@localhost rootdir]# umask 0111
-
使用文字表示权限掩码
[root@localhost rootdir]# umask -S u=rwx,g=rx,o=rx