在linux系统下文件的权限通常会以下面的格式显示出来:
Chmod文件权限: 权限的管理chmod
-a 所有的权限 -u 文件所有者的权限 -g 组权限 -o 其他用户的权限
可以使用运算符来设置权限 + - =
r 可读 w 可写 x 可执行 也可以用八进制的数字代表全权限:0 1 2 3 4 5 6 7
0 代表什么权限也没有
1 x 可执行的
2 w 可写的
3 w+x wx
4 r 可读的
5 r+x
6 r+w
7 r+w+x
Umask文件权限
在linxu系统创建之初,为了安全起见任何用户所创建的文件的都没有可执行的权限x,文件的的权限为777-111=666.而我们所创建出的文件的权限都为644,
也就是说只有文件所有者有读写的权限,组、其他人只有可读的权限,这是因为 Umask=0022.
第一个0 代表文件的特殊权限
第二个0 代表文件所有者
第三个0 代表所有组
第四个0 代表 其他人
Umask是拿走的意思,就好比文件的权限是666,umask=022,剩下的就是文件的权限。
修改umask的值 #umask=
重启系统后umask的值就会又被还原到0022,永久生效可以可以修改用户目录下面的.bash_profile这个文件。
ACL规则:
当文件,目录的权限不够用时,就要使用acl规则,来更细的划分文件的权限。
root是唯一有权设置acl规则的的用户。
选项
-b,--remove-all
删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
-k,--remove-default
删除缺省的acl规则。
-n, --no-mask
不要重新计算有效权限。setfacl默认会重新计算acl mask,除非mask被明确的制定。
-mask
重新计算有效权限,即使acl mask被明确指定。
-d,--default
设定默认的acl规则。
-restore=file
从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除--test以外的任何参数一同执行。
--test
测试模式,不会改变任何文件的acl规则,操作后acl规则将被列出。
-R,--recursive
递归的对所有文件及目录进行操作。
-L,--logical
跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P,--physical
跳过所有符号链接,包括符号链接文件。
--version
输出setfacl的版本号并退出。
--help
输出帮助信息。
首先看下file文件的权限:
所有者所属组均为root,系统中的用户缺省为rw,其他人可读。
现在让小明可以rw,rehat用户没有任何权限,其他人也没有任何权限。
其他人没权限:
Redhat用户没权限:
测试下: