背景

在linux上部署一些服务(比如nginx,hhvm,php等)的时候经常遇到一些进程日志里爆权限不够,不能访问。这些问题实质是对linux文件权限理解不清楚造成。

ls -al 查看文件的权限

> ls -al test.md

> -rw-r--r-- 1 lijun31 staff 3944 7 21 16:46 test.md

-rw-r--r--

第1个字符代表文件类型:-=普通 d=目录 l=link

第2-4个字符代表ower权限:rwx分别为可读、可写、可执行

第5-7个字符代表同group权限:rwx分别为可读、可写、可执行

第8-10个字符代表除开以上两种情况的所有其它用户或组权限:rwx分别为可读、可写、可执行

lijun31 staff

lijun31 代表文件所属ower

staff 代表文件所属group

修改文件权限chmod

文字设定法:

chmod [who] [+ | - | =] [mode] 文件名

eg: chmod u+x test.md

权限范围:

u :目录或者文件的当前的用户
g :目录或者文件的当前的群组
o :除了目录或者文件的当前用户或群组之外的用户或者群组
a :所有的用户及群组

数字设定法

eg: chmod 777 test.md

rwx:4+2+1=7
rw-:4+2=6
r-x:4+1=7 

权限代号:

r :读权限,用数字4表示
w :写权限,用数字2表示
x :执行权限,用数字1表示
- :删除权限,用数字0表示
s :特殊权限