📅  最后修改于: 2023-12-03 15:29:58.220000             🧑  作者: Mango
在Linux系统中,文件和目录都有访问权限的管理,而chmod
命令就是用来修改这些权限的。具体讲解如下:
chmod
命令用于修改文件或目录的访问权限。执行该命令需要具备对相应文件或目录的写权限。其语法格式如下:
chmod [选项] [模式] 文件或目录
选项 | 说明 ---- | ---- -c | 如果发生了修改,则进行回显。 -v | 列出所有操作。 -R | 改变目录及其子目录下所有文件的权限。 -f | 忽略不存在的文件,不输出错误信息。
文件/目录的访问权限分为读(r)
、写(w)
和执行(x)
三种类型,分别用数字表示,如下所示:
数字 | 权限 ---- | ---- 0 | 不具有任何权限。 1 | 执行权限(x)。 2 | 写权限(w)。 3 | 写权限(w)和执行权限(x)。 4 | 读权限(r)。 5 | 读权限(r)和执行权限(x)。 6 | 读权限(r)和写权限(w)。 7 | 读权限(r)、写权限(w)和执行权限(x)。
需要注意的是,文件和目录的数字权限表示不一样。对于文件而言,权限分为所有者、所属组和其他人三类,而目录则包含一个额外的粘滞位(Sticky bit)。
具体来说,文件的数字权限可以写作[所有者权限][所属组权限][其他人权限]
这种格式,而目录的数字权限的格式是[u/g/o][+/-/=][r/w/x]
。其中,u表示所有者、g表示所属组、o表示其他人。"+"表示添加权限,"-"表示去除权限,"="表示设定为指定权限。比如,u+r表示给所有者添加读权限,o-w表示去除其他人写权限,g=x表示将所属组的执行权限设定为可执行。
下面,我们来看一些具体的实例。
要修改文件test.txt
的权限为644
,可以使用以下命令:
chmod 644 test.txt
这条命令把该文件的权限分别分配为6
(所有者读写)、4
(所属组只读)、4
(其他人只读)。这通常用来保护敏感数据,使其只能被拥有者读写、设定需要访问的用户只能读文件而不能修改文件。
要修改目录/var/log
的权限为755
,可以使用以下命令:
chmod 755 /var/log
这条命令将该目录的权限分别设定为rwxr-xr-x
,这表示所有者具有读、写、执行权限,而所属组和其他人则只有读和执行权限。这通常用来保护目录下的文件,设定需要访问的用户可以读目录下文件列表而不能建立或删除文件。
要同时更改文件test.txt
的权限为644
且所有者为john
,可以使用以下命令:
chmod 644 test.txt && chown john test.txt
这条命令把文件的权限设定为644
,然后修改所有者为john
。这通常用来更改文件的所有权和权限。
以上就是chmod
命令的详细介绍,可以根据实际需求来选取相应的权限。