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