Linux文件的三种身份和四种权限,三种身份分别为:
u:文件的拥有者
g:文件所属的群组
o:其他用户
对于每个身份,又有四种权限,分别为:
r:读取文件的权限(read)
w:写入文件的权限(write)
x:执行的权限(execute)
s:特殊权限
在Linux文件权限详解中我们知道Linux中有两种表示文件权限的方式,分别为数字以及符号表示方式。
chmod以数字形式改变文件权限
chmod 755 test.sh
将755换算成字符形式,为rwxr-xr-x,也就是说文件的拥有者、所属群组以及其他用户都可以读取与运行test.sh这个文件,但是只有拥有者自己可以写入这个文件,也就是其他人无权修改test.sh
这个文件。(当然root用户无此限制,想改谁就该谁,这也是一个体现root账号至高无上权力的体验!)
通过数学形式改变文件的权限比较简单,只要实现算好需要给文件赋予的权限,然后调用chmod指令即可,调用形式为:
chmod 新的权限 文件列表
chmod以字符形式改变文件权限
chmod +x test.sh
数学形式可以一次改变文件的所有三种身份的四种权限,而字符形式则更为灵活,可以给某个身份的某个权限单独进行设置,例如上面的指令就是给三种身份都赋予执行的权限,你也可以分开单独
设置:
chmod u+x test.sh 只给拥有者加上可执行权限
chmod g+x test.sh 只给群组身份加上可执行权限
chmod o+x test.sh 只给其他人身份加上可执行权限
以上三条指令综合在一起等价于上面的那一条指令,都是给所有身份都开启可执行权限的功能,你也可以像下面这样来操作:
chmod a+x test.sh
这里的a就代表所有的3中身份!
如果要去掉某个身份的某个权限,只需要将+变为-即可,例如去除其他人身份的可执行权限:
chmod o-x test.sh
对于读取、写入等权限,按照以上方式多进行练习即可,chmod通过字符形式改变文件权限的操作见下表:
chmod u
g o
a
+(加上)-(减去)=(设定)
r w
x
文件或目录
最后再来个综合的示例,以后类似的问题举一反三即可:
chmod u=rwx,g+rx,o-x test.sh