我想通過shell腳本更改Unix用戶的密碼,但未提示輸入舊密碼。如何在不提示的情況下創建shell腳本來更改密碼?
這意味着我想在shell腳本中提供舊密碼和新密碼,以便在提示期間它將從腳本文件中讀取它。
我想通過shell腳本更改Unix用戶的密碼,但未提示輸入舊密碼。如何在不提示的情況下創建shell腳本來更改密碼?
這意味着我想在shell腳本中提供舊密碼和新密碼,以便在提示期間它將從腳本文件中讀取它。
$> echo -n "oldpasswd\nnewpasswd\nnewpasswd" | passwd
或者爲了讓事情更清潔的方式,寫一個文件,你的密碼
oldpassword
newpassword
newpassword
和$> passwd < file
管道和重定向操作符與任何內容替換標準輸入的文件重定向,要麼是管道命令的輸出。
你應該看看chpasswd
命令(如果你的Linux的味道可用):
echo 'userid:newpasswd' | chpasswd
或者,你可以貓文件中列出用戶名:passwd文件用於在單獨一行每個帳戶。
就是這樣。
這真的有用嗎?我在'passwd'程序讀取'/ dev/tty'而不是標準輸入的幻象之下,因此重定向標準輸入沒有任何意義。爲了解決這個問題,你通常使用['expect'](http://expect.sourceforge.net/)程序,該程序安排程序以'/ dev/tty'連接到僞tty或「期待」的'pty'可以通過編程方式驅動。 –
更改用戶x的密碼 舊密碼:sh:-n:未找到。 這是運行此命令時出錯並進入暫停模式 –