Linux云计算架构-文件权限、所有者、所属组详解

文章目录

  • Linux云计算架构-文件权限、所有者、所属组详解
    • 1. linux中有哪些文件
    • 2. 文件有哪些权限
    • 3. 如何设置文件的权限
      • 3.1 设置文件的一般权限和特殊权限
      • 3.2 设置隐藏权限
      • 3.3 设置ACL访问控制列表
    • 4. 如何设置文件的属主和属组
    • 5. 扩展知识

Linux云计算架构-文件权限、所有者、所属组详解

linux中一切都是文件。 我们不仅要了解文件有哪些权限,还要能随心所欲的修改文件的权限,这样才能满足我们对日常工作的需求。

1. linux中有哪些文件

Linux云计算架构-文件权限、所有者、所属组详解_第1张图片

2. 文件有哪些权限

Linux云计算架构-文件权限、所有者、所属组详解_第2张图片

3. 如何设置文件的权限

3.1 设置文件的一般权限和特殊权限

对文件或者目录使用ll 文件名或者ls -l 文件名命令都可以查看文件的权限。
Linux云计算架构-文件权限、所有者、所属组详解_第3张图片
Linux云计算架构-文件权限、所有者、所属组详解_第4张图片
在这里插入图片描述
Linux云计算架构-文件权限、所有者、所属组详解_第5张图片
Linux云计算架构-文件权限、所有者、所属组详解_第6张图片
有了以上的知识,我们可以使用命令chmod命令设置文件的一般权限和特殊权限。

  • 数字法:直接设置一般权限和特殊权限【777=0777】【654=0654】【7654则表示即设置一般权限也设置特殊权限,第一位表示设置特殊权限,后三位表示设置一般权限】
    Linux云计算架构-文件权限、所有者、所属组详解_第7张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第8张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第9张图片

  • 符号法:在原来的权限基础上加权和减权【u+s】【g+s】【o+t】
    Linux云计算架构-文件权限、所有者、所属组详解_第10张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第11张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第12张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第13张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第14张图片

3.2 设置隐藏权限

  • 查看隐藏权限【lsattr命令】
  • 添加或移除隐藏权限【chattr命令】
    Linux云计算架构-文件权限、所有者、所属组详解_第15张图片
    在这里插入图片描述
    Linux云计算架构-文件权限、所有者、所属组详解_第16张图片

3.3 设置ACL访问控制列表

针对单一用户或用户组、单一文件或目录进行读、写、执行权限的控制。

  • 添加或者删除ACL【setfacl命令】
    Linux云计算架构-文件权限、所有者、所属组详解_第17张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第18张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第19张图片
    Linux云计算架构-文件权限、所有者、所属组详解_第20张图片
  • 查看ACL【getfacl 文件名
    Linux云计算架构-文件权限、所有者、所属组详解_第21张图片

4. 如何设置文件的属主和属组

chown [-R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

文件的所有者和所属组拥有无视文件权限的特权,在无文件写权限的情况下也可以修改修改文件内容。

  • 修改一般文件
    Linux云计算架构-文件权限、所有者、所属组详解_第22张图片
  • 修改目录文件
    Linux云计算架构-文件权限、所有者、所属组详解_第23张图片

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命令也有了更深刻的印象!

你可能感兴趣的:(Linux云计算架构工程师,服务器,centos,linux,运维)