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