⽂件权限:普通(r、w、x)和特殊(s、t)
linux中,常常涉及到权限的问题。⽂件的权限有3组,owner,group,other,每⼀组都有rwx三种设置。r(4):可读;w(2):可写;x(1):可执⾏。我们在执⾏shell命令ls -l时,就会显⽰出⽂件的所有信息,第⼀组就是⽂件属性中的⾼级属性,权限。这⼀组总共有10格,每⼀格是⼀个bit。
第⼀个是特殊位:
d表⽰⽬录;
l表⽰连接⽂件;
-表⽰⽂件;
b表⽰为装置(device)⽂件中可供存储的接⼝设备;
c表⽰为装置⽂件中的串⾏端⼝设备(如键盘,⿏标);
s表⽰该⽂件是存放socket信息的,⼀般是给 process 之前⽤来进⾏ network socket 存取沟通使⽤的档案;
p表⽰数据输送⽂件(FIFO,pipe),它的主要⽬的是为了解决多个程序同时存取⼀个⽂件时所造成的错误。
以后的9个格⼦按照之前所说的3个组依次分配,给每个组设置读,写,执⾏权限。
修改文件权限的linux命令在这⾥要注意:如果你想开放⼀个⽬录,⼀定要确定X即可执⾏权限已经赋予了该⽤户或,否则是不可以读写的,也就是说,你给的r,w是没意义的。
⽂件权限的修改:
chmod:改变档案的属性、SUID等特性
⽤法:chmod [-R] 777 dir/filename (注:7=r+w+x;6=r+w;5=r+x;3=w+x)
chmod [-R] a+rwx dir/filename
chmod [-R] u-r dir/filename
chmod [-R] u=rwx,go=rx dir/filename
(注:a:所有⽤户和组;u:所有者;g:组;o:其他。+:添加权限;-删除权限;=赋予权限)
chgrp:改变档案的所属组
⽤法:chgrp [-R] group dir/filename
chown:改变档案所属⼈
⽤法:chown [-R] user dir/filename;
顺便还可以改变组
chown [-R] user:group dir/filename
除了这些⼀般权限外,我们还可以设置⾼级权限,也可以说是特殊权限:
SUID/SGID/Sticky Bit (档案特殊权限):
SUID (Set UID): 会制作出 s 的权限,权限数字是 4 。这个权限只能作⽤于可执⾏⽂件,不可作⽤于⽬录,shell script也不⾏。使⼀般使⽤者在执⾏⽂件时,暂时具有该⽂件拥有者的权限。
SGID (Set GID): 制作出 s 权限,权限数字是 2 。这个权限可以作⽤于⽬录和⽂件。作⽤于⽬录时,在该⽬录下建⽴的所有⽂件和⽬录的group都会是该⽬录的group;作⽤于⽂件时,则不论使⽤者是谁,在
执⾏该程序的时候,他的有效组 (effective group) 将会变成该程序的组所有⼈ (group id)。
Sticky Bit: 制作出 t 权限,权限数字是 1 。这个权限只能作⽤于⽬录。在该权限作⽤的⽬录⾥,如果使⽤者具有w,x权限,那么他所创建的⽂件和⽬录,只有档案的拥有者和root才能删除。
注意:在字符表⽰权限时,s和t是出现在x的位置的,意思是在可执⾏的⽂件和⽬录时,它们才是有意义的。如果⽂件或⽬录本⾝u、g或o就没有可执⾏权限,那么它所在的权限组出现的是S或者T,表⽰空的意思。⽤数字表⽰权限,就是在rwx前⾯加上4、2、1的组合就是了,如1777。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论