Linux系统如何更改文件权限,chmod命令的基础知识

在本指南中,我将展示如何在Linux中使用chmod命令。

chmod-command-in-linux-thumbnail.png

在Linux系统中,经常需要利用chmod命令。Chmod是 “Change Mode “的缩写,用于修改基于Linux系统的文件和目录的权限。

通过这个命令,可以为Linux中的三个权限组(所有者、组和其他)设置读、写和执行权限。

该命令的使用比较简单,使用chmod,后面是要设置的权限,然后是要修改的目录或文件的名称。

chmod [OPTIONS] PERMISSIONS FILE

使用chmod命令,可以利用两种不同的符号来指定要设置的权限。

可以使用数字(基于数字)或符号(基于字母)来定义权限。

在这个chmod指南中,我将通过这两个符号来演示,这样就可以决定使用的时机。

使用数字符号更改权限

使用数字符号,如777来表示权限。

用数字表示,每三个数字代表一个单独的权限组。

这些权限组的定义顺序如下。

  • 第一个数字是文件/目录的所有者的权限。
  • 第二个数字代表拥有文件/目录的组的权限。
  • 第三位是其他权限组的权限。

通过数字,每个权限都被分配了一个数值,可以通过下面的表格看到分配给每个权限的数值。

Number Usage Description
4 读权限 允许读文件或目录
2 写权限 允许创建,删除和修改文件或目录
1 执行权限 允许执行文件
0 无权限 没有任何读,写,执行权限

计算数字权限

在本节中,我将通过一些例子来介绍如何将权限值加在一起来设置你所需要的权限。

计算数字权限很容易,只要将每个权限的数值相加就可以了。

所有者权限示例。读取-写入-执行

例如,如果我想给所有者分配读(4)、写(2)和执行(1)权限,需要添加代表每个权限的数值。

4 + 2 + 1 = 7

组权限的例子。读取|执行

同样,如果我只想给该组读取(4)和执行(1)文件的权利,需要将这两个数值加在一起。

4 + 1 = 5

其他权限的例子。读取

现在来完成它,假设希望所有其他用户只能读取(4)文件,那么需要使用读取权限值来代替它。

4 = 4

把它整合在一起

现在为了得到最终的权限,使用chmod命令来设置,需要把每个权限组的值放在对应的位置上。

这些值的组合顺序如下。所有者,组,其他。

754

数字权限表

另外,也可以利用我们下面的表格来查看不同的数字组合和它们所设置的权限。

Number Permissions rwx
0 无权限 ‐‐‐
1 只有执行权限 ‐‐x
2 只有写权限 ‐w‐
3 写和执行权限 ‐wx
4 只有读权限 r‐‐
5 读和执行权限 r‐x
6 读和写 rw‐
7 读写和执行 rwx

如你所见,并没有大量的组合需要记忆。

只要稍加练习,就能正确地写下想要的权限数,而不必进行任何计算。

读取数字权限

如果对数字符号系统有了基本的了解,识别取权限就会变得简单。

要计算出设置的权限,需要做与前面相反的工作。

需要减去每个权限的数值。

例如,用数字7作为权限值。

permission = 7

首先,应该先检查是否已经设置了读取权限,因为它的数值最大。

如果权限值大于或等于4,则包含读取权限。

从值中减去4。如果你的值不是0,可以继续检查写权限和读权限。

permission = 7 - 4 = 3

接下来,可以检查该值是否包含写权限。如果该值等于或大于2,意味着它拥有写入权限。

的数值中减去2,如果所得数值不等于0,则继续。

permission = 3 - 2 = 1

最后,如果值在其他所有的减法后都等于1,那么就可以知道执行权限被设置了。

处理完整的权限字符串就是这么简单。

需要做的就是把这三个数字分成三个独立的组,来计算出所有者、组和其他权限组的权限设置。

练习得越多,就能越快地根据数值计算出设置的权限。

使用chmod数字符号的例子

在本节中,我将使用数字符号和chmod命令来设置权限。

你会发现,当想同时为三个权限组设置权限时,数字符号特别有用。

在本例中,设置以下权限。

  • 所有者 – 读取(4),写入(2),执行(1)- 7
  • 组 – 读取(4),执行(1)- 5
  • 其他 – 阅读 (4) – 4

如果要为一个组添加多个权限,需要将权限的数值加在一起。

使用为每个权限组计算出的值,可以运行下面的命令为名为 numerictest 的文件设置所有的权限。

chmod 754 numerictest

所有者组有读(4)、写(2)和执行(1)权限设置。结合这些权限的数值,得到的数值是7。

接下来,Group权限组有Read(4)和Execute(1)的权限设置,结合这些数值,使用数值5来设置这些权限。

最后对于其他权限组,只需要使用Read权限的值,也就是4。

使用符号记号更改权限

不使用chmod命令的数字记号,也可以使用符号记号。

chmod [GROUP][OPERATOR][PERMISSIONS] examplefile

用符号表示的权限组

通过符号符号,权限被应用到基于四个不同字母的权限组上

chmod 命令使用这些字母将权限应用到所需的权限组。

可以通过下面的表格看到每个字母所代表的组别。

Letter Group Explanation
u Owner 文件或目录的所有者
g Group 文件或目录的组所有者
o Other 不是文件所有者或组成员的用户
a All 相当于使用ugo,设置三个组的权限

例如,要修改所有者(u)和其他(o)权限组,可以使用它们的字母,如:uo。

符号化的权限操作符

接下来,需要看看三种不同的操作符,可以使用符号符号。

这些操作符决定了chmod命令应该如何应用权限到指定的权限组。

Operator Explanation
+ 将指定的权限添加到权限组中
从权限组中删除指定的权限
= 用指定的权限替换权限组的所有权限这些运算符的理解比较简单,工作原理与基本算术非常相似。

使用符号标记的权限

最后,需要看一下要利用的权限的字母。

如果你看了我在Linux指南中的文件权限,你会熟悉这些字母。

使用下面的表格,可以看到代表三种权限的各个字母。

Permission Letter Permission Explanation
r 允许该组读取文件或列出目录的内容
w 允许该组写入文件或目录
x 执行 允许该组执行一个文件或列出一个目录的内容

使用chmod符号符号的例子

符号符号的使用非常简单,当想在不改变其他权限的情况下添加或删除特定的权限时,它特别有用。

与数字表示法不同,不需要为每个权限组指定所有权限。

使用符号记号添加权限

为了展示这种行为,我将为一个名为examplefile的文件在所有者权限组中添加写权限。

chmod u+w examplefile

分解开来,可以看到用u字符来指定要修改所有者权限组。

接下来,使用加法(+)运算符,因为要将权限添加到我们的组中。

最后,用w来指定要添加写权限。

使用符号符号法删除权限

使用符号符号删除一个权限和添加一个权限一样简单。

在本例命令中,我要删除一个名为nowrite的文件的其他权限组的读权限。

chmod o-r nowrite

分解这个命令,我先用字母o来指定我们要修改其他权限组。

然后我使用减(-)操作符来告诉命令,要从组中删除指定的权限。

最后一个字母r指定了我要删除的权限,就是读取权限。

使用符号符号法设置权限

虽然能够添加或删除特定的权限,但也可以使用符号符号来设置权限。

通过设置权限,您将用指定的权限替换所有现有的权限。

我要给组权限组,对一个名为readandwrite的文件的读写权限。

chmod g=rw readandwrite

可以看到,我首先利用g字母来指定组权限组。

然后我使用等号(=)操作符来告诉chmod命令,我要将我的权限组权限设置为指定的权限。

最后,我指定要设置的两个权限,用字母r表示读权限,用字母w表示写权限。

可以看到,只要将每个不同权限的字母组合起来,就可以轻松指定多个权限。

使用符号标记的多权限组

最后,是如何使用chmod命令进行符号记号,即如何使用多组。

需要结合代表每个权限组的字母。

例如,如果我想为一个名为usergroup的文件添加执行权限到所有者和组权限组中,可以使用以下方法。

chmod ug+x usergroup

可以看到,需要做的是将权限添加到两个不同的组,就是将每个权限组的字母组合起来。

这里我用u表示所有者权限组,后面用g表示组权限组。

然后就像前面的例子一样,使用加法运算符(+)来添加一个新的权限,然后使用字母x来指定我们要添加执行权限。

希望到这里,你现在已经知道如何使用chmod命令的数字或符号来更改文件权限了。

如果你遇到任何问题或需要任何帮助,那么欢迎在下面留言。

平均: 0 / 5. votes: 0

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Linux系统如何更改文件权限,chmod命令的基础知识

赞 (1)

评论

7+3=