日更第11天:Linux常用命令之chmod用法
大家好,我是胖邰。今天是挑战的第11天,真没想到自己能坚持过半,先表扬一下自己。这次文章主要介绍使用chmod的用法。来吧,让我们一起了解下。
1. 命令简介
chmod 命令是用来修改某个文件或文件夹的权限,我们知道,在Linux系统中,文件和文件夹都有自己的属性和权限,分别为 文件所有者、文件所属组、其他用户的读访问、写访问、执行访问权限,简称为 r、w、x 或者 4,2,1 表示。
在Linux系统中,文件的基本权限由3类用户9个字符组成,每个用户身份分别包含同样的 r、w、x 3个权限,通过将3个权限对应的数字相加来确定文件所具备的权限。当前,只有文件所有者和root用户才可以修改文件或者文件夹的权限。
每个模式字符串匹配格式
"[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+"
- u:表示文件所有者
- g:表示文件所属组(表示与文件所有者属于同一个群体)
- o:表示其他用户
- a:表示三者皆有
- -:表示取消权限
- +:表示增加权限
- =:表示唯一设定权限
- r:表示读访问
- w:表示写访问
- x:表示执行访问
- X:表示只在文件夹或已对某些用户具有执行权限
- s:表示在执行时设置用户或组ID
- t:表示限制删除标志或粘性位时执行/搜索
数字模式组合介绍
另外,在这里我们要特别强调一下 读访问、写访问、执行访问权限 分别对文件和文件夹存在的差异
权限对文件作用
- 读访问:表示可读取对应文件的实际内容,比如我们使用之前的tail命令来查看内容
- 写访问:表示可新增、编辑以及修改文件中的内容
- 执行访问:表示文件具有被系统执行的权限,只要文件具备执行访问权限(可执行文件)
权限对文件夹的作用
- 读访问:表示具有读取文件夹结构的权限,也就是说可以看到文件夹中有哪些文件和子文件夹,一旦具备读权限,就可以使用 ls 命令来查看文件夹中的内容信息
- 写权限:可以对文件夹进行创建(新建文件或者文件夹)、删除(已存在文件或者文件夹)、修改(已存在文件或者文件夹修改名称)、移动的权限(可以移动此文件夹下的文件和文件夹的位置),比如我们使用 rm、mv 等命令
- 执行权限:我们知道,文件夹是不能够直接被运行的,对其赋予执行权限表示可进入此文件夹下,也就是我们常用的 cd 命令的作用
2. 英文含义
chmod = change mode 改变方式、改变模式、变更方式
3. 语法格式
chmod [选项]... 模式[,模式]... 文件...
chmod [选项]... 八进制模式 文件...
chmod [选项]... --reference=参考文件 文件...
将每个文件的权限模式变更至指定模式。
使用 --reference 选项时,把指定文件的模式设置为与参考文件相同。
4. 选项说明
- -c 或 --changes 文件权限已修改后,显示其更改动作
- -f 文件权限无法修改时,不显示错误信息
- -v 或 --verbose 显示每个文件或文件夹权限变更的执行流程资料
- –reference=参考文件 使用参考文件的模式而非给定模式的值
- -R 或 --recursive 递归修改文件和目录
- –help 显示此帮助信息并退出
- –version 显示版本信息并退出
5. 示例说明
所有用户对文件可读可写可执行
[root@iZ test]# ls -l
总用量 0
-rw-r--r-- 1 root root 0 11月 26 22:19 source.log
[root@iZ test]# chmod 777 source.log
[root@iZ test]# ls -l
总用量 0
-rwxrwxrwx 1 root root 0 11月 26 22:19 source.log
[root@iZ test]#
对文件其他用户增加写权限
[root@iZ test]# ls -l
总用量 0
-rw-r--r-- 1 root root 0 11月 26 22:19 source.log
[root@iZ test]# chmod o+w source.log
[root@iZ test]# ls -l
总用量 0
-rw-r--rw- 1 root root 0 11月 26 22:19 source.log
[root@iZ test]#
对文件所有者撤销读权限
[root@iZ test]# ls -l
总用量 0
-rw-r--rw- 1 root root 0 11月 26 22:19 source.log
[root@iZ test]# chmod u-r source.log
[root@iZ test]# ls -l
总用量 0
--w-r--rw- 1 root root 0 11月 26 22:19 source.log
[root@iZ test]#
好了,今天的学习就到这里!欢迎大家评论区参与交流与讨论,更好的学习与进步!原创不易,欢迎收藏与转发支持!