Linux chmod命令介绍
chmod
(全称:change mode)命令是用来更改文件或目录的权限。在Linux/Unix中,文件的权限分为三级:文件所有者(Owner)、用户组(Group)、其他用户(Other Users)。只有文件所有者和超级用户可以修改文件或目录的权限。
Linux chmod命令适用的Linux版本
chmod
命令在所有主流的Linux发行版中都是可用的,包括但不限于Debian、Ubuntu、Alpine、Arch Linux、Kali Linux、RedHat/CentOS、Fedora、Raspbian等。如果某个Linux发行版中没有预装chmod
命令,用户可以通过该发行版的包管理器(如apt、yum、dnf、pacman等)来安装。
例如,在Debian或Ubuntu上,可以使用以下命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get update[linux@bashcommandnotfound.cn ~]$ sudo apt-get install coreutils
在CentOS 7上,可以使用以下命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo yum update[linux@bashcommandnotfound.cn ~]$ sudo yum install coreutils
在CentOS 8上,可以使用以下命令来安装:
[linux@bashcommandnotfound.cn ~]$ sudo dnf update[linux@bashcommandnotfound.cn ~]$ sudo dnf install coreutils
Linux chmod命令的基本语法
chmod
命令的基本语法如下:
chmod [options] mode file...
其中,mode
是权限设定字符串,file
是要更改权限的文件或目录。
Linux chmod命令的常用选项或参数说明
以下是chmod
命令的一些常用选项:
选项 | 说明 |
---|---|
-R | 对当前目录及其子目录进行递归更改 |
-c | 只有在文件权限确实更改时才显示其更改动作 |
-f | 如果文件权限无法更改,不显示错误信息 |
-v | 显示权限变更的详细信息 |
Linux chmod命令实例详解
实例1:更改文件权限
假设我们有一个名为file1.txt
的文件,我们想要给所有用户增加读取权限,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod a+r file1.txt
这个命令将给file1.txt
的所有用户增加读取权限。
实例2:删除执行权限
如果我们想要删除所有用户对file1.txt
的执行权限,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod a-x file1.txt
这个命令将删除所有用户对file1.txt
的执行权限。
实例3:递归更改目录权限
如果我们想要递归地给一个目录及其所有子目录和文件增加读取权限,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod -R a+r directory
这个命令将给directory
及其所有子目录和文件的所有用户增加读取权限。
实例4:设置特定权限
假如我们希望设置文件所有者具有读取、写入和执行权限(rwx),其他用户则仅有读取权限(r),可以用数值方式表示,并使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod 744 file1.txt
这个命令设置file1.txt
的权限,使得文件所有者具有读取、写入和执行权限,其他用户则仅有读取权限。
实例5:用符号表示法设置权位
我们同时还可以以user,group,others的形式使用符号来赋予文件权限。例如,我们希望给文件所有者增加执行权限,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod u+x file1.txt
这个命令将给file1.txt
的文件所有者增加执行权限。
实例6:以符号表示法删除权限
假如我们想移除文件组的写入权限,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod g-w file1.txt
这个命令将移除file1.txt
的文件组写入权限。
实例7: 同时设置用户组和其他用户权限
如果想要同时设置用户组(g)和其他用户(o)的权限,可以使用逗号将它们分开。例如,如果希望给用户组增加写权限,并给其他用户增加读权限,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod g+w,o+r file1.txt
此命令将给file1.txt
的用户组增加写权限,并给其他用户增加读权限。
实例8:赋予所有权限
如果我们希望赋予文件所有用户所有权限,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod 777 file1.txt
此命令将赋予file1.txt
所有用户(用户组和其他用户)所有的读取、写入和执行权限。
实例9:移除所有权限
反之,如果我们希望移除文件的所有权限,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ chmod 000 file1.txt
此命令将移除file1.txt
所有用户(用户组和其他用户)的所有权限,即无法进行读取、写入或执行该文件。
Linux chmod命令的注意事项
使用chmod
命令时,需要注意文件的所有者和当前用户的关系。只有文件的所有者和超级用户可以更改文件的权限。在使用chmod
命令时,如果遇到bash: chmod: command not found
的错误,可以按照上面的方法安装chmod
命令。