[英]Why do I need setuid(0) within a setuid-root C program that calls an administrative program with system()?
[英]Can I run a C program containing setuid() without sudo?
我试图从多个用户执行一个C程序,并尝试以程序中的其他用户身份登录以访问文件。 但我收到了错误
setuid:不允许操作
我可以做一些我不需要每次都使用sudo的东西吗? 比如,在没有每次调用sudo的情况下完全访问程序以使用setuid
根据系统及其中的权限,您可以将程序的所有者或组更改为具有setuid权限的程序,然后通过chmod
在可执行文件上设置setuid或setgid模式:
chgrp wheel my-awesome-program
chmod g+s my-awesome-program
要么
chown superduperuser my-awesome-program
chmod u+s my-awesome-program
请注意,通过这样做,您可以创建一个潜在的安全漏洞。 如果有人可以覆盖您的程序,他们可以使用它来获取权限。 谨慎行事。
你只需要使用chmod
在程序的可执行文件上使用setuid
:
sudo chmod u+s executable
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.