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

tar*_*110 4 c setuid

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

setuid:不允许操作

我可以做一些不需要每次都使用 sudo 的事情吗?比如,授予程序完全访问权限以按需要使用 setuid,而无需每次都调用 sudo?

agh*_*ast 5

根据系统以及您在系统中的权限,您也许可以将程序的所有者或组更改为具有 setuid 权限的所有者或组,然后通过以下方式在可执行文件上设置setuidsetgidchmod模式:

chgrp wheel my-awesome-program
chmod g+s my-awesome-program
Run Code Online (Sandbox Code Playgroud)

或者

chown superduperuser my-awesome-program
chmod u+s my-awesome-program
Run Code Online (Sandbox Code Playgroud)

请注意,这样做会造成潜在的安全漏洞。如果有人可以覆盖您的程序,他们就可以使用它来获得特权。请谨慎执行此操作。