关于linux:通过9个实例快速掌握-linux-chmod-命令

28次阅读

共计 2739 个字符,预计需要花费 7 分钟才能阅读完成。

linux 零碎中的 chmod 命令用于更改或调配文件和目录的权限。在 linux / unix 零碎中,对文件和目录的可拜访性由文件所有权和权限确定。

chmod 命令是 change mode 的缩写,用于管理文件和目录的权限,并确定谁能够拜访它们。当初让咱们深入研究文件和目录权限的实质以及如何批改它们。

linux 权限

为了更好地了解 chmod 命令是如何工作的,咱们要好好钻研 Linux 文件权限模型。

在 linux 中,咱们有三种类型的文件权限: 读 (r),写 (w),执行 (x)。这些权限决定了哪些用户能够读写或执行文件。您能够应用文本或八进制 (数字) 表示法调配这些权限,咱们将在本教程前面探讨这些表示法。

文件和目录属主类型包含以下三种:

  • u – owner of the file (用户)
  • g – group (组)
  • o – others (其它)

应用 ls -l 命令列出文件权限,-l 标记列出文件权限。

$ ls -l

从最左侧开始,第一个字符批示文件类型。连字符 (-) 示意文件是惯例文件。字符 d 示意它是目录。字符 L 示意这是一个符号链接。

其余 9 个字符被分成 3 个三联,每个三联蕴含三个符号 r (读),w (写),x (执行)。如前所述,第一局部指向所有者权限,第二局部批示组权限,最初一部分指定其余用户对文件或目录的权限。

从输入中,咱们能够看到咱们有两个文件 (hello.txt 和 reports.zip) 和一个目录。

让咱们查看第一个文件

-rw-rw-r-- 1 linuxtechi linuxtechi   35 Aug 17 15:42 hello.txt

对于第一个文件,-rw-rw-r-- 权限意味着该文件的所有者具备读写权限,组也具备读写权限,而其余用户只有读权限。同样的权限也实用于 reports.zip 压缩文件。

让咱们看看该目录的权限

drwxrwxr-x 2 linuxtechi linuxtechi 4096 Aug 17 15:43 sales

咱们能够看到,目录和组的所有者领有所有的权限(读、写和执行),而其余用户只有读和执行权限。

三个连字符示意没有向文件的所有者、组或其余用户授予权限。

应用 chmod 命令设置文件和目录权限

在理解了文件权限和如何查看它们之后,咱们再理解如何批改这些权限。

linux 零碎中的 chmod 命令用于应用文本 (符号) 或数字 (八进制) 表示法更改文件和目录权限。它采纳以下语法:

$ chmod [OPTIONS] MODE filename

只有 root 用户或具备 sudo 权限的普通用户能力更改文件或目录权限。您能够在命令中传递多个由空格分隔的文件或目录。

当初让咱们深入研究并查看 chmod 命令的不同示例。

(1) 应用数字表示法调配权限

应用数字款式设置权限时,请应用上面显示的语法:

$ sudo chmod [OPTIONS] numeric_value filename

数值能够取 3 或 4 个数字。在大多数状况下,应用 3 个数字。读、写和执行权限采纳以下值

  • read permission => 4
  • write permission => 2
  • execute permission => 1

假如所有者具备读、写和执行权限,组具备读和执行权限,其余用户仅具备读权限,这能够分为以下几局部

  • u : rwx = 7
  • g : r-x = 5
  • o : r– = 4

因而,咱们失去 754 作为文件权限的数值,执行如下命令

$ chmod 744 devops.txt

所有者领有所有权限,组用户读取和执行权限,其余用户没有任何权限

$ chmod 750 coders.txt

所有者领有所有权限,组用户读取和执行权限,其余用户读取和执行权限

$ chmod 755 sysadmin.txt

(2) 递归地为目录调配权限

在为目录调配权限时,应用 -R 标记递归地为其文件和子文件夹调配权限。例如

$ chmod 755 -R directory_name

$ chmod 755 -R /home/linuxtechi/data

(3) 应用文本表示法调配权限

在这种办法中,chmod 命令承受在语法中应用示意所有者 (u),组 (g),其余用户 (o) 的标记或符号。

该办法不像后面的办法那样简略,应该留神防止调配谬误的权限。

上面是它的语法

$ chmod [OPTIONS] [u g o a] [– + =] [r, w, x] file

第一组选项 [u g o a] 指定权限将发生变化的用户的类别

  • u : user
  • g : group
  • o : other
  • a : all (蕴含以上全副)

如果省略这个选项,则默认选项是 a 选项。

第二组选项 [- + =] 决定是否从用户类别中增加或删除权限。

  • – : 删除指定用户的权限
    • : 增加权限到指定用户
  • = : 为用户调配指定的权限,并删除先前的权限

让咱们看几个例子

(4) 给文件调配读权限

$ chmod o=r filename

下面的命令只将以符号 o 示意的其余用户的读权限调配给文件,并删除先前调配给其余段的权限。

样列文件 file1.txt 的原有权限如下

调配其它 (o) 段只读权限,运行命令

$ sudo chmod o=r file1.txt

从输入中,咱们能够看到 others 段被调配了读权限,但同时失去了执行权限。这意味着 = 操作符调配新的权限,同时擦除以前的权限。

(5) 为文件和组所有者调配执行权限

$ sudo chmod ug+x filename

下面的命令将执行权限增加到文件的所有者和组。

$ sudo chmod ug+x file1.txt

(6) 为属主调配不同的权限

$ sudo chmod u=rwx,g=rw,o=r filename

下面的命令将所有权限调配给文件的所有者,将读写权限调配给组,只将读权限调配给其余用户。

留神: 如果 = 操作符后没有指定权限,则删除该用户段的所有权限。

(7) 删除其余用户的所有权限

$ sudo chmod o= filename

下面的命令从其它用户段中删除指定文件的所有权限。

该命令的成果与上面的命令雷同

$ sudo chmod o-rwx filename

(8) 应用援用文件调配权限

援用文件是一种十分不便的调配文件权限的办法。

在此办法中,应用 --reference=ref_file 选项将一个文件的权限设置为与另一个援用文件的权限雷同,应用上面的语法

$ sudo chmod –reference=ref_file filename

例如将 file2.txt 文件的权限设置为与 file1.txt 文件雷同

$ sudo chmod --reference=file1.txt file2.txt

(9) 仅向目录调配执行权限

假如咱们有一个目录,其中有文件和子目录,咱们心愿只对目录调配执行权限,能够通过应用以下命令来实现

$ chmod a+X *

咱们应用大写 X 示意执行权限,下面的命令将在当前工作目录的所有目录上设置执行权限。

我的开源我的项目

  • course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
  • course-tencent-cloud(酷瓜云课堂 – github 仓库)

正文完
 0