Linux通過Shell指令碼命令修改密碼不需要互動

crxis發表於2018-05-23

互動方式修改密碼

1. ssh 遠端到主機;

2. 切換到root賬號;

[一般都是切換到root進行密碼修改,如果普通使用者修改自己的密碼,要輸入原密碼,然後新密碼要滿足複雜度才OK];

3. passwd username

使用passwd username 修改 username 的密碼;
使用該命令會有提示,即進入了互動介面,輸入密碼即可。

使用指令碼修改密碼

很多時候我們可能需要遠端執行伺服器上的指令碼來修改賬號密碼,此時就沒有辦法進行互動了。
此時可以使用如下兩種方式修改密碼:

方式1:

echo "password" | passwd testuser --stdin > /dev/null 2>&1

方式2:

echo testuser:password|chpasswd

注:

  1. 密碼字串的雙引號,可有可無,見上面 方式1 和 方式2 的例子

  2. 如果密碼中包含 $ 字元,需要使用反斜線進行轉義,如:

echo testuser:password$|chpasswd

相關文章