2014-05-23 40 views
1

如何使用echo将某些输入管道输入到需要用户输入两次的程序中?使用管道将输入传递到passwd中

例如

echo "somepassword"|passwd someuser 

造成此错误消息

Enter new UNIX password: Retype new UNIX password: passwd: Authentication token manipulation error 
passwd: password unchanged 

,因为我没有重新输入的密码

+0

尝试使用'expect/auto-expect'我想你是合适的工具。 – PradyJord

+1

请不要这样做。该命令将存储在命令历史记录中。所有人都可以看到你的密码。 –

回答

5

您需要两次发送密码:

(echo 'somepassword'; echo 'somepassword') | passwd someuser 
0

作为根哟ü可以尝试

echo "somepasswored | passwd someuser --stdin 

--stdin 该选项用于指示passwd文件应该从标准输入读取新 密码,它可以是一个管道。

如果你不是root,那么你不应该能够改变一些其他用户的密码。如果您真的想完成提供2个密码的整个业务,期望是一个很好的使用工具。