Linux chmod 命令总结
chmod 命令主要用来修改文件权限,可以直接使用 man chmod
在终端上查看该命令的帮助手册。
查看文件权限
ls -l
命令可以查看当前目录下所有文件的访问权限,也可以查看指定文件。比如,查看当前目录中的 count.sh
文件的访问权限:
ls -l count.sh
-rwxr-xr-x@ 1 liujie26 672505530 84 3 7 20:35 count.sh
drwxr-xr-x 23 liujie26 672505530 782B 4 15 10:32 Blog
上面打印的文件信息中每一部分所代表的含义,分别对应如下解释:
文件类型和访问权限 文件数量 所属用户 所在群组 文件大小 修改日期(月 日 时 分) 文件名称
第一部分 -rwxrwxrwx
具体解释一下:
-
:代表文件类型,-
符号表示该文件是非目录类型;d
符号表示目录类型;- 末尾的
@
符号表示文件拓展属性,属于文件系统的一个功能
后面九个字母 rwxr-xr-x
分为三组(rwx、r-x、r-x),从前到后每组分别对应所属用户(user)、所属用户所在组(group) 和其他用户(other) 对该文件的访问权限;
- r:可读权限
- w:可写权限
- x:可执行权限
每组中的三个字符 rwx
分别表示对应用户对该文件拥有的可读、可写、可执行权限,没有相应权限则使用 -
符号替代。
修改访问权限
通过对查看权限命令的学习,我们可以知道,修改文件访问权限应该包括操作对象、操作类型(添加或取消对应权限)、具体权限和具体文件名称,即:
chmod 用户+操作+权限 文件
用户部分:
- 使用字母
u
表示文件所有者(user) g
表示用户所在群组(group)o
表示其他用户(other)a
表示全部用户(all,包含前面三种用户)
操作部分:
+
符号表示增加权限-
符号表示取消权限=
符号表示赋值权限
权限部分:
r
符号表示可读权限(read)w
符号表示可写权限(write)x
符号表示可执行权限(execute)
文件部分:即具体操作哪个文件的权限,如果不指定文件名,表示操作对象为当前目录下的所有文件。
下面来看个例子:
// 表示给用户所在群组和其他用户添加 count.sh 文件的写权限
chmod go+w count.sh
// 查看修改后的文件访问权限,发现文件访问权限已经按照要求发生变化
ls -l count.sh
-rwxrwxrwx@ 1 liujie26 672505530 84 3 7 20:35 count.sh
// 表示给用户所在群组和其他用户删除 count.sh 文件的执行权限
chmod go-x count.sh
// 查看修改后的文件访问权限,发现文件访问权限已经按照要求发生变化
ls -l count.sh
-rwxrw-rw-@ 1 liujie26 672505530 84 3 7 20:35 count.sh
在看一个复杂一点的操作,可以同时使用多种操作符添加和取消权限,并且可以使用 ,
符号同时对不同用户范围修改权限,比如:
// 表示给用户所在群组和其他用户添加 count.sh 文件的执行权限,并删除其他用户 count.sh 文件的写权限
chmod g+x,o+x-w count.sh
ls -l count.sh
-rwxrwxr-x@ 1 liujie26 672505530 84 3 7 20:35 count.sh
使用数字表示权限部分
除了字母表示外,还可以使用数字表示权限部分的读、写、可执行权限类型。数字和权限类型的对应关系,可以从这张图中直观地看出来:
- 1:表示可执行权限
- 2:表示可写权限
- 4:表示可读权限
每种类型数字相加所得到的值表示交叉部分的公共类型。
这样的话,使用三个数字便可以分别代表三种不同用户类型的权限修改结果。比如,修改所有用户的访问权限均为可读可写可执行(rwx) 的话,这样使用即可:
chmod 777 count.sh
ls -l count.sh
-rwxrwxrwx@ 1 liujie26 672505530 84 3 7 20:35 count.sh
三个数字从前到后分别表示 u、g、o
三种用户类型的访问权限,使用时按需修改。
需要注意:有时候我们可能需要递归修改目录文件及其子目录中的文件类型,这时可以使用
-R
选项。
chmod +x
和 chmod u+x
的区别
chmod +x
等价于 chmod a+x
是一样的,一般没有明确要求,可以就用 chmod +x
。
linux 下不同的文件类型有不同的颜色:
- 蓝色表示目录
- 绿色表示可执行文件
- 红色表示压缩文件
- 浅蓝色表示链接文件
- 灰色表示其它文件
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Linux 下 tar 命令总结
下一篇: 基本的 bash shell 命令
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论