在类似Unix的操作系统中,
命令用于更改文件的访问模式。
该名称是的缩写
变更模式
.
句法 :
chmod [reference][operator][mode] file...
这些引用用于区分要对其应用权限的用户, 即它们是指定要授予权限的用户的字母列表。参考由以下一个或多个字母表示:
Reference Class Description
u owner file's owner
g group users who are members of
the file's group
o others users who are neither the
file's owner nor members of
the file's group
a all All three of the above, same as ugo
运算符用于指定应如何调整文件的模式。接受以下运算符:
Operator Description
+ Adds the specified modes to the
specified classes
- Removes the specified modes from
the specified classes
= The modes specified are to be made
the exact modes for the specified
classes
注意 :在运算符周围放置空格将使命令失败。
这些模式指示要从指定的类授予或删除哪些权限。有三种与基本权限相对应的基本模式:
r Permission to read the file.
w Permission to write (or delete) the file.
x Permission to execute the file, or, in
the case of a directory, search it.
我们将使用chmod命令更改的权限类型:
在linux终端中, 要查看对不同文件的所有权限, 请键入ls -l命令, 该命令以长格式列出工作目录中的文件。下图显示了使用ls -l及其输出的示例:
让我们来看看上图。为了使事情易于理解, 消除了一些列和行, 并在权限列中添加了多余的空格, 以使其更易于阅读, 如下所示:
- rw- rw- r-- mik mik assgn1_client.c
- rw- rw- r-- mik mik assgn1_server.c
d rwx rwx r-x mik mik EXAM
- rw- rw- r-- mik mik raw.c
- rwx r-x r-x mik mik header.sh
... so on...
- 第一列代表文件的类型, 即是普通文件还是
directory其中d代表目录, 而–代表普通文件。 - 文件类型后的前三个字母告诉文件所有者, 拥有权限。例如:在assgn1_client.c中, 拥有者的权限为rw-, 这意味着拥有者mik只能读取(r)和写入(w)该文件, 而不能执行(x)。
- 注意:第3列和第4列分别代表文件所有者的名称和所有者所属的组。
- 用户权限后的后三个字母是该组的权限。
例如:header.sh具有组权限r-x, 这意味着mik组中的其他人不能写(w)header.sh脚本, 而只能读(r)或execute(x)它。 - 请注意, 当目录设置了x时, 这具有"允许搜索此目录"的特殊含义。
- 权限列中的最后三个字母告诉我们"其他"可能做什么。通常的做法是保护文件免受外部访问, 以使其他人无法写入任何文件或目录。他们可以读取或执行它。例如:assgn1_client.c具有r-的其他权限-这意味着它只能由其他(外部)访问读取, 但不能被他们写入或执行。
现在, 让我们看看如何使用chmod命令更改文件的访问模式。
范例1:
让我们更改assgn1_client.c权限, 以使所有者无法在文件中写入(w), 而只能读取文件。
BEFORE: -rw-rw-r-- mik mik assgn1_client.c
COMMAND: chmod u=r assgn1_client.c
AFTER: -r--rw-r-- mik mik assgn1_client.c
之前:
之后:
范例2:
让我们限制权限, 以使用户无法搜索目录EXAM。
BEFORE: drwxrwxr-x mik mik EXAM
COMMAND: chmod u=rw EXAM
AFTER: drw-rwxr-x mik mik EXAM
应用chmod u = rw EXAM命令后, 用户(所有者)无法更改目录。如果用户尝试更改目录, 则会显示"权限被拒绝"消息, 如下图所示:
参考:
chmod维基百科