Linux云计算架构-文件权限、所有者、所属组详解
文章目录
Linux云计算架构-文件权限、所有者、所属组详解
linux中一切都是文件。 我们不仅要了解文件有哪些权限,还要能随心所欲的修改文件的权限,这样才能满足我们对日常工作的需求。
1. linux中有哪些文件
2. 文件有哪些权限
3. 如何设置文件的权限
3.1 设置文件的一般权限和特殊权限
对文件或者目录使用ll 文件名
或者ls -l 文件名
命令都可以查看文件的权限。
有了以上的知识,我们可以使用命令chmod
命令设置文件的一般权限和特殊权限。
-
数字法:直接设置一般权限和特殊权限【777=0777】【654=0654】【7654则表示即设置一般权限也设置特殊权限,第一位表示设置特殊权限,后三位表示设置一般权限】
-
符号法:在原来的权限基础上加权和减权【u+s】【g+s】【o+t】
3.2 设置隐藏权限
- 查看隐藏权限【
lsattr
命令】 - 添加或移除隐藏权限【
chattr
命令】
3.3 设置ACL访问控制列表
针对单一用户或用户组、单一文件或目录进行读、写、执行权限的控制。
- 添加或者删除ACL【
setfacl
命令】
- 查看ACL【
getfacl 文件名
】
4. 如何设置文件的属主和属组
chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
文件的所有者和所属组拥有无视文件权限的特权,在无文件写权限的情况下也可以修改修改文件内容。
- 修改一般文件
- 修改目录文件
5. 扩展知识
# 为什么root用户创建一个文件,默认权限是644?
# 为什么普通用户abong创建一个文件,默认权限是664?
# 原来是有一个umask掩码在作怪
[root@server ~]# umask
0022
# 查看、修改umask值,这里不做修改。
# 当UID大于199,且拥有者和所属组相同,则umask为002,否则umask为022。
[root@server ~]# vim /etc/profile
59 if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ] ; then
60 umask 002
61 else
62 umask 022
63 fi
[root@server ~]# id root
uid=0(root) gid=0(root) 组=0(root)
[root@server ~]# id abong
uid=1000(abong) gid=1000(abong) 组=1000(abong)
# root创建的文件权限是644
# 解析为什么umask是022时,文件的权限是644。
①文件的默认权限是666,目录的默认权限是777
②将666和022转二进制,即666=110110110 022=000010010
③022的二进制取反,即111101101
④将666的二进制和022的二进制取反,做一个与运算。即
110110110
111101101 与【同1为1,否则为0】
110100100=644
⑤最后文件的权限应该是644
# 普通用户abong创建的文件权限是664
# 解析为什么umask是002时,文件的权限是664。
①文件的默认权限是666,目录的默认权限是777
②将666和002转二进制,即666=110110110 022=000000010
③022的二进制取反,即111111101
④将666的二进制和022的二进制取反,做一个与运算。即
110110110
111111101 与【同1为1,否则为0】
110110100=664
⑤最后文件的权限应该是664
以上就是有关文件权限的所有内容了,通过以上的学习,我们对ls
命令也有了更深刻的印象!