Linux三个特殊权限setuid,setgid,stick bit

一个文件的权限一共有十位,第一位表示文件类型,其余九位每三个一组,分别代表文件拥有者权限,文件所属组权限,其他用户权限。在这三组权限中,每组分别存在一个特殊权限,就是SUID,SGID,STICKY BIT(针对目录)

(扫盲)文件类型:

-:表示一般文件

d:表示目录文件

l:表示链接文件

b:表示块文件

c:表示字符设备

p:表示管道文件

s:表示套接字文件

简单的来说

SUID:运行某程序时,相应进程的属主是程序自身的属主,而非进程启动者。

usage: chmod u+s file  若文件属主本身有x权限则显示s,否则显示S

SGID:运行某程序是,相应进程的属组是程序自身的属组,而非进程启动者

usage:chmod g+s file 若文件属组自身有x权限则显示s,否则显示S

STICKY:在一个公共目录,每一个用户都可以创建、修改、删除自己的文件,但不可以删除修改别人的文件。(root可以修改删除别人的)

usage:chmod o+t DIR 若文件其他权限中有x权限则显示t,否则显示T

例:以/etc/passwd和/usr/bin/passwd为例/etc/passwd的权限为 -rw-r--r--。也就是说:该文件的所有者拥有读写的权限,而用户组成员和其它成员只有查看的权限。我们知道,在系统中我们要修改一个用户的密码,root用户和普通用户均可以用“/usr/bin/passwd 用户名” 这个命令来修改这个/etc/passwd这个文件,root用户本身拥有对/etc/passwd的写权限,可以理解;那普通用户没有写权限,那他怎么也能修改呢?这里就用到了setuid,setuid的作用是让执行该命令的用户以该命令拥有者的权限去执行,就是普通用户执行passwd时会拥有root的权限,这样就可以修改/etc/passwd这个文件了。它的标志为:s,会出现在x的地方,例:-rwsr-xr-x  。而setgid的意思和它是一样的,即让执行文件的用户以该文件所属组的权限去执行。

你可能感兴趣的:(Linux三个特殊权限setuid,setgid,stick bit)