当前位置 : 主页 > 操作系统 > centos >

Linux目录和文件权限

来源:互联网 收集:自由互联 发布时间:2022-06-20
Linux目录和文件权限管理(上)​ 文件的属性信息 ​ 使用命令:ll /etc查看/etc目录下所有文件的详细信息 ​ 文件的属性信息由以下几部分组成 ​ 第一部分是文件类型权限。第1个字符一

Linux目录和文件权限管理(上)​

文件的属性信息

使用命令:ll /etc查看/etc目录下所有文件的详细信息

Linux目录和文件权限_用户组

文件的属性信息由以下几部分组成

第一部分是文件类型权限。第1个字符一般用来区分文件的类型,常见的文件类型如下:

  • d:表示目录
  • -:表示普通文件
  • l:表示链接文件
  • b:表示可供储存的接口设备,例如:U盘
  • c:表示串行端口设备,例如:键盘、鼠标
  • 第2-10个字符表示文件的访问权限

    第二部分是文件数

    第三部分是该文件(目录)所属用户

    第四部分是该文件(目录)所属组

    第五部分是该文件的大小

    第六部分是文件创建或修改时间

    第七部分是文件名

    文件的权限

    文件属性信息中第一部分的第2-10个字符表示文件的访问权限,这9个字符每3个为一组,第2、3、4个字符表示该文件所属用户的权限,第5、6、7个字符表示该文件所属用户组成员的权限,第8、9、10个字符表示该文件所属用户组外其他用户的权限

    Linux文件的权限分为可读(r)、可写(w)、可执行(x)三种,如果不具备任何权限,则用“-”表示

    以上图为例:图中groff目录的权限为例进行详细说明,其权限位rwxr-xr-x

    2-4位rwx:表示root用户对groff目录具有可读可写可执行权限

    5-7位r-x:表示root用户组中其他组成员对groff目录具有可读可执行权限,但不可写入

    8-10位r-x:表示root组外的其他用户都groff目录具有可读可执行权限,但不可写入

    设置文件权限(chmod)

    1:命令作用​

    chmod命令主要用来设置文件或目录的访问权限

    2:命令格式​

    chomd命令的格式位“chomd [选项] 目录名/文件名”

    3:命令选项​

    chomd命令选项及含义

    +:增减某种权限

    -:取消某种权限

    =:赋予给定权限

    -R:递归处理,将指定目录下的所有文件及子目录一并处理

    4:命令案例​

    目录和文件权限设置的方法有文字表示法和数字表示法两种

    文字表示法

    使用文字表示法设置权限时,用4个字母表示不同的用户

    u:表示文件所属用户

    g:表示文件所属组

    o:表示文件所属组外其他用户

    a:表示系统中所有用户

    新建/mnt/file文件,设置所有用户都对文件可读可写

    Linux目录和文件权限_文件名_02

    为/mnt/file文件的所属用户添加执行权限

    Linux目录和文件权限_访问控制列表_03

    取消其他用户对/mnt/file文件的读写权限

    Linux目录和文件权限_文件名_04

    新建/mnt/test/testdir目录,再新建/mnt/test/testfile文件,设置/mnt/test目录及目录下所有文件对所有人都可读可写可执行

    Linux目录和文件权限_用户组_05

    数字表示法

    在实际设置文件权限时,通常采用数字表示法来表示权限的类型,此方法比较简便,所谓数字表示法,就是将可读(r),可写(w)、可执行(x)分别用数字4、2、1来表示,不具备任何权限用数字0来表示,在把三个数字相加

    图中groff目录的权限为rwxr-xr-x,使用数字来代表各个权限

    rwx:转化为数字是421,数字相加得7

    r-x:转化为数字是401,数字相加得5

    r-x:转化为数字是401,数字相加得5

    因此,groff目录的权限用数字表示法就是755

    创建一个/mnt/hcit目录,设置目录所属用户对该目录有全部权限,目录所属组成员对该目录有可读可写权限,其他用户只有可读权限

    Linux目录和文件权限_用户组_06

    修改文件拥有者(chown)

    1:命令作用​

    chown命令用于修改文件和目录的所属用户和所属组

    2:命令格式​

    chown命令格式有两种:“chown [选项] 用户 文件或目录名”和“chown [选项] 用户: 用户组 文件或目录名”

    3:命令选项​

    chown命令选项及含义

    -r:忽略错误信息

    -R:处理指定目录以及目录下的所有文件

    -v:显示详细的处理信息

    4:命令案例​

    新建一个用户user1,并在/mnt/hcit目录下新建三个文件file1、file2、file3将/mnt/hcit目录下file1文件的所属用户改为user1

    Linux目录和文件权限_用户组_07

    将/mnt/hcit目录下file1文件的所属组修改为user1

    Linux目录和文件权限_用户组_08

    将/mnt/hcit目录及目录下文件的所属用户和所属组都改为user1

    Linux目录和文件权限_用户组_09

    修改文件所属组(chgrp)​

    1:命令作用​

    chgrp命令用于变更文件或目录的所属用户组

    2:命令格式​

    chgrp命令的格式为“chgrp [选项] 用户组 目录名/文件名”

    3:命令选项​

    chgrp命令选项及含义

    -f:忽略错误信息

    -R:处理指定目录以及其子目录下的所有文件

    -v:显示详细的处理信息

    4:命令案例​

    将/mnt/hcit目录下file1文件的所属组修改为root

    Linux目录和文件权限_访问控制列表_10

    将/mnt/hcit目录及目录下文件的所属组都改为root

    Linux目录和文件权限_访问控制列表_11

    Linux目录和文件权限管理(下)​

    SUID权限​

    1:SUID权限的作用​

    SUID是Set User ID的简称,它是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有所属组的权限

    2:SUID权限设置格式​

    SUID权限设置可以用文字表示法和数字表示法

    文字表示法

    数字表示法

    命令功能

    chmod u+s 文件名

    chmod 4xxx 文件名

    添加SUID权限

    chmod u-s 文件名

    chmod 0xxx 文件名

    取消SUID权限

    3:命令案例​

    在Linux中,所有账号的密码记录在/etc/shadow这个文件中,并且只有root可以读该文件。增加普通用户admin查看/etc/shadow文件内容

    Linux目录和文件权限_文件名_12

    在Linux系统中查看文件内容可以使用cat命令,cat命令所在路径是/bin/cat

    代码具体解释如下:

    执行命令“ll /bin/cat”查看文件属性

    执行命令“chmod 4755 /bin/cat”,可以给cat命令设置SUID权限

    执行命令“ll /bin/cat”,可以看到文件属性中所有者权限x变为s,表示SUID权限生效

    执行命令“su admin”,切换到普通用户admin

    执行命令“cat /etc/shadow”,可以看到不同用户admin也可以读取/etc/shadow文件中的内容

    SGID权限​

    1:SGID权限的作用​

    SGID是Set Group ID的简称,它是让执行者临时拥有所属组的权限,即在某个目录下创建的文件自动继承该目录的用户组(只可以对目录进行设置)

    2:SGID权限设置格式​

    SGID权限设置可以用文字表示法或者数字表示法

    文字表示法

    数字表示法

    命令功能

    chmod g+s文件名

    chmod 2xxx 文件名

    添加SGID权限

    chmod g-s 文件名

    chmod 0xxx 文件名

    取消SGID权限

    3:命令案例​

    使用admin用户登录,创建/mnt/test目录,要求该目录下创建的文件都具有admin组的属性

    Linux目录和文件权限_用户组_13

    SBIT权限​

    1:SBIT权限的作用​

    SBIT是StickBIT的简称,主要用来防止其他用户修改或删除非本人的目录和文件

    2:SBIT权限设置格式​

    SBIT权限设置可以用文字表示法和数字表示法

    文字表示法

    数字表示法

    命令功能

    chmod o+t文件名

    chmod 1xxx 文件名

    添加SBIT权限

    chmod o-t 文件名

    chmod 0xxx 文件名

    取消SBIT权限

    ACL权限

    ACL的全称是Access Control List(访问控制列表),一个针对文件/目录的访问控制列表,为文件系统提供一个额外的,更灵活的权限管理机制。ACL允许给任何的用户或用户组设置任何文件/目录的访问权限,只有root用户可以定义ACL

    例如,默认情况下一个文件需要设置3个权限组,owner、group和other,而使用ACL,可以增加权限给其他用户或组别,可以允许指定用户A、B、C拥有写权限而不再是让整个组拥有写权限

    查看ACL权限(getfacl)

    1:命令作用​

    getfacl命令主要用来查看ACL权限

    2:命令格式​

    getfacl命令的格式为“getfacl [选项] 文件名”

    3:命令选项​

    getfacl命令选项及含义

    -a:仅显示文件访问控制列表

    -c:不显示注释表头

    -d:仅显示默认的访问控制列表

    -e:显示所有的有效权限

    -n:显示数字的用户/组标识

    -t:使用制表符分隔的输出格式

    4:命令案例​

    简要查看/etc目录的ACL权限

    Linux目录和文件权限_用户组_14

    查看/etc目录的ACL权限,不显示注释表头

    Linux目录和文件权限_用户组_15

    查看/etc目录的有效ACL权限

    Linux目录和文件权限_文件名_16

    使用制表符分隔格式查看/etc目录的ACL权限

    Linux目录和文件权限_文件名_17

    设置ACL权限(setfacl)

    1:命令作用​

    setfacl命令主要用来设置ACL权限

    2:命令格式​

    setfacl命令的格式为“setfacl [选项] 文件名”

    3:命令选项​

    setfacl命令选项及含义

    -b:删除所有扩展访问控制列表条目

    -d:应用到默认访问控制列表的操作

    -k:移除默认访问控制列表

    -m:更改文件的访问控制列表

    -R:递归操作子目录

    -x:根据文件中访问控制列表移出条目

    4:命令案例​

    新增用户user2,设置user2用户对/etc目录只有可读权限

    Linux目录和文件权限_文件名_18

    新增用户user3,设置user3用户对/etc目录及子目录具有读写权限

    Linux目录和文件权限_文件名_19

    新增group1用户组,设置group1组中所有用户对/etc目录及子目录具有任何权限

    Linux目录和文件权限_文件名_20

    备注:如有错误,请谅解!

    此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人

    网友评论