如何使用echo
将一些输入传输到需要用户输入两次的程序中?
例如
echo "somepassword"|passwd someuser
创建此错误消息
Enter new UNIX password: Retype new UNIX password: passwd: Authentication token manipulation error
passwd: password unchanged
因为我没有重新输入密码
答案 0 :(得分:10)
您需要发送两次密码:
(echo 'somepassword'; echo 'somepassword') | passwd someuser
答案 1 :(得分:0)
作为root你可以尝试
echo "somepasswored" | passwd someuser --stdin
- 标准输入 此选项用于指示passwd应读取新内容 标准输入的密码,可以是管道。
如果您不是root用户,那么您应该无法更改其他一些用户密码。如果您真的想要完成提供2个密码的整个业务,那么期望是一个很好的工具。
答案 2 :(得分:0)
也可以这样做
echo -e "currentPassword\nNewPassword\nNewPassword" | passwd
-e将使echo实际上使用换行符,而不仅仅是打印\ n 此选项适用于需要新密码之前的当前密码的情况 如果不需要当前密码,则可以省略。
echo -e "NewPassword\nNewPassword" | passwd
我也同意这对多用途/公用计算机是不好的做法,但是如果您知道自己在做什么,并且有充分的理由,这是可行的。