想象一下,由舊的crypt crypt DES哈希組成的NIS用戶數據庫/var/yp/input-files/passwd
。目標是將此數據庫遷移到md5或散列哈希。當使用yppasswd
更改密碼時,它使用與現有條目相同的算法(可能出於遺留原因)生成,即crypt保留crypt,md5保留md5。NIS yppasswd哈希從crypt到md5的遷移
我們目前的計劃是編寫一個包裝yppasswd的特殊密碼更改腳本。有沒有更好的方法來告訴yppasswd默認生成md5格式的密碼?
想象一下,由舊的crypt crypt DES哈希組成的NIS用戶數據庫/var/yp/input-files/passwd
。目標是將此數據庫遷移到md5或散列哈希。當使用yppasswd
更改密碼時,它使用與現有條目相同的算法(可能出於遺留原因)生成,即crypt保留crypt,md5保留md5。NIS yppasswd哈希從crypt到md5的遷移
我們目前的計劃是編寫一個包裝yppasswd的特殊密碼更改腳本。有沒有更好的方法來告訴yppasswd默認生成md5格式的密碼?
我想通了現在:
apt-get source nis
。int has_md5_passwd = 1;
在int main (int argc, char **argv)
yppasswd年初更換int has_md5_passwd = 0;
則始終創建MD5哈希值。
最近的Linux發行版通過PAM支持NIS密碼更新,這意味着您可以使用本地passwd
程序而不是yppasswd
。這也意味着您可以配置散列算法,該算法仍然(如yp-tools 2.12)不可能與yppasswd
一起使用。
您的系統應該有一個/etc/pam.d/passwd
文件,要麼含有,或者更可能的是,指的是包含一行形式的另一個文件:
password sufficient pam_unix.so md5 nis
第二場可能會有所不同,而有可能是其他參數在最後,但你要加載的password
線pam_unix.so
,它應該至少具有nis
參數以及適用於您的NIS服務器(md5
,sha256
等)
您的分佈可能哈希函數HAV儘管如此,更好的配置方式是確保您的更改不會被稍後的自動化過程覆蓋。
在RedHat派生系統(至少包括RHEL,CentOS,Scientific Linux和Fedora)上,您至少需要使用authconfig
程序--enablenis
參數。對於MD5哈希值以上的情況下,下面的命令行就足夠了:
authconfig --enablenis --usemd5 --update
在Debian系統(也可能是Debian的衍生品,但我不能在此刻檢查),要做到這一點似乎有道將/usr/share/pam-configs/unix
複製到別的東西(比如/usr/share/pam-configs/nis
),編輯新文件以給它適當的設置和新的配置文件名稱,然後運行pam-auth-update
,禁用「Unix身份驗證」配置文件並啓用新的配置文件。
這並不完全適用於yp-tools 2.12中的yppasswd。如果你走這條路線,你需要在'main'的頂部設置'int hash_id = MD5;'並註釋掉'hash_id = get_hash_id(pwd-> pw_passwd);'後面的行。 – asciiphil 2013-01-25 20:35:30