1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【Linux系统】第10节 linux系统文件及目录权限详解

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

时间:2019-06-29 16:17:43

相关推荐

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

目录

1 权限1.1 权限的查看1.2 权限解读2 权限修改2.1 修改文件/目录普通权限2.1.1 方法1:指定权限修改2.1.2 方法2:八进制赋权法2.2 修改文件所属信息2.3 修改目录及可执行文件的特殊权限2.3.1 粘滞位2.3.2 sgid权限2.3.3 suid权限2.4 撤销权限3 与权限相关的其他操作3.1 按权限查找文件3.2 设置系统不再允许添加新用户3.3 设置umask3.4 修改密码默认最长有效期时间4 总结权限相关命令4.1 chmod 命令4.3 chown命令4.4 chgrp命令4.5 chattr命令4.6 find命令4.7 其他5 归纳参考文章

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)参数说明:

(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] 视频传送门

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。