我想在我的所有应用程序服务器上安装 gem,但是 gem install 需要 sudo 访问权限 - 我如何才能启用 sudo 仅用于运行此 capistrano 命令?
换句话说,我不希望在我的所有部署方案中都使用 sudo,就在我在命令行上调用此命令时。
我想在我的所有应用程序服务器上安装 gem,但是 gem install 需要 sudo 访问权限 - 我如何才能启用 sudo 仅用于运行此 capistrano 命令?
换句话说,我不希望在我的所有部署方案中都使用 sudo,就在我在命令行上调用此命令时。
找到它 - cap invoke COMMAND=" command that requires sudo " SUDO=1
我不太确定我是否理解这个问题,但我认为您是在问如何将 sudo 限制为一个特定的命令,而不必授予所有 Ruby 开发人员无限的恶作剧能力。
可以设置 /etc/sudoers 来限制允许用户以 root 身份调用的命令。它通常设置为 ALL,但您可以只提供允许的命令列表。
最好为此使用 unix ACL 或类似权限。授予部署用户 sudoer 访问权限,然后您可以调用run "sudo do_something"
,它将仅对该调用具有 sudo 级别的访问权限。