Linux目录和文件权限

Posted 晚风挽着浮云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux目录和文件权限相关的知识,希望对你有一定的参考价值。

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

文件的属性信息

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

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

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

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

  1. d:表示目录
  2. -:表示普通文件
  3. l:表示链接文件
  4. b:表示可供储存的接口设备,例如:U盘
  5. 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

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

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

以上是关于Linux目录和文件权限的主要内容,如果未能解决你的问题,请参考以下文章

linux目录权限

linux 用户怎么设置权限,只能访问指定的目录,其他目录都不允许访问

三个Linux权限

Linux目录与文件的权限

Linux文件权限序列简述

linux中文件拥有者去掉执行权限,其他用户加上读写权限,同组用户加上只读权限 命令是啥