Linux修改权限命令chmod命令的9个示例


原文地址:Linux修改权限命令chmod命令的9个示例

Linux中的Chmod命令用于更改或分配文件和目录的权限。在Linux / Unix系统中,文件和目录的可访问性由文件所有权和权限决定。在本教程中,我们列举了9个chmod命令用法示例。

chmod命令用于管理文件和目录权限,并确定谁可以访问它们。现在,让我们深入探讨文件和目录权限的性质以及如何修改它们。

Linux权限

为了更好地了解chmod命令的工作方式,谨慎地研究Linux文件权限模型。

在Linux中,我们具有3种类型的文件权限:读(r)写(w)执行(x)权限。这些权限确定哪些用户可以读取,写入或执行文件。您可以使用文本或八进制(数字)表示法来分配这些权限,我们将在本教程后面讨论。

文件和目录可以属于文件(u)组(g)或其他(o)的所有者

  • u –文件的所有者
  • g –组
  • o –其他

使用ls -l命令列出文件许可权。该-l标志列出文件的权限。权限分为三组:用户,组和其他

为了更好地理解文件权限,我们将列出目录的内容,如下所示:

$ ls -l

Linux修改权限命令chmod命令的9个示例

从最左端开始,第一个字符/符号表示文件类型。一个连字符( - ) ,表示该文件是一个普通文件。符号d表示它是目录。符号l表示它是符号链接。

其余的9个字符分成3个三元组,每个三元组带有三个符号r(read)w(write)x(execute)。如前所述,第一部分指向所有者权限,第二部分指示组权限,最后一部分指定其他用户对该文件或目录具有的权限。

从输出中,我们可以看到我们有2个文件(hello.txt和report.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 [选项]模式文件名

只有root用户或具有sudo特权的普通用户才能更改文件或目录权限。您可以在命令语法中传递多个文件或目录,并用空格分隔。

现在让我们深入研究并查看chmod命令的不同示例。

示例1)使用数字符号分配权限

使用数字样式/符号设置权限时,请使用以下语法:

$ sudo chmod [选项]数字值文件名

数值可以为3或4个数字。但是,在大多数情况下,使用3个数字。读取,写入和执行权限采用以下值:

  • 读取权限=> 4
  • 写权限=> 2
  • 执行权限=> 1

权限值的总和,即在三个段中的每一个中的读取,写入和执行,都占给定文件或目录的完整权限。

这是什么意思?

假设所有者具有读取,写入和执行权限,该组具有读取和执行权限,而其他用户仅具有读取权限,可以将其细分如下:

u:rwx = 7
g:rx = 5
o:r– = 4

因此,我们得出值754作为给定文件的文件许可权的数字值。

要将读取,写入和执行权限分配给所有者,而仅将读取权限分配给组和其他用户,请运行以下命令:

$ chmod 744 devops.txt

要将所有权限分配给文件的所有者,请对该组读取和执行权限,而对其他用户则完全没有权限,请执行:

$ chmod 750 coders.txt

要将所有权限分配给文件的所有者,请对该组具有读写权限,其他用户请运行以下命令:

$ chmod 755 sysadmin.txt

示例2)递归分配目录权限

为目录分配权限时,请使用-R标志以递归方式为其目录和子文件夹分配权限。例如:

$ chmod 755 -R目录名

$ chmod 755 -R /home/linuxtechi/data

示例3)使用文本符号分配权限

分配权限的另一种方法是使用文本符号。在此方法中,chmod命令采用标志或符号,这些标志或符号代表语法中的所有者,组,其他或所有用户(u,g和o)。

该方法不像以前的方法那样简单明了,应注意避免分配错误的权限。

这是语法的样子

$ chmod [选项] [ugoa] [– + =] [r,w,x]文件

让我们分解一下。

第一组参数[ugoa]指定权限将更改的用户类别

  • u:用户
  • g:组
  • o:其他
  • a:全部(包括以上所有内容)

如果省略此集合,则默认选项为  a option

第二组选项–操作员选项[– + =] –确定是要添加权限还是要从用户类别中删除权限。选项删除

  •      :该标志从指定的用户中删除文件许可权。
  • +    :这会将权限添加/添加到指定用户。
  •    :这将为指定的用户分配不同的权限,并删除该用户段的先前权限。

示例4)为文件分配读取权限

$ chmod o = r 文件名

上面的命令仅将用符号“ o”表示的其他用户分配给该文件的读取权限,并删除分配给“其他”段的较早的权限。取得具有以下权限的file1.txt

Linux修改权限命令chmod命令的9个示例

要分配“其他(o)”段读取权限,请仅运行

$ sudo chmod o = r file1.txt

Linux修改权限命令chmod命令的9个示例

从输出中,我们可以看到已为“其他”段分配了读取权限,而同时又失去了执行权限。这意味着=运算符将分配新的权限,而同时会删除以前的权限。

示例5)向文件和组所有者分配执行权限

$ sudo chmod ug + x文件名

上面的命令将执行权限添加到文件的所有者和组。使用我们的文件,它将变成:

$ sudo chmod ug + x file1.txt

Linux修改权限命令chmod命令的9个示例

示例6)为文件,组和其他分配不同的权限

$ sudo chmod u = rwx,g = rw,o = r文件名

上面的命令将所有权限分配给文件的所有者,将读写权限分配给组,仅将读取权限授予其他用户。

Linux修改权限命令chmod命令的9个示例

注意:如果在=运算符之后未指定任何权限,则将删除该用户段中的所有权限。

示例7)删除其他用户的所有权限

$ sudo chmod o =文件名

上面的命令从“其他”用户段中删除指定文件的所有权限。

该命令与以下命令具有相同的作用:

$ sudo chmod o-rwx文件名

Linux修改权限命令chmod命令的9个示例

示例8)使用参考文件分配权限

分配文件权限的另一种便捷方法是使用参考文件。在此方法中,您使用–reference = ref_file选项将文件的权限设置为与另一个参考文件的权限相同。使用以下语法

$ sudo –reference = ref_file文件名

例如,要将file2.txt的文件许可权设置为与file1.txt的许可权相同,请运行以下命令:

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

参考文件是file1.txt,file2.txt是将占用参考文件的文件许可权的文件。

Linux修改权限命令chmod命令的9个示例

示例9)仅将执行权限分配给目录

假设我们有一个包含文件和子目录的目录,并且我们希望仅对目录分配执行权限,而不接触文件。因此,这可以通过使用以下chmod命令来实现,

$ chmod a + X *

如果您已经注意到,我们已经使用大写的X作为执行权限,以上命令将在当前工作目录的所有目录上设置执行权限。

结论

这为我们的话题拉开了帷幕。我们查看了chmod命令,并看到了可以使用该命令更改文件权限的各种示例。

评论

登录后评论

服务器优惠活动

Top