jld*_*ger 10 c linux security ubuntu
我希望用户特权(非root)进程以用户身份启动新进程nobody.我已经尝试过直接调用,setuid但是在-1 EPERM上失败Ubuntu 8.04:
#include <sys/types.h>
#include <unistd.h>
int main() { 
       setuid(65534);
       while (1);
       return 0;
}
我应该怎么做呢?
squ*_*tte 17
你将需要援助,并从系统管理员有很多的信任.普通用户无法代表其他用户运行他们选择的可执行文件.
她可以/etc/sudoers使用适当的设置添加您的应用程序,您将能够像以前一样运行它sudo -u nobody.这适用于脚本和二进制可执行文件.
另一种选择是,她会做chown nobody和chmod +s你的二进制可执行文件,你就可以直接执行它.每次可执行文件更改时都必须重复此任务.    
如果您创建一个简单的辅助程序可执行文件,这也适用于脚本exec("/home/you/bin/your-application").这个可执行文件可以成为suid-nobody(见上文),你可以自由修改your-application.
| 归档时间: | 
 | 
| 查看次数: | 18740 次 | 
| 最近记录: |