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

标签 c setuid

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

setuid: Operation not permitted

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

最佳答案

根据系统和您在其中的权限,您可以将程序的所有者或组更改为具有 setuid 权限的人,然后设置 setuidsetgid 通过 chmod 在可执行文件上设置模式:

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

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

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

关于我可以在没有 sudo 的情况下运行包含 setuid() 的 C 程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42180314/

相关文章:

python - 作为另一个用户使用 python 子进程时环境错误

linux - 使用 cgi-perl 脚本的无密码 SSH

c - GNU 科学图书馆,Power 函数效率

c - 为什么从数据集的/dev 源成功读取 errno?

c - FTP over tcp/ip atmega 8 位微 Controller 的分段和重组

c - setuid 程序的管道访问权限

multithreading - 是否可以切换应用程序线程的用户和组?

c - 如何处理 lex 的输出?

c - 我的函数 'sleep' 阻止其他进程

perl - 我可以设置一个 perl 脚本吗?