gpt4 book ai didi

Linux密码命令: formatting the ouput

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

我有这个脚本,用户可以在其中透明地使用 passwd 更改其密码。脚本本身由 root 执行,使用

启动它
su - <user> -c "script"

我知道启动脚本的方式可能不是很安全,但事实就是如此,我没有能力更改该部分。

我的问题是,当调用时,passwd 显示以下内容:

Changing password for user <user>.
Changing password for <user>
current (UNIX) password:
New UNIX password:
Retype new UNIX password:

这里需要注意的几点:

  1. 为什么它以两行开头?似乎第一个是在 root 调用 passwd 时显示的,第二个是在自己调用 passwd 时显示的。这可以作为解释的开始吗?
  2. 我需要从这些提示中过滤掉一些单词。我想过使用 grep 和 sed 的组合,一个接一个地通过管道传输,但这里有一个技巧:前两行似乎输出到 stdout,但其他行输出到 stderr。当我尝试将 stderr 重定向到 stdout 来处理它时,不再显示任何内容。

有人对这种情况有任何答案或提示吗?非常感谢。

(这里是第一个问题,因此请随时询问更多信息。)

最佳答案

尝试键入:

su - vartaghan -c passwd

进入命令行,然后将其与键控进行对比:

passwd

进入命令行。

答案就在那里。由于您使用 su 来实现该命令,因此需要输入密码,然后 passwd 命令变为事件状态,这需要再次输入密码。
您最好的选择是更改为您的用户运行的menu启动此密码更改shell的方式,只需发出passwd命令即可。

编辑:如果你想摆脱 I/O 使用类似:

(echo $1; echo $2; echo $2) | passwd &>/dev/null

这要求您以 myscript oldpassword newpassword 身份运行脚本

关于Linux密码命令: formatting the ouput,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32760328/

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