Linux chmod命令教程:如何更改文件和目录的权限(附实例详解和注意事项)

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命令。

Linux chmod相关命令

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-14 16:52:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-14 16:52:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-14 16:52:01       82 阅读
  4. Python语言-面向对象

    2024-02-14 16:52:01       91 阅读

热门阅读

  1. 第十二周学习报告

    2024-02-14 16:52:01       49 阅读
  2. 深入理解C#中的事件驱动编程

    2024-02-14 16:52:01       47 阅读
  3. 利用英伟达(NVIDIA)RAPIDS实现GPU加速数据科学

    2024-02-14 16:52:01       62 阅读
  4. gstreamer 常用的图片格式转换命令

    2024-02-14 16:52:01       49 阅读
  5. 15.1 OpenGL可编程片段处理:片段着色器变量

    2024-02-14 16:52:01       53 阅读
  6. 2024/2/13 图的基础知识 3(拓扑排序)

    2024-02-14 16:52:01       54 阅读
  7. AcWing 1233. 全球变暖(bfs块问题)

    2024-02-14 16:52:01       47 阅读