Linux
以程式方式更改密碼
在目前版本的 Raspian 中,我知道可以從命令行更改目前登錄使用者的密碼,如下所示:
sudo passwd
然後將提示使用者輸入新密碼兩次。這將產生如下輸出:
Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
我想知道是否有可能以程式方式更改密碼,例如從 shell 腳本。
我正在嘗試製作一個配置腳本以部署在我的 Raspberry Pi 上,我不想手動為它們輸入新密碼。
你正在尋找
chpasswd
命令。你會做這樣的事情:echo 'pi:newpassword' | chpasswd # change user pi password to newpassword
請注意,它需要以 root 身份執行,至少使用預設的 PAM 配置。但是對於系統部署腳本來說,以 root 身份執行可能不是問題。
此外,您可以通過向其提供多行輸入來一次處理多個使用者。
另一種選擇是
yes
在腳本中使用該命令。yes newpassword | passwd youruser
這將發送
newpassword
到passwd
命令 foryouruser
。應該提到的是,通過腳本設置/修改使用者密碼可能存在安全風險,應盡可能避免。
編輯:
此答案需要 root 訪問權限。很抱歉之前沒有提到這一點。這是我在執行需要 root 訪問權限的管理任務時使用的一種方法。