使用 sudo 时询问其他用户的密码

使用 sudo 时询问其他用户的密码

我在 Ubuntu 15.04 服务器上运行了一个名为 HomeSeer 的家庭自动化软件包。我已将其配置为使用服务帐户(称为“_homeseer”)运行,并且已将应用程序目录更改为 _homeseer:_homeseer。

要安装此软件包的更新,我下载了一个 tar.gz 文件,然后运行供应商提供的“update.sh”脚本。此脚本会提取压缩文件,而该文件恰好也会覆盖其自身(update.sh)... 所以我想我不能直接更改该脚本,除非我将其复制到某个单独的文件夹中。

作为 update.sh 的一部分,有一行调用“sudo update_extra.sh”。由于我以服务帐户身份运行 update.sh,因此此 sudo 行会提示输入服务帐户的密码...我不记得了(也不认为我想记得)。

我不想在没有密码的情况下授予该帐户完全 sudo 权限,因为这将带来重大安全风险(例如,该应用程序运行 Web 服务器)。我也不太愿意授予它完全 sudo 权限以 root 身份运行该 update_extra.sh 文件,因为该文件可以由同一个服务帐户更新。

我的问题:

是否可以配置 sudo(即 visudo),这样如果 _homeseer 帐户尝试使用 sudo,它会提示我输入个人帐户的密码,并使用我拥有的 sudo 权限运行?如果可以避免,我宁愿不设置 root 密码……但初步看来,如果我想走这条路,我可能别无选择。

或者我是否需要修改该 update.sh 脚本,配置组权限,以便我可以以自己的身份应用更新,然后将其 chown 到服务帐户?

答案1

您可以使用 sudo 来处理这个问题。

如果你将其添加到你的 sudoers 文件中:

_homeseer hostname = (_homeseer) NOPASSWD: /path/to/update.sh
  • 主机名hostname=您的机器上的输出。

需要注意的一点是,没有 100% 安全的方法来处理 update.sh,因为它可能包含任何命令,并且我假设它会随着时间而改变,这意味着您不能使用 HASH 函数来确保脚本与以前相同。

相关内容