Linux中的chmod命令及示例介绍

2021年3月13日15:30:03 发表评论 845 次浏览

在类似Unix的操作系统中,

chmod

命令用于更改文件的访问模式。

该名称是的缩写

变更模式

.

句法 :

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及其输出的示例:

Linux中的chmod命令及示例1

让我们来看看上图。为了使事情易于理解, 消除了一些列和行, 并在权限列中添加了多余的空格, 以使其更易于阅读, 如下所示:

- 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

之前:

Linux中的chmod命令及示例2

之后:

Linux中的chmod命令及示例3

范例2:

让我们限制权限, 以使用户无法搜索目录EXAM。

BEFORE: drwxrwxr-x  mik   mik   EXAM

COMMAND: chmod u=rw EXAM

AFTER: drw-rwxr-x   mik  mik    EXAM

应用chmod u = rw EXAM命令后, 用户(所有者)无法更改目录。如果用户尝试更改目录, 则会显示"权限被拒绝"消息, 如下图所示:

Linux中的chmod命令及示例4

参考:

chmod维基百科


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: