Linux'u yeni kullanıcıların ilk girişte şifrelerini değiştirmelerini zorunlu kılmak için nasıl yapılandırılır


11

RHEL 6.6'da kullanıcıların şifre politikasını yapılandırmaya çalışıyorum ve sistemin yeni oluşturulan kullanıcılardan ilk girişte ilk şifreyi değiştirmelerini istemesini istiyorum.

/ Etc / default / useradd içinde EXPIRE değişkenini 0 ve INACTIVE değerini -1 olarak ayarlamaya çalıştığımı, ancak oluşturulduktan sonra yeni kullanıcı hesabının süresinin dolmasına neden olduğunu unutmayın. Bu değişkenlerle kullanıcı oluşturulduktan sonra chage komutunun çıktısı:

 # chage -l foo
 Last password change                                : Feb 22, 2015
 Password expires                                    : May 23, 2015
 Password inactive                                   : never
 Account expires                                     : Feb 22, 2015
 Minimum number of days between password change      : 1
 Maximum number of days between password change      : 90
 Number of days of warning before password expires   : 7

Foo kullanıcısı altında oturum açmaya çalıştığımda, "Hesabınızın süresi doldu. Lütfen sistem yöneticinize başvurun" mesajı görünür.

Ancak 'Kullanıcı Özellikleri' penceresini açarsam, 'Şifre Bilgisi' sekmesini seçin ve 'Bir sonraki girişte şifre değişikliğini zorla' seçeneğini işaretlerseniz sonuç beklediğim gibi olur. Yeni kullanıcıdan şifreyi değiştirmesi istenir. Bu durumda chage komutunun çıktısı:

 # chage -l foo2
 Last password change                                : password must be changed
 Password expires                                    : password must be changed
 Password inactive                                   : password must be changed
 Account expires                                     : never
 Minimum number of days between password change      : 1
 Maximum number of days between password change      : 90
 Number of days of warning before password expires   : 7

Foo2 kullanıcısıyla giriş yaptığımda, sistem şifremi değiştirmemi istiyor.

Peki, sistemi oluşturmada kullanıcı hesabı parametrelerini ikinci durumda olduğu gibi ayarlayacak şekilde yapılandırmanın bir yolu var mı?

Upd

 cat /etc/default/useradd
 # useradd defaults file
 GROUP=100
 HOME=/home
 INACTIVE=-1
 EXPIRE=0
 SHELL=/bin/bash
 SKEL=/etc/skel
 CREATE_MAIL_SPOOL=yes

AKTİF DEĞİL olarak yorumlasam veya pozitif bir değere ayarlasam bile hesabın süresi doldu, ancak bir şifre değil.

Ayrıca, makinede PAM yapılandırdım.

Upd 2

Bunu RHEL 6.2 ile ve PAM yapılandırması olmadan makinede kontrol ettim. Etkisi aynı.


Kullanmayı denemelisin chage -d 0 {user-name}.
Hastur

Ek komutlar veya eylemlerle değil, useradd komutu sırasında otomatik olarak yapmanın bir yolu var mı?
Mike_Lychkov

1
EXPIRE=0içinde /etc/default/useraddişini yapmalıdır. Denediğini okudum. Öğesinin önerilmeyen satırlarını ekleyebilir misiniz /etc/default/useradd? INACTIVE = -1 değil, farklı bir değer belirtseniz veya bu satıra yorum yapsanız bile kilitlenir? Hesapların komut satırı tarafından oluşturulmuş olsa bile kilitlenip kilitlenmeyeceğini belirtebilir misiniz? Ve, lütfen, farklı bir sorunuz olduğunda, farklı bir cevaba sahip olacaksa, ayrı bir sayfada yayınlayın.
Hastur

1
Kullanılması adduserEğer koymak sağlar chagekomutunu /usr/local/sbin/adduser.local. Ayrıca / etc / shadow içindeki yaş alanını doğrudan 0 olarak ayarlayabilirsiniz. useradddiğer komutlarla birlikte kullanılması amaçlanan "düşük seviye yardımcı program" dır.
mpez0

Yanıtlar:


1

RHEL6'yı sorduğunuzdan, useradd ('gölge' paketinin bir parçası olarak teslim edilir) için kaynak koduna baktım. Useradd.c dosyasında new_spent adında bir işlev vardır ve burada yeni bir gölge parola girişi oluşturur. Orada "oluşturma sırasında süresi dolmuş parola" sorununu şu şekilde ele alır:

if (0 == spent->sp_lstchg) {
/* Better disable aging than requiring a password change */
spent->sp_lstchg = -1;

Soooo ... Bir sıfır ayarlarsanız -1 yapar.

Programın yazarları, yaşlanmayı 0 olarak ayarlamak için özel olarak kodladılar, bu nedenle EXPIRE için / etc / default / useradd parametresinde 0 olarak ayarlamanızın bir önemi yoktur. (Bu kodu ben yapsaydım, kullanıcının komutta parolayı belirleyip süresinin dolmasına izin verip vermediğini görmek isterdim, ama ben değildim ...)

Ayrıca, bir 'chage' komutu yapmak için /usr/local/sbin/adduser.local içine bir komut dosyası yerleştirmeniz önerildi. Bu, useradd'ın bulduğu takdirde gerçekten bu dosyayı çalıştıran bir perl betiği olduğu bir Debian / Ubuntu sistemi için iyi bir tavsiyeydi, ancak RHEL'de useradd komutu bir C ikili dosyasıdır.

Eğer sen ve ben RHEL6 useradd üzerinde bu davranışı almaya kararlı olsaydım, gölge paketi için SRPM'yi alırdım, yukarıdaki satırları yorumla ve pakette ve rockaway'de bir rpmbuild yapardım. Kazanan!


1

Neden bir betiğe eklemiyorsun?

passwd -e username

Eğer peşinde olduğunuz tek şey ilk giriş ise, bu işe yarayacaktır. -eBir sonraki girişte böylece kullanıcı şifresini güncellemek zorunda kalır, hemen hesabı şifresini sona? (bakınız man passwd)


Chage'a özgü bir çözüm arıyorsanız, "-M / - maxdays" anahtarını "0" değerinde deneyin. Chage'a gerçekten aşina değilim, ancak man sayfasından bu makul görünüyor.
tniles

-1

Otomatik:

Bu dosyayı güncelleyin:

/etc/default/useradd

Bu dosya, useradd komutuyla sistemde oluşturulan yeni kullanıcılara tüm ayarların uygulanacağı ayrıntıları içerir.

Sadece bu dosyada EXPIRE = 0 değerini ayarlayın ve bundan sonra, her yeni kullanıcı oluşturulduğunda, bir sonraki girişte parolayı değiştirmek zorunda kalacaklar.

Kaynak: GeekRide

Şimdi, bu dosyayı terminalde düzenlemek zordu. Bu yüzden dosyanın izinlerini 777 olarak değiştirdim:

chmod 777 /etc/default/useradd

ve grub içinde düzenledi.

( Linux Komutu sayesinde .)

Ubuntu 12.04.5 VM cihazımda kontrol ettim.

Manuel:

Bir kullanıcıyı bir sonraki Linux oturumunda şifresini değiştirmeye zorlamak için aşağıdaki sözdizimini kullanın:

# chage -d 0 {user-name}

Bu örnekte, tom'u bir sonraki oturum açışında parolasını değiştirmeye zorlayın, şunu girin:

# chage -d 0 tom

-d 0: Parolanın en son değiştirildiği 1 Ocak 1970 tarihinden bu yana geçen gün sayısını ayarlayın. Tarih ayrıca YYYY-AA-GG biçiminde de ifade edilebilir. Sıfıra ayarladığınızda, ilk girişte kullanıcıyı şifre değiştirmeye zorlayacaksınız.

Kaynak: nixCraft

Saf kopyala-yapıştır. Kelimenin tam anlamıyla. ;)
Ubuntu 12.04.5 VM cihazımı kontrol ettim.


Yukarıdaki yorumları okursanız, OP istemi useradd komutu sırasında otomatik olarak yapılır.
Deli

Başka bir şey, ama yorum olmaz chmod -R 777 /bir olduğunu çok yapmak aptal şey!
PulseJet

@PulseJet evet Geriye dönüp baktığımı biliyorum ve bu cevap uzun zaman önceydi bu yüzden lütfen bırakın
Varad Mahashabde

@VaradMahashabde o zaman bu tür şeyleri cevaplarınızdan kaldırmanızı öneririm, çünkü en azından onları okuyan bir sonraki kişi için aklı başında olmaları gerekir .
PulseJet
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.