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;
}
Run Code Online (Sandbox Code Playgroud)
我应该怎么做呢?
squ*_*tte 17
你将需要援助,并从系统管理员有很多的信任.普通用户无法代表其他用户运行他们选择的可执行文件.
她可以/etc/sudoers使用适当的设置添加您的应用程序,您将能够像以前一样运行它sudo -u nobody.这适用于脚本和二进制可执行文件.
另一种选择是,她会做chown nobody和chmod +s你的二进制可执行文件,你就可以直接执行它.每次可执行文件更改时都必须重复此任务.
如果您创建一个简单的辅助程序可执行文件,这也适用于脚本exec("/home/you/bin/your-application").这个可执行文件可以成为suid-nobody(见上文),你可以自由修改your-application.