我有这个脚本,用户可以在其中透明地使用 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:
这里需要注意几点:
- 为什么它甚至以两行开头?似乎第一个在 root 调用 passwd 时显示,第二个在他自己调用 passwd 时显示。可以作为解释的开始吗?
- 我需要从这些提示中过滤掉一些词。我想过使用 greps 和 seds 的组合,一个接一个地通过管道传输,但诀窍是:前两行似乎输出到 stdout,但其他行输出到 stderr。当我尝试将 stderr 重定向到 stdout 来处理它时,不再显示任何内容。
有没有人对这种情况有任何答案或提示?非常感谢。
(这里的第一个问题,所以不要犹豫,询问更多信息。)