Linux

以程式方式更改密碼

  • June 11, 2020

在目前版本的 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

這將發送newpasswordpasswd命令 for youruser

應該提到的是,通過腳本設置/修改使用者密碼可能存在安全風險,應盡可能避免。

編輯:

此答案需要 root 訪問權限。很抱歉之前沒有提到這一點。這是我在執行需要 root 訪問權限的管理任務時使用的一種方法。

引用自:https://unix.stackexchange.com/questions/197448