Programlı Olarak Şifreyi Değiştir


12

Raspian'ın geçerli sürümünde, şu anda oturum açmış olan kullanıcının şifresini komut satırından değiştirmek mümkün olduğunu biliyorum:

sudo passwd

daha sonra kullanıcıdan iki kez yeni bir şifre girmesini isteyecektir. Bu şekilde çıktı üretilecektir:

Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

Bir kabuk betiğinden olduğu gibi programlı olarak bir parolayı değiştirmenin olası bir yolu olup olmadığını merak ediyordum.

Ahududu Pis benim dağıtmak için bir yapılandırma komut dosyası yapmaya çalışıyorum ve ben onlar için yeni parolalar yazmak zorunda istemiyorum.


1
Geçerli kullanıcının şifresini değiştirmek için önek eklemeniz gerekmez sudo. Eğer kullanırsanız sudoo zaman o kullanıcının mevcut şifreyi bilmek gerek kalmadan herhangi bir kullanıcı için yeni bir şifre zorlayabilir.
roaima

expect(1)yardımcı olabilir.
SailorCire

Parolaları programlı olarak değiştirirken güvenlikle ilgili sonuçları dikkate aldığınızdan emin olun.
Josh Habdas

Yanıtlar:


19

chpasswdKomutu arıyorsun . Böyle bir şey yapardınız:

echo 'pi:newpassword' | chpasswd # change user pi password to newpassword

En azından varsayılan PAM yapılandırmasıyla kök olarak çalıştırılması gerektiğini unutmayın. Ancak muhtemelen kök olarak çalıştırılan bir sistem dağıtım komut dosyası için sorun değildir.

Ayrıca, birden çok giriş satırını besleyerek aynı anda birden fazla kullanıcı yapabilirsiniz.


9

Başka bir alternatif, yeskomut dosyasında komutu kullanmaktır .

yes newpassword | passwd youruser

Bu newpassword, passwdkomutuna gönderilir youruser.

Komut dosyaları aracılığıyla kullanıcı parolalarının ayarlanmasının / değiştirilmesinin güvenlik riskleri oluşturabileceği ve mümkün olduğunca kaçınılması gerektiği belirtilmelidir.

DÜZENLE:

Bu yanıt kök erişimi gerektirir. Daha önce bahsetmediğim için özür dileriz. Kök erişimi gerektiren yönetim görevlerini gerçekleştirirken kullandığım bir yöntem.


Bunu denedin mi?
roaima

Evet. Yıllardır bu yöntemi kullanıyorum. Cevabımı göndermeden önce ve hemen şimdi test ettim.
Timothy Martin

Bir terminal (klavye) yerine passwdokunduğunu varsayarsak bile stdin, bu passwdönce bir kullanıcının eski şifresini ve sonra yeni şifreyi istediğinde nasıl çalışır ?
roaima

@roaima muhtemelen Timothy onu kök olarak çalıştırır ( yourusersonunda neden ihtiyacı olduğunu açıklar ). Bir yerde işe yarayabilir ...
derobert

1
@roaima passwdLinux'un gölge yardımcı programlarından gelen komut, yeniden yönlendirilmiş girişi kabul eder (ör. OpenSSH'nin aksine ssh). yesBununla birlikte kullanmak iyi bir fikir değildir: şifreyi, işlem listesine yanlış zamanda bakan snooperlere gösterir. Kullanmak echobu kusura sahip olmaz çünkü bu bir kabuk yerleşiktir.
Gilles 'SO- kötü olmayı kes'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.