SUID浅析

当 s 这个标志出现在文件拥有者的 x 权限上时,此时就被称为 Set UID,简称为 SUID 的特殊权限。 那么SUID的权限对於一个文件的特殊功能是什么呢?基本上SUID有这样的限制与功能:

  • SUID 权限仅对二进位程序(binary program)有效;
  • 运行者对於该程序需要具有 x 的可运行权限;
  • 本权限仅在运行该程序的过程中有效 (run-time);
  • 运行者将具有该程序拥有者 (owner) 的权限。

这是出自《鸟哥的Linux私房菜》的一段解释,可是对于接触不久的新手来说仍然不知所云。当时我看完也不知道到底说了什么,也是之后才慢慢理解的。那么我就来提一个具体的应用场景:

我想用tcpdump对本机的的传输数据进行抓包,输入命令行

tcpdump -d host 127.0.0.1  

没有权限!!那咱们看一下tcpdump的权限是啥

ls -al /usr/sbin/tcpdump

普通用户具有 -xr-权限,没有写权限,按理来说也可以执行的啊!!

既然如此,那就用SUID解决它

sudo chmod u+s /usr/sbin/tcpdump

这样呢,普通用户在运行 tcpdump 的过程中,会『暂时』获得 root 的权限。这样呢,就可以愉快的抓包了。

因为SUID是针对 -x- 权限的,因此 cat 依然不能读取,因为 cat 不具有 SUID 的权限!

好了,以上就是对SUID应用场景的一点解释,希望大家有所收获。

参考文献:《鸟哥的Linux私房菜》

你可能感兴趣的:(Linux)