许多新用户在处理文件或目录时会犯错误(或产生误解)chmod
,因为缺乏以下方面的信息知识:
ugo
和的符号表示法rwx
- 八进制数的使用
因此,在这个答案我提供了一些有用的信息,可以帮助理解正确的符号表示法和八进制数的使用。
答案1
Linux 上的每个文件和目录都有所有者。每个文件的所有者都可以为所有者本人、文件的组所有者和其他人(即任何其他用户)设置不同类型的访问权限(读取、写入和执行)。
ls -l
每个文件和目录的访问级别都显示在任意文件或目录的输出中。
为了解读它们,这里有一个例子:
$ ls -l power.txt
-rw-r--r-- 1 user user 4096 Aug 1 23:24 power.txt
前 10 个字符称为文件属性. 其中 10 个:
-
第一个字符显示文件或目录d
或符号链接的类型l
或特殊字符c
文件或阻止特殊b
文件。- 其余 9 个字符称为文件模式(或文件权限)。这些表示文件所有者、文件组所有者和其他所有人的读、写和执行权限:
所有者 | 团体 | 世界 |
---|---|---|
rwx |
rwx |
rwx |
查看一些文件属性的示例以更好地理解它们:
文件属性 | 属性的含义 |
---|---|
-rwx------ |
常规文件,可由文件所有者读取、写入和执行。其他任何人都无权访问。 |
-rw------- |
该文件是普通文件,文件所有者可以对其进行读写。其他任何人都无权访问。 |
-rw-r--r-- |
该文件是普通文件,文件所有者可以读写。文件所有者组的成员可以读取该文件。该文件可供所有人读取。 |
-rwxr-xr-x |
可由文件所有者读取、写入和执行的常规文件。其他任何人都可以读取和执行该文件。 |
-rw-rw---- |
仅可由文件所有者和文件组所有者的成员读写的常规文件。 |
lrwxrwxrwx |
一个符号链接。注意:所有符号链接都有“虚拟”权限。真正的权限与符号链接指向的实际文件保存在一起。 |
drwxrwx--- |
目录。所有者和所有者组的成员可以进入目录,并在目录中创建、重命名和删除文件。 |
drwxr-x--- |
目录。所有者可以进入目录并创建、重命名和删除目录内的文件。所有者组的成员可以进入目录,但不能创建、删除或重命名文件。 |
chmod
chmod
设置文件或目录的模式(权限)位。
句法:
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
chmod 根据模式更改每个给定文件的文件模式位,可以是
- 需要做出的改变的象征,
- 或表示新模式位的位模式的八进制数。
符号表示法
符号模式的格式为
[ugoa...][[-+=][perms...]...]
在哪里,
ugoa
- 字母组合控制哪些用户对该文件的访问权限将被更改:u
- 控制它的用户g
- 文件组中的其他用户o
- 不属于该文件组的其他用户(指其他所有人或全世界)。a
- 或所有用户- 若以上均未给出,则效果如同
a
已给出一样。
perms
- 是集合中的零个或多个字母rwx
,或者是集合中的一个字母ugo
-+=
-- 操作
+
员将选定的文件模式位添加到每个文件的现有文件模式位中 -
导致它们被删除=
导致它们被添加并且导致未提及的位被删除,但目录未提及的设置用户和组 ID 位不受影响
- 操作
多个规范可以用逗号分隔。
为了清楚起见,请看一些例子:
符号 | 意义 |
---|---|
u+x |
为所有者添加执行权限。 |
u-x |
删除所有者的执行权限。 |
+x |
为所有者、组和用户添加执行权限。相当于 a+x。 |
o-rw |
删除所有者和组所有者之外任何人的读写权限。 |
go=rw |
设置权限G团和o必须具有读写权限。如果G团体或o先前具有执行权限的用户将被删除。 |
u+x,go=rx |
为所有者添加执行权限,并设置组和其他人读取和执行的权限。 |
o=u |
对于特定文件,设置模式位o等于你文件的所有者(文件或目录所有者) |
使用八进制数:
八进制 二进制 文件模式 0
000
---
1
001
--x
2
010
-w-
3
011
-wx
4
100
r--
5
101
r-x
6
110
rw-
7
111
rwx
因此,以下内容的工作相同:
chmod a=rwx [file_name]
chmod 777 [file_name]
和
chmod 775 [file_name]
chmod ug=rwx,o=rx [file_name]
借助以下方式提供信息知识Linux 命令行作为参考/来源。
您可以下载 pdf 版本Linux 命令行预订自Sourceforge。