权限和归属
访问权限
r 读取:允许查看内容-read
w 写入:允许修改内容-write
x 可执行:允许运行和切换execute
归属关系
u 所有者:拥有此文件/目录的用户user
g 所属组:拥有此文件/目录的组 group
o 其他用户: 除所有者,所属组以外的用户other
注意:当用户对一个目录有w权限时,即使对此目录下的文件没有w权限,可以通过vim强制修改。!
# echo 123>> /abc/redhat.txt //失败权限不够
#vim /abc/redhat.txt //:wq强制保存成功
设置基本权限
chmod 命令
格式: chmod [ugoa] [+-=][rwx] 文件...
chmod [nnn] 文件...
常见命令选项
-R : 递归修改权限
#chmod g+w,o-rx /data/test //使用字符形式改权限
#chmod 755 /data/test //使用数字形式改权限
文件或目录的默认权限? 为什么文件默认权限是644?
一般文件默认均不给x执行权限,其他取决于umask设置
#umask
#umask -S
#umask 0027
创建文件夹时,直接设置权限
mkdir -m 选项
#mkdir -m 755 udir2
归属控制
设置归属关系
chown 命令
chown 属主 文件...
chown 属主:属组 文件...
chown :属组 文件...
常用命令选项
-R :递归修改权限
特殊权限概述:叠加于权限位的u, g, o 分组之上; 用来传递/设置 ,程序执行者 身份
类别 | 字符表示 | 数字表示 | 叠加位置 |
Set UID | s | 4 | User的x 位 |
Set UID | s | 2 | Group的x位 |
Sticky Bit | t | 1 | Other的x位 |
Set UID 概述
1. 仅对可执行的程序有意义;
2. 当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应的权限
3. 占用属主(User)的 x位;
4. 显示为s 或 S ,取决于属主是否有x权限;
Set GID概述
SGID 权限
1. 对可执行的程序/目录有效
2. 当其他用户执行带SGID标记的程序时, 具有程序属组的身份和相应权限
3. 在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份。
4. 占用属组 Group 的 x 位
5. 显示为s或S ,取决于属组是否有x权限 (小写 s 包含有权限)
测试:
当未设置目录的SGID 权限时,对于新建文档的属组; 谁创建,谁拥有
当设置了SGID 权限时, 对于新建文档的属组; 上层目录归谁,就归谁
#chmod g+s /nsdpublic/
#mkdir /nsdpublic/nsd2
Sticky Bit 概述
粘滞位,
1. 适用于目录,用来限制用户滥用写权限
2. 在设置了粘滞位的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档
3. 占用其他人(other)的 x位
4. 显示为t 或T ,取决于是否其他人是否有x权限
#mkdir -m 777 /stdir
#chmod o+t /stdir
#cd /stdir
# rm -rf root.file //无法删除, 权限不够
ACL权限概述:
注意: EXT系列 文件系统才支持!
ACL权限的作用
查看ACL权限
getfacl 命令
格式 : getfacl 文件或目录
注意: 大部分文档默认不会设置任何额外的ACL策略
定义ACL控制策略
sefacl命令
格式 : setfacl [选项] u:用户名:权限 文件...
setfacl [选项] g:组名:权限 文件...
常用命令选项
-m : 定义一条ACL策略
-x : 清除指定的ACL策略
-b : 清除所有已设置的ACL策略
-R : 递归设置ACL策略
-d : 为目录设置默认权限(子文档自动继承)
例子: 为/root 设置acl策略; 使用户stu01具有rx权限
#setfacl -m user:stu01:r-x /root
#ls -ld /root
#getfacl /root
例子;为/acltest 设置默认权限;其下新建的文档,用户zengye都有rwx权限
#setfacl -dm user:zengye:rwx /acltest
#setfacl -m m:r /acltest/nfile
问题/注意:无法修改挂载点的目录权限
#chmod o+w /media/ //无法更改/media的权限;
因为光盘设备一般不可刻录的,所以不支持写入;因此给挂载点设置w写入权限会报错