文件的特殊权限SGID, SUID..SBIT
大家都知道文件和目录的权限最常见的有三个.可读(r)..可写(w)..可执行(x)..它们的级别分别是4..2..1..我们有时也会发现有些文件 所属主的权限上带有一个s的标志位.目录的所属组上也带有s标志位.很多人不理解这是为什么....下面我们举例来看一下...
#ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 19876 Jul 17 2006 /usr/bin/passwd
这个文件的所属主的x标志位上变成了s,这时称为set uid ..简写就是suid..其实这个文件属性也没有特殊的含义..当这个s标志位出现在一些脚本上时,它就有意义了...比方说我我们有一个脚本名为sum.sh.这个脚本的权限如下:
-rwsrwxr-x 1 root root 117 Feb 6 20:46 sum.sh
这个脚本的所属主和所属组为root.我们当然可以以root的用户的身份执行它..我们还可以看见它的所属主的标志位上有个s..其他人有读取和执行的 权限.假如我们现在有个普通用户名为redhat..现在切换到redhat..执行此脚本..表面上我们看是执行成功了..其实我们是借助root用户 的身份来执行它..而不是redhat..这就是suid的特性....
下满我们来说下SGID,看了上面的SUID后很容易就知道所谓SGID就是将标志s加到gid的x标志位上..称为set gid.简称sgid..在这强调一下SUID我们一般用在文件上.特别是一些脚本上...SGID用在目录上最多...比方说我以root身份创建一个 目录a.给他加上sgid权限
#mkdir a
#chmod 2757 a
#ls -l
drwxr-srwx 2 root root 4096 Feb 6 21:09 a
因为我们给a目录其他人所具有的权限是可读,可写,可执行...当我们以redhat用户的