chpasswd 批量更新用戶口令


chpasswd - update passwords in batch mode

  • chpasswd 是一個批量更新用戶口令的命令
  • chpasswd 會從標准輸入批量讀取成對的用戶名和密碼,並使用這些信息來更新現有的一組
    用戶
  • 從標准輸入讀取的每行數據格式應為 username:password 即用戶名和密碼用冒號分隔開
  • 默認情況下所提供的密碼必須是明文,並通過chpasswd進行加密
  • chpasswd 首先在內存中更新密碼,在沒有任何錯誤的情況下才會將更改的密碼更新到磁盤中
  • chpasswd 的應用場景主要是在一個比較大的系統環境下,同一時間創建了多個用戶的情況
  • 默認的加密算法可以通過修改/etc/login.defs中ENCRYPT_METHOD變量的值(默認值SHA512),可以通過-e,-m,-c選項覆蓋默認的加密算法

常用選項如下:

-c 使用指定的方法來加密密碼,可用的方法是DES、MD5、NONE、SHA512(前提是你的系統支持這些加密算法)
-e 輸入的密碼是加密后的密碼
-m 當提供的密碼沒有加密時,使用MD5代替DES加密
-s 使用指定的rounds數值加密密碼(SHA加密算法)
  • 如果指定的數值為0將使用默認的rounds數值5000
  • 數值的范圍在1000到999999999之間
  • 可以使用-s參數跟上SHA256或SHA512
  • 默認的最小和最大rounds定義在/etc/login.defs文件的SHA_CRYPT_MIN_ROUNDS和SHA_CRYPT_MAX_ROUNDS變量中
    配置說明:下面列出的所有配置項都可以通過修改/etc/login.defs中的配置來生效
ENCRYPT_METHOD 該值定義了chpasswd默認的加密算法,該變量的值可以定義為:DES(默認)、MD5、SHA256、SHA512
SHA_CRYPT_MIN_ROUNDS 當ENCRYPT_METHOD的值定義為SHA256或SHA512時,將使用該變量的值作為SHA加密算法的最小rounds值
SHA_CRYPT_MAX_ROUNDS 當ENCRYPT_METHOD的值定義為SHA256或SHA512時,將使用該變量的值作為SHA加密算法的最大rounds值
  • SHA_CRYPT_MIN_ROUNDS 和 SHA_CRYPT_MAX_ROUNDS 默認沒有在/etc/login.defs文件中定義,一旦定義將被采用,如果沒有定義則使用5000作為默認的rounds值
  • SHA_CRYPT_MIN_ROUNDS 和 SHA_CRYPT_MAX_ROUNDS的取值范圍為1000-999999999
  • 如果SHA_CRYPT_MIN_ROUNDS > SHA_CRYPT_MAX_ROUNDS,將取SHA_CRYPT_MIN_ROUNDS的值作為默認rounds值

基本使用:

[root@prenv ~]# useradd chtest
[root@prenv ~]# chpasswd
chtest:123456
[root@prenv ~]# echo "chtest:123456" > passwd.txt
[root@prenv ~]# chpasswd < passwd.txt 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM