在Linux中理解 Sticky-Bit,SUID和SGID

Sticky-Bit:
sticky bit 被用于指示文件和目录的特殊权限。如果启用了sticky bit 的目录中,将限制它里面的文件删除。它可以通过root,文件所有者或谁拥有它写权限被删除。这是有用的公开访问的目录如 /tmp 目录。
文件上 sticky bit 的执行情况:
方法1:
# chmod +t youcl.txt
# ls -l youcl.txt
-rw-r--r-T 1 root root 0 Mar  8 02:06 youcl.txt
Mothod 2:
# chmod 1777 youcl.txt
# ls -l youcl.txt
-rwxrwxrwt 1 root root 0 Mar  8 02:06 youcl.txt
在上面的输出显示它sticky bit 设置在申请许可字符t或T。小t代表执行权限也使和大写字母T代表执行权限未启用。
SUID(setuid):
如果SUID位设置上的文件,用户运行它。作为正在执行的文件的所有者的进程将拥有同样的权利。 例如 :passwd命令启用了SUID位。 当普通用户更改密码这个脚本更新一些系统文件,比如 /etc/passwd和/etc/shadow文件不能被非root账户更新。 这样 passwd命令过程中始终以root用户权限运行。
在文件SUID的执行情况:
方法1:
# chmod u+s youcl.txt
# ls -l youcl.txt
-rwsr-xr-x 1 root root 0 Mar  8 02:06 youcl.txt
方法2:
# chmod 4655 youcl.txt
# ls -l youcl.txt
-rwSr-xr-x 1 root root 0 Mar  8 02:06 youcl.txt
SGID(setgid)的: -
相同SUID,该方法将有正在执行的文件的同一组的权限。如果SGID位设置上的任何目录,里面创建的所有子目录和文件都将获得相同的组所有权为主要目录,它无关紧要谁创造的。
在目录SGID的执行情况:
# chmod g+s /test/
# ls -ld /test
drwxrwsrwx 2 root root 4096 Mar  8 03:12 /test
现在,务必给其他用户,并创建/test 目录中的文件。
# su - youcl
$ cd /test/
$ touch youcl.com.txt
$ ls -l youcl.com.txt
-rw-rw-r-- 1 youcl root 0 Mar  8 03:13 youcl.com.txt
在上面的例子中youcl.com.txt与根组所有权创建。 感谢您阅读这篇文章,我希望它会帮助你了解在Linux中sticky位,suid和SGID。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏