我可以 运行 一个包含 setuid() 而没有 sudo 的 C 程序吗?
Can I run a C program containing setuid() without sudo?
我正在尝试从多个用户执行 C 程序,并尝试以程序中的其他用户身份登录以访问文件。但是我收到错误
setuid: Operation not permitted
我可以做一些不需要每次都使用 sudo 的事情吗?比如,授予程序的完全访问权限以根据需要使用 setuid 而无需每次都调用 sudo?
您只需使用 chmod
:
在程序的可执行文件本身上使用 setuid
sudo chmod u+s executable
根据系统和您在其中的权限,您可以将程序的所有者或组更改为具有 setuid 权限的人,然后设置 setuid 或 setgid 通过 chmod
:
在可执行文件上的模式
chgrp wheel my-awesome-program
chmod g+s my-awesome-program
或
chown superduperuser my-awesome-program
chmod u+s my-awesome-program
请注意,这样做会造成潜在的安全漏洞。如果有人可以覆盖您的程序,他们就可以使用它来获得特权。请谨慎执行此操作。
我正在尝试从多个用户执行 C 程序,并尝试以程序中的其他用户身份登录以访问文件。但是我收到错误
setuid: Operation not permitted
我可以做一些不需要每次都使用 sudo 的事情吗?比如,授予程序的完全访问权限以根据需要使用 setuid 而无需每次都调用 sudo?
您只需使用 chmod
:
setuid
sudo chmod u+s executable
根据系统和您在其中的权限,您可以将程序的所有者或组更改为具有 setuid 权限的人,然后设置 setuid 或 setgid 通过 chmod
:
chgrp wheel my-awesome-program
chmod g+s my-awesome-program
或
chown superduperuser my-awesome-program
chmod u+s my-awesome-program
请注意,这样做会造成潜在的安全漏洞。如果有人可以覆盖您的程序,他们就可以使用它来获得特权。请谨慎执行此操作。