/etc/shadowSanal makine görüntüsünün içindeki kök şifresini değiştirmek için el ile düzenlemem gerekiyor .
Parola alan ve /etc/shadowstandart çıktıda uyumlu bir parola sağlama üreten bir komut satırı aracı var mı?
/etc/shadowSanal makine görüntüsünün içindeki kök şifresini değiştirmek için el ile düzenlemem gerekiyor .
Parola alan ve /etc/shadowstandart çıktıda uyumlu bir parola sağlama üreten bir komut satırı aracı var mı?
Yanıtlar:
Aynı için aşağıdaki komutları kullanabilirsiniz:
openssl passwd -6 -salt xyz yourpass
Not: Geçiş -1işlemi bir MD5 şifresi, -5bir SHA256 ve -6SHA512 üretecektir (önerilen)
mkpasswd --method=SHA-512 --stdin
Yöntemler kabul md5, sha-256vesha-512
@Tink'in önerdiği gibi, aşağıdakileri kullanarak şifreyi güncelleyebiliriz chpasswd:
echo "username:password" | chpasswd
Veya şifreli bir şifre ile kullanabilirsiniz chpasswd. İlk önce bunu kullanarak oluşturun:
perl -e 'print crypt("YourPasswd", "salt", "sha512"),"\n"'
Daha sonra güncellemek için oluşturulan şifreyi kullanabilirsiniz:
echo "username:encryptedPassWd" | chpasswd -e
Bu şifreli şifre, şifreli yeni bir kullanıcı oluşturmak için kullanabiliriz, örneğin:
useradd -p 'encryptedPassWd' username
openssl passwd -11) oraya bitmiyor ki ve 2) ne, kabuk tarihinin kadar bitmiyor sizin için rasgele bir tuz () üretir.
python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'- ilgili ServerFault sorusundan
Ubuntu 12.04'te mkpasswd var (whois paketinden): Aşırı odaklı ön uç şifreli (3)
mkpasswd -m sha-512 -S saltsalt -s <<< YourPass
Nerede:
-m= TYPE metodunu kullanarak şifreyi hesaplayın. TİP yardım ise o zaman mevcut yöntemler basılır.-S = kullanılan tuz.Örneğin
$ mkpasswd -m help
-s = Read password from stdin
Bu çözüm aşağıdaki avantajlara sahiptir:
Hatalardan kaçınmak için şifreyi tekrar ister.
$ python3 -c "from getpass import getpass; from crypt import *; \
p=getpass(); print('\n'+crypt(p, METHOD_SHA512)) \
if p==getpass('Please repeat: ') else print('\nFailed repeating.')"
Debian tabanlı sistemleri olmayanlar için. Python3 de aynı şekilde çalışır.
python3 -c 'import crypt; print(crypt.crypt("test"))'
NOT: "test" dizesi şifreli bir dizge olarak oluşturduğumuz şifredir.
crypt.mksaltiçin parola oluştururken kullanmak işe yaramaz /etc/shadow. Fakat @ Alex131089'un metodu işe yarıyor!
openssloldukça evrensel bir araçtır.
Geçerli yöntemlerin hiçbiri bana kabul edilebilir - Ya (benim kabuk tarihinin biter) komut satırında parola geçmek gerektiren bir ilave yardımcı programın (kurulumu python3, makepasswd), kodlanmış tuzların kullanılması veya eski karma teknikleri kullanır.
Bu yöntem, şifre sorulduktan sonra SHA-512 karmaları üretecek ve rastgele bir tuz kullanacaktır.
Standart olmayan kütüphaneler olmadan Python 2'yi kullanan bir yöntem:
python2 -c 'import crypt, getpass,os,base64; print crypt.crypt(getpass.getpass(), "$6$"+base64.b64encode(os.urandom(16))+"$")'
İstemi istemeden yapmak için: (Bu, şifrenizi komut geçmişinde bırakacaktır)
python2 -c 'import crypt, os,base64; print crypt.crypt("MyPassword", "$6$"+base64.b64encode(os.urandom(16))+"$")'
psde komutun çalıştığı saniyenin kesirindeki çıktıda kalır . (En güvenli
opensslVe chpasswd -eçift RHEL6 içinde benim durumumda işe yaramadı. İşi birleştirmek openssl passwdve usermod -pkomut yapmak.
Parolanın karma değerini, tuz değeriyle birlikte oluşturun:
$ openssl passwd -1 -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.
Ardından, şifrelenmiş dizeyi usermod'a kopyalayın. Tek tırnakla sarmayı unutmayın.
$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root
Gölge dosyasında göz atın.
$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::
Parola oluşturmanın başka bir yöntemi de opensslaracı kullanmaktır .
MD5 şifreleri oluşturun
openssl passwd -1 -salt SaltSalt SecretPassword
# output: $1$SaltSalt$FSYmvnuDuSP883uWgYBXW/
DES şifreleri oluşturun
openssl passwd -crypt -salt XR SuprScrt
# output: XR1dOp2EVMph2
150825 ve Gert van den Berg'in eleştirilerini biraz inceleyerek, farklı otomasyon sistemlerine sahip farklı durumlar için nispeten esnek bir şeye ihtiyacım olduğunu gördüm. Kendi küçük faydalı senaryo kütüphaneme eklemeye ve bunu yazmaya karar verdim. Python 2.7+ sürümündeki sadece yerel kütüphaneleri kullanır ve python3 ile de çalışır.
Bunu alabilirsiniz burada isterseniz. Çok fazla, http barındırılan veya herhangi bir şekilde kullanmanız gerekiyorsa bunu ortamınıza bırakmak kadar kolaydır ve kullanabileceğiniz varsayılan python tercümanı ne olursa olsun kullanarak herhangi bir platformda çalıştırabilirsiniz. güvenilir bir şekilde çalışmaya güveniyor.
Stderr'deki komut satırlarında getpass kullanılmasını istemekte varsayılandır (stdout'un kolay yakalanmasına izin verir), ancak bir dizgiyi aktarırsanız, sadece stdin'den biçilir. Bununla nasıl başa çıkacağınıza bağlı olarak, komut tarihinde de görünmeyebilir, bu yüzden ne ile çalıştığınızın farkında olun. Paketlere güvenmek ya da 10 farklı yoldan galibiyet kazanmak için bir tane python kullanmak yerine, beklenen şekilde davranacak esnek bir araca sahip olmayı seviyorum.
chpasswd?
chpasswd -e, dizgede tek tırnak kullandığınızdan emin olunecho; Aksi takdirde,$veya başka özel karakterler varsa, kelimenin tam anlamıyla ele alınmazlar.