我做了如下的实验:

/usr/bin/vim的权限默认是(默认设置是nosuid和nosgid):

-rwsrwsrwx. 1 root root 1967072 Feb 17  2012 /usr/bin/vim


通过使用chmod 6777 /usr/bin/vim,可以将vim程序文件启用setuid和setgid。


当是nosuid和nosgid时,使用一个普通用户daniel运行vim时,进程的UID属性是普通用户daniel。

但当启用setuid和setgid后,使用一个普通用户daniel运行vim时,进程的UID属性变成了vim程序文件所有者root。

daniel     1561   1560  0 15:27 tty1     00:00:00 bash (bash是daniel)

root       1574   1561  0 15:27 tty1     00:00:00 vim   (但在daniel用户下运行的vim,其UID却是root)


以上就是setuid和setgid的作用。


参考链接:

http://blog.csdn.net/liuyuan_jq/article/details/1819085