OnWorks Linux 和 Windows 在线工作站

商标

工作站免费在线托管

<上一页 | 内容 | 下一页>

chmod - 更改文件模式

要更改文件或目录的模式(权限), CHMOD 命令被使用。 请注意,只有文件的所有者或超级用户才能更改文件或目录的模式。 CHMOD 支持两种不同的指定模式更改的方式:八进制数表示或符号表示。 我们将首先介绍八进制数表示。

图片


八进制到底是什么?

八进制(基数为 8)及其表亲十六进制(基数为 16)是常用于在计算机上表示数字的数字系统。 我们人类,由于我们(或至少我们中的大多数人)生来就有十个手指,因此使用以 10 为基数的数字系统进行计数。 另一方面,计算机出生时只有一根手指,因此所有的计数都以二进制(以 2 为底)进行。 他们的数字系统只有两个数字,0 和 1。所以在二进制中,计数看起来像这样:

0、1、10、11、100、101、110、111、1000、1001、1010、1011...

在八进制中,计数是用数字 0 到 1 完成的,例如:2、3、4、5、6、7、10、11、12、13、14、15、16、17、20、21、XNUMX、 XNUMX...

十六进制计数使用数字零到九加上字母“A”到“F”:

0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F、10、11、12、13...

虽然我们可以看到二进制的意义(因为计算机只有一根手指),但八进制和十六进制有什么用? 答案与人类的便利性有关。 很多时候,一小部分数据在计算机上表示为 位模式. 以RGB颜色为例。 在大多数计算机显示器上,每个像素由三种颜色成分组成:24 位红色、XNUMX 位绿色和 XNUMX 位蓝色。 一个可爱的中蓝色将是一个 XNUMX 位数字:

010000110110111111001101

你想如何整天读写这些数字? 我不这么认为。 这是另一个数字系统可以提供帮助的地方。 十六进制数中的每个数字代表二进制中的四位数字。 在八进制中,每个数字代表三个二进制数字。 所以我们的 24 位中蓝色可以压缩成一个六位十六进制数:

436FCD

由于十六进制数中的数字与二进制数中的位“对齐”,我们可以看到颜色的红色分量是 43、绿色 6F 和蓝色 CD。

如今,十六进制表示法(通常称为“hex”)比八进制更常见,但我们很快就会看到,八进制表示二进制的三位的能力将非常有用……


使用八进制表示法,我们使用八进制数来设置所需权限的模式。 由于八进制数中的每个数字代表三个二进制数字,这很好地映射到


用于存储文件模式的方案。 下表显示了我们的意思:


表 9-4:二进制和八进制文件模式


八进制

二进制

文件模式

0

000

---

1

001

- X

2

010

-W-

3

011

-wx

4

100

r--

5

101

RX

6

110

RW

7

111

RWX

通过使用三个八进制数字,我们可以设置所有者、组所有者和

世界:



[我@linuxbox ~]$ > foo.txt

[我@linuxbox ~]$ ls -l foo.txt

-rw-rw-r-- 1 我我 0 2016-03-06 14:52 foo.txt [me@linuxbox ~]$ chmod 600 foo.txt

[我@linuxbox ~]$ ls -l foo.txt

-rw------- 1 我我 0 2016-03-06 14:52 foo.txt

[我@linuxbox ~]$ > foo.txt

[我@linuxbox ~]$ ls -l foo.txt

-rw-rw-r-- 1 我我 0 2016-03-06 14:52 foo.txt [me@linuxbox ~]$ chmod 600 foo.txt

[我@linuxbox ~]$ ls -l foo.txt

-rw------- 1 我我 0 2016-03-06 14:52 foo.txt


通过传递参数“600”,我们能够设置所有者的读写权限,同时删除组所有者和世界的所有权限。 尽管记住八进制到二进制的映射可能看起来不方便,但您通常只需要使用一些常用的: 7 (RWX)6(RW)5(RX)4(r--)和0(---).

chmod 还支持用于指定文件模式的符号表示法。 符号表示法分为三个部分:更改将影响谁,将执行哪些操作,以及将设置什么权限。 为了指定谁受到影响,使用字符“u”、“g”、“o”和“a”的组合如下:


表 9-5:chmod 符号表示法


符号含义

符号含义

u “user”的缩写,表示文件或目录的所有者。


图片

g 组所有者。


图片


图片

o “others”的缩写,意思是世界。


图片

“所有”的缩写。 “u”、“g”和“o”的组合。


图片


如果未指定字符,则将假定为“all”。 操作可以是“+”表示添加权限,“-”表示删除权限,或者“=”表示只应用指定的权限,其他所有权限将被删除。

权限由“r”、“w”和“x”字符指定。 下面是一些符号表示法的例子:


表 9-6:chmod 符号表示法示例


符号 含义

符号 含义

u+x 为所有者添加执行权限。


图片

ux 删除所有者的执行权限。


图片

+x 为所有者、组和世界添加执行权限。

相当于 一个+x.


图片

o-rw 删除所有者和组所有者以外的任何人的读写权限。


图片

go=rw 设置组所有者和除所有者之外的任何人都具有读写权限。 如果组所有者或世界之前具有执行权限,则它们将被删除。


图片

u+x,go=rx 为owner添加执行权限,设置组和其他人的读取和执行权限。 多个规格可以用逗号分隔。


图片


有些人喜欢使用八进制表示法,有些人真的很喜欢符号。 符号表示法的优点是允许您设置单个属性而不会干扰任何其他属性。

看看 CHMOD 手册页了解更多详细信息和选项列表。 关于“--recursive”选项的注意事项:它同时作用于文件和目录,因此它不像人们希望的那样有用,因为我们很少希望文件和目录具有相同的权限。


OnWorks 的顶级操作系统云计算: