代码之家  ›  专栏  ›  技术社区  ›  Sławosz

将sudo密码作为变量存储在脚本中-安全吗?

  •  11
  • Sławosz  · 技术社区  · 14 年前

    这样储存密码安全吗?

    echo 'Write sudo password (will not be displayed) and hit enter'
    read -s password
    

    echo $password | sudo -S apt-get install -y foo bar
    
    4 回复  |  直到 14 年前
        1
  •  12
  •   Dirk is no longer here    14 年前

    不,因为你可以通过 /proc/$PID/cmdline .

    我建议不要尝试重新发明安全工具。这个 sudo

        2
  •  11
  •   fseto    14 年前

    更好的方法是编辑sudoers文件并添加不需要密码的程序。。。

    sudo visudo 并添加以下内容以使您的管理组能够运行apt get w/o password: %admin ALL = NOPASSWD: /usr/bin/apt-get

        3
  •  6
  •   Heinzi    14 年前
    echo $password | sudo -S apt-get install -y foo bar 
    

    这有点危险。如果用户已经通过sudo的身份验证,sudo将不会再次请求密码,它将被转发到apt get,这可能会导致奇怪的结果(例如,如果postinstall脚本询问问题)。我建议用

    sudo -k                         # remove previous sudo timestamp
    echo $password | sudo -v -S     # create a new one for 15 minutes
    sudo apt-get ...                # execute the command
    

    编辑:德克是正确的密码是可见的很短的一段时间 echo

        4
  •  -2
  •   CSpangled    14 年前

    sudo open source ,因此您可以编译自己的版本,该版本将密码作为命令行参数。

    推荐文章