我有一个简单的bash脚本,作为普通用户运行良好。 从postfix启动时,它以nobody身份运行:没有人阻止许多命令的工作。
脚本可能在运行时更改为另一个用户帐户,以允许其他程序运行?
谢谢
您将需要configurationsudo以便您可以运行一个特定的命令作为nobody将作为另一个用户运行。
通常,像(在你的sudoers文件中):
nobody ALL=(userTheScriptShouldRunAs) NOPASSWD: /home/userTheScriptShouldRunAs/test.sh
然后,让你的脚本执行:
sudo -u userTheScriptShouldRunAs /home/userTheScriptShouldRunAs/test.sh
您可以使用setuid位设置程序的权限:
chown usertorunas文件名
chmod ug + s文件名
这将使它作为拥有该文件的用户运行。
但是,@Jay提醒了我,它不适用于脚本。 要以不同的用户身份运行脚本,您需要制作一个如下所述的小程序,该程序可以设置为setuid,然后调用脚本。