2010-01-13 7 views
6

busybox ve openssl yüklü bir sistemde bir kullanıcı hesabını ve parolayı harici bir kaynağa eşitlemem gerekiyor. Harici kaynak sistemimin kimlik bilgilerini güncellemesini istediğinde, bir komut dosyasında kullanıcının şifresini nasıl değiştirebilirim? Şifreyi düz metinde alacağım.Bir kullanıcı şifresini meşgul kutusu ve openssl ile bir komut dosyasında nasıl değiştirirsiniz?

Bu işlem otomatikleştirilmeli ve busybox'a geçiş yapabildiğimden passwd etkileşimli ve özellikle mümkün ise, passwd için bir bekletme tipi komut dosyası yazmak istemiyorum. Openssl password hashes (openssl passwd -1 -salt "abcdefgh" {password}) oluşturabilir, ama/etc/shadow'i doğrudan değiştirmek zorunda mıyım?

Busybox'da these adete kadar komut bulunmaktadır.

cevap

6

Parolayı güncellemek için böyle küçük bir komut dosyası yazabilirsiniz. Aşağıdaki metni bir dosyaya koyun ve çalıştırın. Şifreni değiştirecek.

#!/Bin/sh
passwd < < EOF
< eski şifre >
< yeni şifre >
< yeni şifre >
EOF

5

BusyBox güncel versiyonları chpasswd (source code) sahip çıkıyor. chpasswd, kolon ayrılmış bir kullanıcı adı alır: stdin'de parola. Meşgul kutumu sistemimde güncelleyip güncelleyemediğimi bilmiyorum ama başka birinin gelmesi durumunda bu cevabı bırakacağım.

chpasswd 
chpasswd [--md5|--encrypted] 

Read user:password from stdin and update /etc/passwd 

Options: 

     -e,--encrypted Supplied passwords are in encrypted form 
     -m,--md5  Use MD5 encryption instead of DES 
: busybox belgelerine

İlgili konular