【问题标题】:Passing su password in shell script在 shell 脚本中传递 su 密码
【发布时间】:2015-06-29 21:10:51
【问题描述】:

如何使用 su(没有 sudo 和除外)在 shell 脚本中传递密码? 我试过 echo "password" | su root -c 。但是没有用。

【问题讨论】:

  • 你疯了吗? 永远不要将 root 密码放在脚本中(或者在命令中使用它,就像它在 history 文件中捕获的那样)。那只是自找麻烦。在没有密码的情况下susudo 成为root 用户的正确方法是让自己成为wheel 组的成员,然后su 成为root 用户(提供密码),编辑sudo config visudo 并添加以下内容最后一行%wheel ALL = (ALL) NOPASSWD:ALL。然后你和wheel 组的所有成员可以susudo 而不会被提示输入密码。
  • 为什么会被否决?除了提出会暴露 root 密码的解决方案的策略错误之外,这是一个关于如何将密码通过管道传输到 su 实用程序的好问题。
  • A near-identical question on AskUbuntu 获得了 12 个赞和两个体面的赞的答案。
  • 另外,stackoverflow.com/questions/233217/… 几乎是重复的,但没有一个赞成的答案专门解决将密码传递给su 的问题(仅sudossh)。

标签: shell sudo su


【解决方案1】:

最好的方法是使用sudo,但由于您不想要最好的解决方案,您可以使用script 代替:

{ sleep 3; echo "yourpassword"; } | script -q -c 'su -c whoami' /dev/null

这将打印rootwhoami 的输出。

在尝试调整它以运行您自己的命令之前,请确保逐字尝试此命令(替换密码),因为调整它很困难且容易出错。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2011-04-20
    • 1970-01-01
    相关资源
    最近更新 更多