在 bash 脚本中更改用户

在 bash 脚本中更改用户

我有一个简单的 bash 脚本,以普通用户身份运行良好。从 postfix 启动时,它以 nobody:nobody 身份运行,导致许多命令无法运行。

脚本是否可以在运行时更改为另一个用户帐户,以允许这些其他程序运行?

谢谢

答案1

您需要进行配置sudo,以便可以以nobody另一个用户身份运行特定命令。

通常,类似于(在您的sudoers文件中):

nobody ALL=(userTheScriptShouldRunAs) NOPASSWD: /home/userTheScriptShouldRunAs/test.sh

然后,执行你的脚本:

sudo -u userTheScriptShouldRunAs /home/userTheScriptShouldRunAs/test.sh

答案2

您可以使用以下方式设置程序的权限设置用户标识少量:

chown 用户或文件名

chmod ug+s 文件名

这将使其以拥有该文件的用户身份运行。

但是,正如@Jay提醒我的那样,它不适用于脚本。要以其他用户身份运行脚本,您需要制作一个小程序正如这里解释的那样它可以设置为 setuid,并调用你的脚本。

相关内容