在Ruby脚本中保持sudo的活力

在Ruby脚本中保持sudo的活力,ruby,shell,Ruby,Shell,有没有办法让sudo在Ruby脚本中保持活力?也就是说,我可以要求用户在脚本期间输入他们的sudo密码一次 在bash中,您可以执行以下操作: 为true时;做sudo-n-true;睡眠60;杀死-0“$$”| |退出;完成2>/dev/null& 信用证:有两种情况,都不需要您在程序中缓存凭据或授权: 用户可以使用sudo运行任意程序 只需要使用sudo运行脚本,而不是在脚本内部调用sudo。假设最坏的情况是,您的用户无论如何都会这样做 用户只能使用sudo运行某些程序 在这种情况下,可以假

有没有办法让sudo在Ruby脚本中保持活力?也就是说,我可以要求用户在脚本期间输入他们的sudo密码一次

在bash中,您可以执行以下操作:

为true时;做sudo-n-true;睡眠60;杀死-0“$$”| |退出;完成2>/dev/null&


信用证:

有两种情况,都不需要您在程序中缓存凭据或授权:

  • 用户可以使用
    sudo
    运行任意程序

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

  • 用户只能使用
    sudo
    运行某些程序

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

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

    b) 系统管理员不会做出更改,在这种情况下,您不应该回避该决定


  • 在任何情况下,您的程序的任务都不是决定何时或是否需要为
    sudo

    输入密码。有两种情况都不需要您在程序内缓存凭据或授权:

  • 用户可以使用
    sudo
    运行任意程序

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

  • 用户只能使用
    sudo
    运行某些程序

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

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

    b) 系统管理员不会做出更改,在这种情况下,您不应该回避该决定


  • 在任何情况下,决定
    sudo

    何时或是否需要密码都不是程序的工作。请记住,每次执行系统命令时,都是在单独的子shell中执行。我想在很多情况下,需要提升权限的脚本会与sudo一起运行,例如,
    sudo script.rb
    ,而不是尝试在脚本中执行某些操作。我强烈建议不要这样做。这将意味着可能出现安全漏洞,出现问题的可能性很大@TomFenech也是正确的。请记住,每次执行系统命令时,都是在单独的子shell中执行。我想在很多情况下,需要提升权限的脚本会与sudo一起运行,例如,
    sudo script.rb
    ,而不是尝试在脚本中执行某些操作。我强烈建议不要这样做。这将意味着可能出现安全漏洞,出现问题的可能性很大@TomFenech也是正确的。