Linuxchmod命令修改文件权限

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

Linux系统中的每个文件和目录都设定了针对不同用户的访问权限,用它来确定用户可以通过何种方式对文件和目录进行访问和操作,也就是确保只有授权的用户才能访问和操作文件和目录。

接下来将介绍如何使用chmod命令更改文件和目录的访问权限。

Linux文件权限

在Linux中,有三种不同类型的用户可对文件或目录进行访问:

  • 文件所有者
  • 同一群组用户
  • 其他用户

有三种文件权限类型:

  • r:读取权限
  • w:写入权限
  • x:执行权限

我们可以为三种不同类别的用户分配不同的文件访问权限,指定允许哪些用户读取文件、写入文件或执行文件。

可以使用ls命令查看文件权限:

ls -l test.sh
-rwxr-xr-x. 1 root root 2519 May 19 10:13 test.sh
复制代码

我们可以看到类似-rwxr-xr-x的信息,一共有10位:

-rwxr-xr-x
||||||||||
||||||||||
||||||||||
12345678910
复制代码
  • 第一个,-代表的是文件类型,可以是常规文件-、目录d、符号链接l或其他类型的文件
  • 往后三个,rwx代表的是所有者的权限
  • 再往后三个,r-x代表的是同一群组的权限
  • 最后三个,r-x代表的是其他用户的权限

注意:-表示没有被授予相应的权限。

使用chmod修改文件目录权限

chmod命令用于修改文件目录的访问权限。

语法格式

chmod [who] [+|-|=] [mode] 文件名
复制代码

mode表示访问的模式状态,通常使用几个特定的符号来设置权限的状态。

设置用户的状态 运算符 权限
u + r
g - w
o = x
a

权限状态可以分成3个部分。

  • 设置用户的状态:

    • u:表示所有者(owner)的权限
    • g:表示群组(group)的权限
    • o:表示其他用户(other)的权限
    • a:表示所有用户的权限
  • 运算符:

    • +:表示在现有权限的基础上增加权限
    • -:表示在现有权限的基础上移除权限
    • =:表示将权限设置为后面的值
  • 权限:

    • r:读取权限
    • w:写入权限
    • x:执行权限

例如,为test文件添加所有者和同组用户的可执行权限:

chmod ug+x test
复制代码

除此之外,chmod命令还支持用数字来表示要修改的文件权限,可以使用一组3位数的数字来表示文件目录上的权限:

  • 第1个数字表示所有者(owner)的权限,即u
  • 第2个数字表示群组(group)的权限,即g
  • 第3个数字表示其他用户(other)的权限,即o

每一位数字都是以下权限状态的数字( 4、2、1、0)相加的总和:

  • 4:读取权限
  • 2:写入权限
  • 1:执行权限
  • 0:没有相应的权限

把以上的数字相加就可以得到一个在0-7之间的数字,而这组数字就是表示所有者、同群组和其他用户权限状态。

例如,要授予test文件所有者的读取,写入和执行权限,授予同群组的读取和执行权限,而仅授予所有其他用户的读取权限,可以执行以下操作:

  • 所有者:rwx = 4 + 2 + 1 = 7
  • 群组:rx = 4 + 0 + 1 = 5
  • 其他:rx = 4 + 0 + 0 = 4
chmod -R 754 test
复制代码

总结

chmod命令可以更改文件和目录的访问权限,可以使用符号、数字两种模式。

原创不易,如果小伙伴们觉得有帮助,麻烦点个赞再走呗~

最后,感谢女朋友在工作和生活中的包容、理解与支持 !