【Linux系统】第10节 linux系统文件及目录权限详解

1 权限

权限的作用:规定哪些用户对哪些资源可以如何使用。

1.1 权限的查看

(1)以root身份在tmp目录下创建一个目录test与一个文件test.txt。
在这里插入图片描述
在这里插入图片描述
(2)查询文件与目录的权限信息。使用命令 ls -l 文件名 查询文件权限,使用命令 ls -ld 目录名 查询目录权限。可以分别缩写为 ll 文件名 、 ll -d 目录名 。
在这里插入图片描述
在这里插入图片描述

1.2 权限解读

如上图中的test.txt文件,前10位为“- rw- r– r-- ”,各位表示含义如下:

(1)第一个字段就是描述文件和目录权限的编码。这个字段的第一个字符代表了对象的类型

  • -代表文件
  • d 代表目录
  • l 代表链接
  • c 代表字符型设备
  • b 代表块设备
  • n 代表网络设备

(2)之后每3个字符组成一个组,共有3组。这三组的含义分别为,①第1组表示对象的所属者owner权限;②第2组表示对象所属组group权限;③第3组表示系统其他用户other权限(其他用户是指既不是文件的所有者又不是文件所属组中的用户)。每一组定义了3种访问权限:

  • r 代表对象是可读
  • w 代表对象是可写
  • x 代表对象是可执行

(3)而对于文件和目录,这三种权限的详细解读如下:

  • 1)文件权限
    ① r(read):可读取此文件的实际内容,如读取文本文件的文字内容;
    ② w(write):可以编辑、新增或是修改文件的内容不包含删除文件);
    ③ x(eXecute):该文件具有可以被系统执行的权限;若文件不是可执行文件,通常情况下是没有可执行权限的。

  • 2)文件夹权限
    ① r:表示具有读取目录结构列表的权限,当你具有一个目录的r权限时,表示你可以查询到该目录下的文件名数据;
    ② w:表示具有改变目录结构的权限,包括新建文件与目录、删除文件与目录、重命名文件及目录、移动文件及目录位置;
    ③ x:代表用户能否进入该目录成为工作目录

2 权限修改

2.1 修改文件/目录普通权限

2.1.1 方法1:指定权限修改

(1)方法:使用公式 chmod 对象 算数运算符 权限 文件 ,对特定文件的特定用户或组修改权限。该方法对目录同样适用。
(2)参数说明

  • 1)对象:u代表所属者、g代表所属组、o代表其他用户、a代表所有人。
  • 2)算数运算符:+ 附加权限、- 移除权限、= 指定权限。
  • 3)权限:r w x。

(3)例子:修改test.txt文件权限为其他用户不可读,输入命令为chmod o-r /tmp//test.txt。再查看权限,从下图可以看出,此时其他用户连可读权限都没有了。

在这里插入图片描述

2.1.2 方法2:八进制赋权法

(1)方法:采用0~7的数字代表不同用户的权限,采用命令 chmod xxx 文件 ,对特定文件的特定用户或组修改权限,其中每一个x表示0~7。该方法对目录同样适用。
(2)参数说明:

x数值二进制数值权限
0000
1001–x
2010-w-
3011-wx
4100r–
5101r-x
6110rw-
7111rwx

(3)使用技巧记住1(–x)、2(-w-)、4(r–)对应的权限,其余数值可以转为这三个数相加,也代表其权限的叠加
(4)例子:使用该方法,修改test.txt权限为所有用户可读可写可执行。
在这里插入图片描述

2.2 修改文件所属信息

(1)修改文件所属者:使用命令 chown 新所有者 文件 。例如,将/tmp/test.txt的所属者改为tom。
(2)修改文件所属组:使用命令 chgrp 新所有组 文件 。例如,将/tmp/test.txt的所属组改为tom。
在这里插入图片描述

2.3 修改目录及可执行文件的特殊权限

2.3.1 粘滞位

功能:粘滞位针对目录赋权,目录中创建的文件只有建立者可以删除,其他人不能删。
赋权方法chmod o+t 目录名
例子:验证粘滞位
(1)在没有设置粘滞位之前:
①新建用户tom和Jerry;
②采用root用户在/tmp目录下建立一个具有最高权限的目录test;
在这里插入图片描述
③tom在test目录下建立新文件tom.txt;
④jerry在test目录下建立新文件jerry.txt,jerry去删除gerry.txt和tom.txt,均可以删除。
在这里插入图片描述

(5)设置粘滞位及验证:①root用户修改目录test的权限,输入命令chmod o+t /tmp/test给test设置粘纸位;②tom在test目录下建立新文件tom.txt;③erry在test目录下建立新文件jerry.txt,jerry去删除jerry.txt和tom.txt,jerry.txt可以删除,但tom.txt不可以删除;
在这里插入图片描述

2.3.2 sgid权限

功能:sgid针对目录建立的权限,在该目录中建立的文件所属组继承父目录的所属组
赋权方法chmod g+s 目录名
例子:root用户修改目录test的权限,输入命令chmod g+s /tmp/test给test设置sgid。
在这里插入图片描述

2.3.3 suid权限

功能:suid是针对可执行文件建立的权限。赋权后,无论谁运行该可执行文件,均具有该文件所属者的权限
赋权方法chmod u+s 目录名
例子:假如tom想查看并修改/etc/shadow。
①首先输入命令查看/etc/shadow的权限。一般情况下看不了/etc/shadow。tom输入vim /etc/shadow查看/etc/shadow,发现权限不足看不了。
在这里插入图片描述

在这里插入图片描述
②对vim命令设置suid权限。输入which vim查看vim命令在哪?输入命令chmod u+s /usr/bin/vim,给vim设置suid权限。
在这里插入图片描述
③tom用户再去查看/etc/shadow。输入命令,可以查看了,并且还可以修改。
在这里插入图片描述

在这里插入图片描述
tips:
任何文件的权限都限值不了root用户。

2.4 撤销权限

将上述命令的+号改为-号,或者采用八进制赋值法将对应权限位设为0.

3 与权限相关的其他操作

3.1 按权限查找文件

思路:使用find命令配合八进制赋权法进行查找。find可以查找什么名的文件在哪?什么类型的文件在哪?什么权限的文件在哪?

查找方法find 目标目录 -perm xxxx ,perm表示对权限进行查找。命令中不同位的x含义如下:

  • 第1位x:表示特殊权限,1表示粘滞位已赋权、2表示sgid已赋权、4表示suid已赋权。
  • 第2位x:表示所属者权限rwx。
  • 第3位x:表示所属组权限rwx。
  • 第4位x:表示其他用户权限rwx。
    例子find /usr/bin -perm 4755
    在这里插入图片描述

3.2 设置系统不再允许添加新用户

思路:创建用户的时候哪些地方会改变?会变化的主要有:/etc/group、/etc/passwd、/etc/shadow、/home/xxxx等,那么我们是否可以从这些文件入手,锁定这些文件,使文件不再变化。
使用方法chattr +i 文件... 。其中+i表示增加不可更改的属性,文件可以为多个,主要可以是以下文件:

  • /etc/group:表示不再新增组。
  • /etc/passwd:表示不再新增用户,一般配合shadow使用。
  • /etc/shadow:表示不再新增用户,一般配合passwd使用。

例子:将 /etc/group、/etc/passwd、/etc/shadow文件的属性设置为不可更改。若需要撤销,只需要将+改为-.
在这里插入图片描述

3.3 设置umask

当一个文件被不同用户创建时,其默认权限是不一样的,当一个文件被普通用户和root用户创建时,文件所属者的默认权限不同,这是因为不同用户的umask不一样。其中umask是指在建立文件时预设的权限掩码。
在这里插入图片描述

默认情况下,文件或目录的权限=最高权限-所属者的umask。默认情况下,root的umask为0022,普通用户的umask为0002。默认情况下,目录的最高权限为0777,文件的最高权限为666。以root用户为例,新建目录时默认权限为0777 - 0022 = 0755;新建文件时默认权限为666 - 022 = 644。
在这里插入图片描述
那么为什么默认情况下,root的umask为0022,普通用户的umask为0002呢?在操作系统中的/etc/profile文件以及/etc/bashrc文件有对umask值进行规定。
在这里插入图片描述

在这里插入图片描述

3.4 修改密码默认最长有效期时间

保存密码默认参数的文件在/etc/login.defs中,使用vim编辑器修改其默认值,即可完成修改。
在这里插入图片描述

4 总结权限相关命令

4.1 chmod 命令

功能:改变文件的访问权限。
用法:主要有以下两种:
(1)chmod [选项] 模式(mode) 文件(file)
模式:[ugoa…][[+ - =][rwxXstugo…]…][,…]
①u代表所属者、g代表所属组、o代表其他用户、a代表所有人。
② +附加权限、- 移除权限、= 指定权限。
③ 字符串’rwxXstugo’:(r )读权限、(w)写权限、 (x)执行权(或对目录的访问权),(X)只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x属性,(s)同时设定用户或组ID,(t)粘滞位(保存程序的文本到交换设备上),(u)目标文件属主,(g)目标文件属主所在的组,(o)其他用户。
④例子:(因此,'chmod g-s file’撤消sgid位,'chmod ug+s file’同时设置了suid和sgid位,'chmod o+s file’则没有进行任何设置)

(2)chmod [选项] 八进制模式 文件
八进制模式:xxx,x为0~7的数字。

4.3 chown命令

功能:改变文件所属者
用法chown 新所有者 文件

4.4 chgrp命令

功能:改变文件所属组
用法chown 新所有组 文件

4.5 chattr命令

功能:修改文件属性

用法chattr [ -RV ] [ -v version ] [ mode ] files

  • 模式:[+ - =] 属性

例子chattr +i /etc/group /etc/passwd /etc/shadow。其中+i指增加不可更改的属性。

4.6 find命令

功能:查找,可以查找什么名的文件在哪?什么类型的文件在哪?什么权限的文件在哪?
用法find [path...] [expression]

例子:对权限的查找,find /usr/bin -perm 4755。其他详细的用法可以通过命令man find查看帮助手册。

4.7 其他

echo $PATH   #查看PATH变量里保存了哪些信息

在这里插入图片描述

5 归纳

(1)掌握设置权限的作用;
(2)掌握权限的查看方式;
(3)能够解读文件和目录的权限表达式,理解权限表达中各字段代表的含义;
(4)掌握修改文件和目录权限的两种方法;
(5)掌握修改目录和可执行文件的特殊权限(粘滞位、sgid和suid)的方法;
(6)了解与权限相关的其他操作。

参考文章

[1] 《linux文件权限和文件夹权限解读》
[2] 《Kali Linux系统调整文件及目录权限》
[3] 视频传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值