gpt4 book ai didi

linux - 与标准环境相比,在 Docker 中使用 'script' 的“su”返回不同的结果

转载 作者:太空宇宙 更新时间:2023-11-04 11:49:07 25 4
gpt4 key购买 nike

我需要通过 su 请求某些命令,包括一行中的密码。我找到了一个解决方案,它在标准环境 (Ubuntu) 中工作(更多关于解决方案 here ):

{ sleep 1; echo password; } | script -qc 'su -l user -c id' /dev/null | tail -n +2

但是我遇到的问题是这个方案不适合Docker容器环境

Script 在不等待 echo 的情况下终止命令,结果我得到:

su: Authentication failure

非常感谢任何帮助。

最佳答案

通过 stdin 传递 su 的密码是有问题的,原因有很多:最大的一个可能是你的密码最终会出现在历史记录中。

你可以改为:

  • 以特定用户身份调用整个脚本,从而手动输入密码
  • 将 sudo 与适当的 NOPASSWD sudoers 配置结合使用
  • 在您的情况下,您使用的是 docker,因此您可以在 Dockerfile 中设置 USER

关于linux - 与标准环境相比,在 Docker 中使用 'script' 的“su”返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56611103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com