chmod +s后,可以对可执行文件升级权限。
chmod u+s,即setuid,让执行该命令的用户以该命令拥有者的权限去执行;
chmod g+s,即setgid,即让执行文件的用户以该文件所属组的权限去执行;
1.需要注意的是,加了以上权限以后,并不意味着other用户即拥有了执行该文件的权限。
以上图为例,a.out属于root用户,dds用户并不具有可执行权限,即使加了s位,dds用户仍然无法执行a.out。加了s位用于“提升”已有的权限,即需要本身具有x权限的情况下,提升至root权限执行。如下图所示,dds用户可以执行a.out。
2.在提升权限的过程中,原来用户感知到的环境变量会失效。这里设给dds的环境变量,在提升到root以后不生效。由此可能引发一些执行失败的问题,可以考虑这方面原因。