首先,操作的用戶必須是root,隻有root才有passwd執行的權限
通常,linux系統修改用戶密碼都使用命令 passwd user 來修改密碼,但這樣就進入了交互模式了,沒辦法更好的适用與shell腳本修改密碼或者是批量修改密碼,除非使用expect 這種第三方軟件來實現,對于僅僅是修改密碼這麼一件簡單的事情來說,并不是一個好辦法,下面将列舉2種比較常見的處理方式更好的處理這需求:
第一種:使用echo和--stdin實現密碼輸入
echo "123456" | passwd --stdin root
優點:方便快捷
缺點:
1,安全問題:這種方式會在history留下密碼信息,可被别人查詢到。
2,使用限制:如密碼帶有單引号或者雙引号這樣的特殊字符,将不被支持。
3,有些linux衍生版并不一定有--stdin這個參數。(如Debian/Suse)
第二種:使用chpasswd命令實現
首先将用戶名密碼一起寫入一個臨時文件.
cat pass.txt
root:root123
mysql:Bd1234
執行chpasswd讀取文件修改對應的用戶密碼:
chpasswd < pass.txt
優點:可以将用戶和密碼在一個文件裡面寫好,便于批量執行。
缺點:需要生成用戶密碼文件,明文存放,不安全
腳本修改密碼,僅依靠這種處理方式,并不是安全的,比較安全可選的是使用openssl生成随機密碼,将随即密碼賦值給用戶,并将随機密碼記錄下來,這部分腳本可到本人git空間下載
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!