我可以在没有sudo的情况下运行包含setuid()的C程序吗?

时间:2017-02-11 19:33:15

标签: c setuid

我正在尝试从多个用户执行C程序并尝试以程序中的其他用户身份登录以访问文件。但是我收到了错误

  

setuid:不允许操作

我可以做一些我不需要每次都使用sudo的东西吗?比如,给予程序完全访问权限以便随时使用setuid而不必每次都调用sudo?

2 个答案:

答案 0 :(得分:4)

根据系统及其中的权限,您可以将程序的所有者或组更改为具有setuid权限的程序,然后设置 setuid chmod执行可执行文件的> setgid 模式:

chgrp wheel my-awesome-program
chmod g+s my-awesome-program

chown superduperuser my-awesome-program
chmod u+s my-awesome-program

请注意,通过这样做,您可以创建一个潜在的安全漏洞。如果有人可以覆盖您的程序,他们可以使用它来获取权限。谨慎行事。

答案 1 :(得分:2)

您只需使用chmod在程序的可执行文件上使用setuid

sudo chmod u+s executable