chmod
在Linux中,不同的用户(包括不同组的用户)对同一个文件的访问权限是不一样的,当想要改变某个用户对某个文件的权限时,最常用来改变权限的命令就是 chmod。
在了解这个命令之前,首先就应该对linux下权限的表示有一定的了解。
先上图了解下:
在图片中的 - r w - r- - r - -,也就是通过 ls -l 命令查看文件时,每一行的二到十列都是文件的权限。
在Linux 中共有三种权限,且按 rwx 的顺序排列 :
r:表示可读
w:表示可写
x:表示可执行,目录文件可执行代表这个目录可以被搜索
-表示不具备对应位置的权限。
从第二列到第十列一共九列,每三列分为一组,分别为:
1_文件所属用户对文件的权限(用 user 表示,可缩写为 u);
2_与文件所属用户同组的用户对文件的权限(用 group 表示,可缩写为 g);
3_除以上两种用户外,其他用户对文件的权限(用 other 表示,可缩写为 o).。
例如上图中:user对 test.txt 文件的权限是 rw- ,同组用户的权限是r- -,other 对文件的权限是 r- - 。
除了用 rwx 的方式表示权限外,还有一种使用数字表示权限的方式:
读权限对应 4;
写权限对应 2;
执行权限对应 1;
- 对应 0 。
针对 user ,group,other这三种用户,他们对一个文件的所有权限可以用他们具有的权限对应的数字之和来表示,例如上图:
user对test.txt文件的权限是6(4+2+0),group 的权限是 4(4+0+0),other的权限是 4(4+0+0)。所以呢,- r w - r- - r - -就可以表示为644,这样就是 user, group, other 对 test.txt 文件的权限表示了。
铺垫打好了,那怎么通过chmod 来改变用户对文件的操作权限呢?
chmod 的命令格式:chmod 权限的改变 要改变的文件(或者文件夹)
例如:
要使 group 对test.txt 有读写权限,other 对test.txt 有读写权限
chmod g+w,o+w test.txt
或者这样
chmod g=u,o=u test.txt
甚至这样:
chmod 666 test.txt
还能这样:
chmod g=rw,o=rw test.txt
当想剥夺group 和 other 对test.txt 的写权限时:
chmod g-w,o-w test.txt
当想给所有用户对test.txt加上执行权限时,可以这样:
chmod u+x,g+x,o+x test.txt
嫌麻烦还可以这样:
chmod a+x test.txt
当想改变一个文件夹以及文件夹内的文件的权限时该怎么办呢?这个时候可以在命令末尾加上:
-R(注意,必须是大写的R)
例如:
chmod o-w directory/ -R