当前位置:   article > 正文

Linux:文件权限详解及修改方法

Linux:文件权限详解及修改方法

1、Linux文件权限

1.1、如何查看到文件权限

使用ls -l或者ll指令可以直接查看到如下的标记,这些标记代表的相关文件或文件夹的权限类型及所属:

image-20240222100605216

其中分四段:

  • 第一段,为文件/文件夹权限,其中首个bit位字符为文件类型,一共有如下的七种:前三种为常见类型
类型说明
-普通文件。
d目录,字母ddirtectory(目录)的缩写。
l符号链接。请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息。
b块设备文件。
c字符设备文件。
p管道文件
s套接口文件

像类型为文件,如下面这种:

image-20240223160559384

之后跟随的会有9个bit位,分别代表不同的权限类型,后续再进一步讨论。

  • 第二段,为文件/子目录的链接数量

像上述的文件结果中,1表示有一个硬链接指向文件python.gram,一般来说文件类型均为1。如果为文件夹类型则表示的是链接的子目录个数。

  • 第三段,为权限所属用户

表示拥有当前文件或目录的用户。

  • 第四段,为权限所属群组

表示所属的群组(group)。群组下的每一个使用者都具有该文件\路径的控制权限,一个用户可以拥有一个以上的组,大部分都只属于1个群组。

1.2、ll命令介绍

在Ubuntu中默认不含ll命令,其实质为ls -l的别名,我们可以通过修改环境变量自行添加:

# 切换管理员模式
su
# 修改系统环境变量
vim ~/.bashrc
  • 1
  • 2
  • 3
  • 4

添加或将下面这一段去掉注释:

image-20240222095730569

修改完成之后,使环境变量生效:

source ~/.bashrc
  • 1

image-20240222100228829

**注:**root环境变量和普通用户环境变量不共通,使用ll指令,不同用户下需单独修改。

2、权限分类

2.1、文件权限

在文件类型字节位后,紧接着的3*3个字符分3组,各表示不同角色对此文件的读®、写(w)、执行权限(x)

  • 第一段:3bit,对应**文件所有者(owner)**的权限
- rwx --- ---    对应文件所有者(owner)拥有读写及执行权限,设定值为700,其值等于下面三项值相加
- r-- --- ---    对应文件所有者(owner)拥有读权限,设定值为400
- -w- --- ---    对应文件所有者(owner)拥有写权限,设定值为200
- --x --- ---    对应文件所有者(owner)拥有执行权限,设定值为100
  • 1
  • 2
  • 3
  • 4
  • 第二段:3bit,对应**文件所属用户群组(group)**的权限
- --- rwx ---    对应文件所属群组(owner)拥有读写及执行权限,设定值为070,其值等于下面三项值相加
- --- r-- ---    对应文件所属群组(owner)拥有读权限,设定值为040
- --- -w- ---    对应文件所属群组(owner)拥有写权限,设定值为020
- --- --x ---    对应文件所属群组(owner)拥有执行权限,设定值为010
  • 1
  • 2
  • 3
  • 4
  • 第三段:3bit,对应**其他用户(others)**的权限
- --- --- rwx    对应其他用户(others)对文件拥有读写及执行权限,设定值为007,其值等于下面三项值相加
- --- --- r--    对应其他用户(others)对文件拥有读写及执行权限,设定值为004
- --- --- -w-    对应其他用户(others)对文件拥有读写及执行权限,设定值为002
- --- --- --x    对应其他用户(others)对文件拥有读写及执行权限,设定值为001
  • 1
  • 2
  • 3
  • 4

上述权限对应下来则为八进制码表,二进制码的计算顺序为从右往左:

八进制位权限权限符号二进制位
7读\写\执行rwx111
6读\写rw-110
5读\执行r-x101
4r–100
3写\执行-wx011
2-w-010
1执行–x001
0无权限000

举例:

权限符号为rw-,其二进制位为110,则二进制转为八进制为,计算顺序为从右往左: 2 0 2^0 20+ 2 1 2^1 21+ 2 1 2^1 21=6,即r为2号位值为1,w为1号为值为1,-为0号位值为0。

2.2、文件夹权限

文件夹的权限标识与文件相同,但所具有的含义不一样,对应如下:

  • r:能够浏览目录信息,包括目录名称及所含文件等信息。无权限时无法查看对应内容

image-20240223171228842

  • w:能够删除新增或修改目录中的文件或目录。无权限时限制删除新增等操作

image-20240223171711277

  • x:当具有x权限时,能够进入该目录。无权限时被限制进入

image-20240223171127644

3、权限修改

3.1、修改文件/文件夹权限

1)chmod指令

chmod修改文件权限:

chmod [选项] 权限 文件名/文件夹名
  • 1

[选项]为可选,支持以下常用参数:

参数作用
-c改变权限成功后再输出成功信息
-R递归处理所有子文件
-f改变权限失败后不显示错误信息
-v显示执行过程详细信息

示例:

# 设置文件夹权限为770:文件所有者和用户群组有读\写\执行权限,其他用户无权限
chmod 770 testDir
# 设置文件权限为707:文件所有者和其他用户有读\写\执行权限,用户群组无权限
chmod 707 testfile
  • 1
  • 2
  • 3
  • 4

image-20240223170729874

**注:只有文件所有者(owner)或管理员(root)**才允许修改文件权限。

2)chmod指令符号

在chmod指令中,可以使用用户表示符和权限控制符号来简化指令,更为的清晰,其对应的不同符号如下:

  • 用户表示符
用户表示符说明
u所有者
g拥有者同组用户
o其它用户
a所有用户
  • 权限操作符
权限操作符含义
+表示添加权限
-表示移除权限
=表示设置权限为特定的值
  • 权限符号
符号含义
r读取权限
w写入权限
x执行权限

组合使用举例:

# 给文件file.txt的所有者(u)增加读取(+r)权限
chmod u+r file.txt
# 从文件file.txt的拥有者同组用户(g)中移除写入(-w)权限
chmod g-w file.txt
# 给目录directory的其他用户(o)增加执行(+x)权限
chmod o+x directory
# 给文件file.txt的所有用户(a)设置读取和写入权限
chmod a=rw file.txt
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.2、修改文件/文件夹所属用户

chown修改文件/文件夹所属的用户:

chown [选项] 新所属用户名 文件名/文件夹名
  • 1

chown常用的[选项]参数:

常用参数描述
-R, --recursive递归地更改指定目录及其子目录中所有文件和目录的所有者。
--reference=RFILE把指定文件的拥有者和用户组应用到其他文件, RFILE为参考文件。
--from=CURRENT_OWNER[:CURRENT_GROUP]仅在文件的当前所有者或用户组匹配指定的值时才更改文件的所有者和/或用户组。
--preserve-root不允许在 “/” 上递归操作
-v, --verbose显示详细的操作信息。

示例:

# 将file.txt文件所属用户修改为用户miniboy
chown miniboy file.txt
  • 1
  • 2

image-20240302175436935

**注:**所修改的新用户,为存在的用户,否则会执行失败,提示无效用户。

--from=CURRENT_OWNER[:CURRENT_GROUP]参数使用举例:当匹配到对应的所有者/用户组时才进行修改

# 当file.txt的当前所有者是olduser,用户组是oldgroup时,才将其所有者更改为newuser,用户组更改为newgroup
chown --from=olduser:oldgroup newuser:newgroup file.txt
  • 1
  • 2

3.3、修改文件/文件夹所属群组

chgrp更改文件或文件夹所属用户组(group):

chgrp [选项] 用户组名 文件名/文件夹名
  • 1

在[选项]参数方面与chown类似,常用参数如下:

参数描述
-R, --recursive递归地更改指定目录及其子目录中所有文件和目录的所属用户组。
--reference=RFILE把指定文件的用户组应用到其他文件。
--preserve-root不要跨越文件系统的边界,这对于递归操作非常重要。
-v, --verbose显示详细的操作信息。
--dereference在符号链接指向文件本身时,处理符号链接指向的文件而不是符号链接文件本身。

使用示例:

# 将file.txt文件的所属群组修改为newgroup
chgrp newgroup file.txt
  • 1
  • 2

chgrp部分修改也能够通过chown来实现,如修改拥有者和所属组:

chown :root file30.txt (修改所属组为root)
chown root:root file30.txt (修改拥有者和所属组为root)
  • 1
  • 2

**注:**只有超级用户(root)或者文件的当前所有者才能使用chgrp命令。

4、参考

https://blog.csdn.net/m0_56311933/article/details/123006978

https://www.cnblogs.com/kongzhongqijing/p/3488884.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/189230
推荐阅读
相关标签
  

闽ICP备14008679号