在Ruby脚本中保持sudo活着

时间:2017-06-20 08:37:07

标签: ruby shell

有没有办法在Ruby脚本中保持sudo活着?即我可以要求用户在脚本的持续时间内输入一次他们的sudo密码吗?

在bash中,您可以这样做:

while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &

信用:Cowboy

2 个答案:

答案 0 :(得分:0)

有两种情况,这两种情况都不需要您对凭据或授权进行任何程序内缓存:

  1. 用户可以使用sudo运行任意程序。

    只需要使用sudo运行脚本,而不是在脚本中调用sudo。假设最糟糕的是,您的用户无论如何都会这样做。

  2. 用户只能使用sudo运行某些程序。

    在这种情况下,可以假定允许用户使用sudo运行脚本所需的命令,而不是脚本本身。任

    a)您可以让系统管理员进一步配置sudo以允许用户在没有密码的情况下运行这些命令,或者

    b)系统管理员将进行更改,在这种情况下,您不应该绕过该决定。

  3. 在任何情况下,sudo确定何时或是否需要密码都不是您的计划工作。

答案 1 :(得分:-1)

最好的方法就是这样做,我的意见如下:

  1. 向系统添加新用户
  2. 添加到轮组
  3. 授予perms使用sudo而无需密码
  4. sudo visudo
  5. 用户名ALL =(全部)NOPASSWD:所有#change here"用户名"到新用户名
  6. 向新用户授予此权限是有风险但有效的。