chmod用于改变文档的属性、SUID等特性。可以用ls -al来查看,用ls -al打印出来的第一列的10个值我们从左到右用0123456789来表示,第0位代表文件的类型,123代表owner对该文件的权限,456代表与owner在同一Group的其他用户对该文件所具有的权限,789代表与owner不在同一Group的用户(即others)对该文件所具有的权限,通常权限由rwx(读写执行),如果对应位为-则表示没有对应的权限。例如 lrwxr-xr--,该文件是一个连接文件(l代表连接文件),rwx表示owner有读,写,执行的权限,r-x表示与owner在同一Group的其他用户有读,执行的权限,r--表示其他用户只有读的权限。
属性的设置方法有两种,分别可以使用数字或是符号来进行属性的改变。
数字类型改变文档的权限:9个属性3个位一组 rwx 看成3位二进制,1代表有这个属性,0代表没有这个属性,如下:
| 属性 | 二进制 | 十进制 |
| r(读) | 100 | 4 |
| w(写) | 010 | 2 |
| x(执行) | 001 | 1 |
3个属性或(|)在一起,r|w|x=100|010|001=111=7=4+2+1
例如要设置文件a属性为-rwxrwx---,该怎么做?
owner=rwx=4+2+1=7
group=rwx=4+2+1=7
others=---=0+0+0=0
因此 chmod 770 a就可以了
符号类型改变文档的权限:9个属性分别是user、group、others三个群组的,这三个群组分别用u、g、o来表示,此外a代表all即user+group+others,读写执行3个属性分别用rwx来表示,3个操作加入(+)、除去(-)、设定(=),例如:chmod u=rwx go=rx filename 那么filename就被设置为owner具有读写执行的权限,group和others具有读执行的权限即 -rwxr-xr-x。再例如:chmod a-x filename,那么filename的owner、group、others都被除去了执行的权限。
|
chmod
| u g o a | +(加入) -(除去) =(设置) | r w x | filename |
rwx对于文件来说是读写执行,那么对于文件夹呢?对于文件夹,r表示具有读取该目录结构清单的权限,w表示可以在该目录下新建、删除、修改、移动文件和文件夹,x与能否进入该目录有关。