命令解释
该命令是用来更改文件所有者、用户组、其他人的读写执行权限。
权限设置数字解释
Linux文件有三种身份,并且各自有自己的read、write、execute权限,文件权限字符为“-rwxrwxrwx”这9个权限是三个三个一组的。我们可以通过数字代表各个权限。
r
:4w
:2x
:1
每种身份各自的三个权限(r、w、x)分数是需要累加的,例如权限为[-rwxr-xr–],分数则是:
- 所有者 = rwx = 4 + 2 + 1 = 7
- 所属用户组 = r-x = 4 + 1 = 5
- 其他人 = r– = 4
所以等一下我们设置权限时,该文件权限的数字就是754
。
命令说明
[root@localhost home]# chmod [-R] xyz 文件或目录
参数:
xyz : 就是刚刚提到的数字类型的权限设置,为xyz属性数值的相加。
-R : 进行递归的持续更改,即连同子目录下的所有文件都会更改。
举例
上面提到一个数字,就是将权限改为[-rwxr-xr–],我们来验证一下,看是否754
能将权限改变成我们想要的结果。
[root@localhost ceshi]# ll
-rw-r--r-- 1 root root 0 07-16 14:08 123
[root@localhost ceshi]# chmod 754 123
[root@localhost ceshi]# ll
-rwxr-xr-- 1 root root 0 07-16 14:08
# 这样,就成功将这个文件的权限改为我们想要的结果
符号方式改变权限
从之前的介绍中,我们可以发现,基本上就9个权限。三种身份分别是user,group,other3种身份。那么我们就可以通过u、g、o来代表3种身份的权限。此外a代表all,也即全部的身份。那么读写的权限就可以写成r、w、x。
+
(加入)-
(除去)=
(设置)
咱们试想一下,假如我们设置一个文件的权限为”-rwxr-xr-x”时,该怎么办。
- user(u):具有可读、科协、可执行的权限。
- group和others(g/o):具有可读与可执行的权限。
所以我们就得出了以下操作:
[wenjie@localhost ceshi]$ ll
-rwx------ 1 root root 0 07-16 14:08 123
[root@localhost ceshi]# chmod u=rwx,go=rx 123
# 注意:那个 u=rwx,go=rx是连在一起的,中间没有任何空格
[root@localhost ceshi]# ll
-rwxr-xr-x 1 root root 0 07-16 14:08 12
如果我们要将所有人的执行权限给去掉,我们当然可以使用“chmod u=rw,og=r 123”,但是有没有比较简单的方法呢?
[root@localhost ceshi]# chmod a-x 123
[root@localhost ceshi]# ll
-rw-r--r-- 1 root root 0 07-16 14:08 123
# 这样我们就成功将所有人的执行权限给去掉了
如果我们要将所有人加上写入权限,想必不用我说,你也知道了。
[root@localhost ceshi]# chmod a+w 123
[root@localhost ceshi]# ll
-rw-rw-rw- 1 root root 0 07-16 14:08 123