欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【鸟哥的Linux私房菜-基础学习篇】Linux的文件权限与目录配置

程序员文章站 2022-05-11 20:05:54
...

Linux一般将文件可存取访问的身份分为3个类别,分别是owner、group、others,且3种身份各有read、write、execute等权限。

每个账号可以有多个用户组的支持。

Linux文件属性

在Linux中,默认情况下系统的所有账号的相关信息都记录在/etc/passwd,账号密码记录在/etc/shadow,所有的组名则记录在/etc/group内。这3个文件是Linux系统里面账号、密码、用户组信息的集中地。
【鸟哥的Linux私房菜-基础学习篇】Linux的文件权限与目录配置
第一列:代表文件的类型和权限。该列有10个字符。第1个字符代表这个‘文件’是【目录、文件或链接文件等】。
若是[d],则是目录。
若是[-],则是文件。
若是[l],则是链接文件。
若是[b],则是设备文件中用于存储用于的接口设备。
若是[d],则是设备文件中串行端口设备,用于一次性读取的设备,比如键盘、鼠标。
注意:文件和目录的权限意义不相同。
第二列:代表有多少文件名连接到此节点(i-node)。
第四列:表示这个文件的所属用户组拥有的权限。在Linux中,一个账号会附属于一个或多个的用户组,只要账号在对应的用户组,这个组有什么权限,这个账号也会有什么权限。

#目录权限解析
drwxr-xr--   1   test  testgroup   4775   Apr 10 15:00   groups/
#文件所有者是test,拥有[rwx]权限,可以在本目录中进行任何操作
#文件所属组是testgroup,拥有[r-x]权限,可以进入本目录,但不能进行吸入的操作,没有w权限
#文件其他组,拥有[r--]权限,但没有x权限,所以此组的用户不能进入此目录
如何改变文件属性及权限

chgrp [-R] direname/filename,改变文件的所属用户组。被改变的组名必须要在/etc/group文件中存在才行,否则会提示invalid group name 'xxx'的报错。

chown [-R] 账号名称 direname/filename,改变文件的所有者。被改变的用户必须要在/etc/passwd文件中存在才行,否则也会报错。
chown [-R] 账号名称:组名 direname/filename,同时改变文件的所有者以及所属组,所有者与用户组中间用冒号分割。
chown [-R] :组名 direname/filename改变文件的所属组,冒号前面不写内容,冒号后写要改成的组名。

文件权限改变使用chmod命令,设置方法有两种,一种是使用数字,一种是使用rwx符号。
第一种数字:r(读)=4,w(写)=2,x(执行)=1。三种权限对应三个分值,不同分值累加的组合构成不同的读写执行权限。如chmod [-R] 777 direname/filename。常见分值有777、644、755、640等等。
第二种rwx符号:通过u(users)、g(group)、o(others)、a(all)代表四种身份,配合上r(read)、w(write)、x(execute)三种权限。通过(=±)的方式进行身份和权限的组合,对文件权限进行改变。如chmod u=rwx,go=rx install.logchmod a+w install.logchmod a-x install.log
【鸟哥的Linux私房菜-基础学习篇】Linux的文件权限与目录配置

目录与文件的权限意义

权限对文件的重要性:
r(read),可读取此文件的实际内容。
w(write),可以编辑、新增或者是修改文件的内容。(不包括删除文件本身)
x(execute),此文件具有可以被系统执行的权限。Linux中的文件能否被执行是由是否具有‘x’来决定的,不是根据文件后缀名来判断,两者绝对没有关系。

权限对目录的重要性:
r(read contents in directory),表示具有读取目录结构列表的权限。换言之,对目录具有‘r’权限,则可以查询该目录下的文件名数据(但没有x也不能查看详细数据,只能看到文件名),此时使用ls就可以将目录的内容列表显示出来。

w(modify contents in directory),这个可写入的权限对目录来说是强大的。代表我们能够更改该目录结构列表的权限。

  • 新建新的文件和目录;
  • 删除已经存在的文件或目录(无论文件的权限如何);
  • 对已存在的文件或目录进行重命名;
  • 转移目录内的文件、目录位置;
    换言之,目录的‘w’权限与目录下的文件名变动有关。在实际工作中,目录一般都是给与‘rx’权限即可。

x(access directory),目录的‘x’代表用户能否进入该目录成为工作目录。能不能切换到目录中,只与是否具有‘x’权限有关。

#系统有个账号叫vbird,本账号不支持root用户组,请问vbird对这个目录有何权限?
drwxr--r--   1   root  root   4775   Apr 10 15:00   groups/
#vbird对本目录拥有[r--]权限,因此vbird可以查看该目录下的文件名列表,但不具有‘x’权限,不能切换到此目录。