在Linux中,每个文件都有不同的权限。用户可以使用ls -l命令查看权限属性。其中,符号含义如下所示:
r:读权限。
w:写权限。
x:可执行权限。
-:没有权限。
s:SET位权限。
t:粘滞位权限。
例如,可执行文件ls的权限为-rwxr-xr-x。其中,第一个符号表示文件类型,-表示普通文件;后面分别为所有者权限、所属组的权限和其它用户权限。这里,表示ls文件的所有者权限为读、写和可执行;所属组的权限为读和可执行;其它用户权限为读和可执行。在一些文件权限属性后面,可能显示为点、加号或空格,如“-rw-rw-r--.”或“-rw-r--r--+”。其中,权限属性后面有点,表示该文件带有“SELinux的安全上下文”;权限属性后面标记为加号(+),表示使用了ACL(Access Control List)权限。如果文件权限后面附加一个空格,则表示系统没有可替换的访问控制措施。
文件的特殊权限有三种:1、suid2、sgid3、sticky,其中,suid和sgid用于累加提升权限,简单来说就是如果原来的用户可以访问,反而切换到的用户或者组不能访问,这时候照样是可以访问的,下面介绍下这三种权限。
SUID:
1、需要注意的是,只对二进制可执行程序有效,不能为普通文件
2、发起者对程序文件必须拥有执行权限
3、启动为进程之后,其进程的宿主为原程序文件的宿主
4、SUID设置在目录上毫无意义。
SGID:
可以应用在二进制文件和作用在文件夹下,当作用在二进制文件下时,作用和SUID相似,只不过SUID是把发起者临时变为文件的所有者,而SGID是把进程的发起者变成源程序文件的属组,默认情况下,用户创建文件时,其属组为此用户所属的主组,当SGID作用在目录下时,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组,通常用于创建一个协作目录。
Sticky:
默认情况下用户可以删除具有写权限的目录中的任何文件,无论该文件的权限或拥有权,如果在目录设置Sticky位,只有文件的所有者或root**可以删除该文件,Sticky位是作用在文件夹的,设置在文件上毫无意义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)