我有一个程序,当收到电子邮件时,它会通过使用 /etc/aliases 调用该程序。到目前为止,让 sendmail 执行此程序的唯一方法是将 setuid 位设置为 root。即使对另一个组设置了读取/执行权限,sendmail 仍无法执行我的程序,除非将 setuid 位设置为 root。
我发现 sendmail 在 Solaris 10 上以守护进程用户身份运行。
我想避免在我的可执行文件上使用 setuid root,并让 sendmail 执行我的程序。我在正确设置权限时是否遗漏了什么?
答案1
二进制 setuid 是根还是 setuid“守护进程”?
尝试将二进制文件的所有者更改为“守护进程”。根据文档,这可能有效(强调添加);
当对可执行文件设置 setuid(设置用户标识)权限时,运行此文件的进程根据文件所有者授予访问权限(通常是 root)而不是创建进程的用户。此权限使用户可以访问通常只有所有者才能访问的文件和目录。
@Daywalker 如上所述,“ sudo
”不随 Solaris 10 提供。但是有“ pfexec
”(c0t0d0.org 上的快速操作方法)