非交互式修改root密碼
使用Passwd工具的時候就發(fā)現(xiàn)問題了,這個程序需要接受一個用戶名作為參數(shù)的同時還需要輸入兩遍新密碼,那我們應該如何做呢。下面是學習啦小編收集整理的非交互式修改root密碼,希望對大家有幫助~~
非交互式修改root密碼
工具/原料
Xshell或者其他的終端工具或者Console控制臺
OpenWRT或其他Linux系統(tǒng)
方法/步驟
這里是 交互方式 修改用戶密碼,使用 passwd 命令,輸入兩次相同的密碼即可修改成功。
(注意:為了保護用戶密碼安全,輸入的內(nèi)容不回顯的)
我們進行第一次嘗試,嘗試傳遞密碼給passwd,格式是:
passwd 用戶名 新的密碼
結(jié)果顯而易見,沒有成功。
然后使用 echo + 管道的方式進行傳遞,結(jié)果仍然失敗。
這時候我們使用萬能的 xargs 參數(shù)傳遞函數(shù),仍然不能工作。
這一次嘗試傳遞更完整的參數(shù),分別傳遞內(nèi)容是:
?、儆脩裘?/p>
?、谛碌拿艽a
?、坌碌拿艽a的確認
這時候我們嘗試連續(xù)echo兩次新的密碼給passwd工具,發(fā)現(xiàn)因為傳輸速度過快,導致passwd第二次沒有收到參數(shù),認為兩次輸入不一致,修改不成功。到了這里相信您應該想到辦法了吧。
總結(jié)了上面的所有的失敗案例之后,我們終于想到了,在兩次輸出之前使用sleep函數(shù)進行中間停頓,然后再次輸出第二個參數(shù),于是修改成功了。
結(jié)論是:(echo "newpasswd";sleep 1;echo "newpasswd) | passwd > /dev/null
非交互式修改root密碼相關文章: