LinuxShell命令详解:chmod
chmod命令
chmod
命令直观的意义是改变文件的模式位.通俗来讲就是针对不同使用者来改变文件的使用权限.
先放上chmod
设置对应的表达格式
`[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+`
这个会在后面进行解释.
使用者类型
权限和用户是相关联的,提及到权限就得先说明一下Linux的3种使用者类型:
文件拥有者(owner)
: 顾名思义,就是拥有这个文件的用户.群组(group)
: 与用户在同一组别的其他用户.其他人(others)
: 不在同一组别的其他用户.
其实这里还有第四种使用者,就是root
,这种用户拥有所有的权限,他不会被权限系统所限制.
权限的类型
在Linux中,常用的文件权限有3种,分别是:
可读(read)
: 可以读取文件的实际内容.可写(write)
: 可以编辑,新增,修改文件内容,但不可以删除.可执行(execute)
: 可以在系统中执行该文件.
r/w/x 这三种权限主要是针对于文件内容而言,而与文件类型和文件操作无关.
使用chmod命令改变权限
使用ls -l
命令后,我们可以看到文件前面都有一串类似-rwxrwxrwx
的东西,这一串字符就代表了文件的权限.
三组三位rwx
分别代表的是所有者(owner)/群组(group)/其他人(others)的可读(r)/可写(w)/可执行权限(x).
e.g., `-rwxrw-r--`就代表所有者拥有读/写/执行的权限,群组成员有读/写权限,而其他人只有可读权限.
接下来就讲讲怎么使用chmod
命令来改变文件的权限.
使用数字改变权限
chmod
用数字改变权限的格式为
chmod NUM FILE
Linux里将上面的rwx分别进行赋值,r为4,w为2,x为1.则对应使用者用户所具有的权限就是拥有权限代表数字之和.
e.g., 拥有读/写权限的话就是 4 + 2 = 6. 拥有读/执行权限的话就是 4 + 1 = 5.
将`-rwxrw-r--`转化为数字的话就是`764`
在上面的表达格式里面可以看到[0-7]
,就是用数字来改变命令权限.
e.g., 将a文就的所用权限赋给所有用户,写法就是 `chmod 777 a`.
这样所有的用户就有了读/写/执行的权限了.
使用符号改变文件权限
chmod
用符号来改变权限的格式为
chmod USER OPTION AUTHORITY FILE
USER这一块可以为:
u
: 拥有者g
: 群组成员o
: 其他人a
: 所有人
OPTION这一块可以为:
+
: 添加权限-
: 除去权限=
: 设定权限
AUTHORITY这一块可以为:
r
: 可读权限w
: 可写权限x
: 可执行权限
对于不同对象的操作用逗号隔开,中间不能添加空格.
e.g., 对于b文件,给拥有者添加rwx权限,给群组使用者和其他人添加r权限,然后给群组添加w权限,随后除去所有人的可读权限.
chmod u=rwx,go=r,g+w,a-r b
参数介绍
-v, --verbose
对每一个涉及到的文件输出一个报告.-c, --changes
同上,不过只有在修改时才输出.-f, --silent, --quiet
屏蔽大多数的错误信息.-R, --recursive
递归应用,将目录中的子内容同时应用该权限设置.