每一个进程,在打开文件时,系统都要检该程序是否拥有足够的权限来进行该操作。Effective UID决定了是否拥有此权限来进行该操作。而Real UID则是执行程序的用户的ID。
可以通过为程序设置 setuid root 的属性使一个 own 为 root 的程序可以由所有用户执行,而不需要其他的权限。从而可以使该程序读写需要root权限的文件,同时也可以使用SOCK_RAW.
为程序设置 setuid root 属性:
sudo chmod 4755 file
设置之后的 file 属性为:
-rwsr-xr-x
为程序设置 setgid root 属性:
sudo chmod 2755 file
设置之后的 file 属性为:
-rwxr-sr-x
清除程序的 setuid root 属性:
sudo chmod 0755 file