编辑
2023-08-06
🚀运维部署
00
请注意,本文编写于 683 天前,最后修改于 225 天前,其中某些信息可能已经过时。

目录

Linux chmod命令:修改文件或目录的权限
命令格式

Linux chmod命令:修改文件或目录的权限

chmod 是修改权限的命令,其基本信息如下: 命令名称:chmod。 英文原意:change file mode bits。 所在路径:/bin/chmod。 执行权限:所有用户。 功能描述:修改文件的权限模式。

命令格式

bash
[root@localhost ~]# chmod [选项] 权限模式 文件名

选项

  • -R:递归设置权限,也就是给子目录中的所有文件设定权限 权限模式

chmod 命令的权限模式的格式是"[ugoa] [[+-=] [perms]]",也就是"[用户身份][[赋予方式][权限]]"的格式,我们来解释一下。

用户身份:

  • -u:代表所有者(user)。
  • -g:代表所属组(group)。
  • -o:代也人(other)。
  • -a:代表全部身份(all)。

赋予方式:

  • -+:加入权限。
  • --:减去权限。
  • -=:设置权限。

权限:

  • -r:读取权限(read)。
  • -w:写权限(write)。
  • -x:执行权限(execute)。

这里我们只讲解基本权限,至于特殊权限(如 suid 、sgid 和 sbit 等),我们会在后续章节详细讲解。

下面举几个例子。 【例 1】用"+"加入权限。

bash
[root@localhost ~]# touch lmls #建立测试文件 [root@localhost ~]# ll lmls -rw-r--r--1 root root 0 6月 15 02:48 lmls #这个文件的默认权限是"所有者:读、写权限;所属组:只读权限;其他人:只读权限" [root@localhost ~]# chmod u+x lmls #给所有者加入执行权限 [root@localhost ~]# ll lmls-rwxr--r-- 1 root root 0 6月 15 02:48 lmls #权限生效

【例 2】给多个身份同时加入权限。

bash
[root@localhost ~]# chmod g+w,o+w lmls #给所属组和其他人同时加入写权限 [root@localhost ~]# ll lmls -rwxrw-rw-1 root root 0 6月 15 02:48 lmls #权限生效

【例 3】用"-"减去权限。

bash
[root@localhost ~]# chmod u-x, g-w, o-w lmls #给所有者减去执行权限,给所属组和其他人都减去写权限,也就是恢复默认权限 [root@localhost ~]#ll lmls -rw-r--r-- 1 root root 0 6月 15 02:48 lmls

【例 4】用"="设置权限。 大家有没有发现,用"+-"赋予权限是比较麻烦的,需要先确定原始权限是什么,然后在原始权限的基础上加减权限。有没有简单一点的方法呢?可以使用"="来设定权限,例如:

bash
[root@localhost ~]# chmod u=rwx, g=rw, o=rw lmls #所有者赋予权限"rwx",给所属组和其他人赋予权限"rw" [root@localhost ~]# ll lmls -rwxrw-rw-1 root root 0 6月 15 02:48 lmls

使用"="赋予权限,确实不用在原始权限的基础行加减了,但是依然要写很长一条命令,笔者依然觉的不够简单,还可以使用数组权限的方式来赋予权限。

数字权限

数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。

我们来看看这些数字权限的含义,

  • 4:代表"r"权限。
  • 2:代表"w"权限。
  • 1:代表"x"权限。

举个例子:

bash
[root@localhost ~]# chmod 755 lmls #给文件赋予"755权限" [root@localhost ~]#ll lmls -rwxr-xr-x 1 root root 0 6月15 02:48 lmls

解释一下"755权限":

  • 第一个数字"7":代表所有者的权限是"4+2+1",也就是读、写和执行权限。
  • 第二个数字"5":代表所属组的权限是"4+1",也就是读和执行权限。
  • 第三个数字"5":代表其他人的权限是"4+1",也就是读和执行权限。

数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多,只有如下几个:

  • 644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
  • 755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
  • 777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。

我们很少会使用"457"这样的权限,因为这样的权限是不合理的,怎么可能文件的所有者的权限还没有其他人的权限大呢?所以,除非是实验需要,否则一般情况下所有者的权限要大于所属组和其他人的权限。

本文作者:Eric

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!