在Linux中,每一个文件或目录都有r、w、x的权限,其中r代表read,w代表write、x代表execute。同时每一个文件或目录都有针对不同的角色的不同权限,角色有3个,分别为u、g、o,其中u代表owner,g代表group,o代表others,也可以使用a来共同代表这3个角色。

当使用ls –l命令时,输出结果中第一列即是权限。

clip_image002

ls –l的输出结果中,第一列的后9个字符,可以分为3组,分别代表了owner、group及others的权限。

chmod命令用于更改文件(目录)的权限。更改权限的方式有两种,分别为数字方式和字符方式。其用法如下:

clip_image004

数字方式

数字方式即使用不同的数字代表不同的权限。其中使用4代表r的权限,使用2代表w的权限,使用1代表x的权限。而对文件(目录)的每种角色来说,其权限是这三个数字的累加的结果。如当某文件的权限为[-rwxrwx---],则:

owner的权限= rwx=4+2+1=7

group的权限=rwx=4+2+1=7

others的权限=---=0+0+0=0

比如对于当前目录下的test目录:

clip_image006

若此时要更改其权限为所有人都拥有所有的权限,则可以:

clip_image008

字符方式

使用字符方式时,可以使用+、-和=来给u、g、o、a增加或减少或赋予不同的权限。比如,对于刚才的test目录,若想让owner有所有权限、group和others只有r的权限,则可以:

clip_image010

此时,若再想设置owner的权限为rw,而group的权限为rwx,others的权限为rw,则可以:

clip_image012

需要注意的,给u、g、o分配不同的权限时,命令中间使用’,’隔开,不能有空格。