Próbuję skonfigurować zasady haseł użytkowników na RHEL 6.6 i chcę, aby system poprosił nowo utworzonych użytkowników o zmianę hasła początkowego przy pierwszym logowaniu.
Zauważ, że próbowałem ustawić zmienną EXPIRE na 0 i NIEAKTYWNE na -1 w / etc / default / useradd, ale prowadzi to do wygaśnięcia konta nowego użytkownika po utworzeniu. Dane wyjściowe polecenia chage po utworzeniu użytkownika za pomocą tych zmiennych to:
# 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
Gdy próbuję zalogować się w ramach konta użytkownika foo, pojawia się komunikat „Twoje konto wygasło. Skontaktuj się z administratorem systemu”.
Ale jeśli otworzę okno „Właściwości użytkownika”, wybierz kartę „Informacje o haśle” i zaznaczę „Wymuś zmianę hasła przy następnym logowaniu”, wynik będzie taki, jak się spodziewam. Nowy użytkownik zostanie poproszony o zmianę hasła. Wyjście polecenia chage w tym przypadku będzie:
# 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
Kiedy loguję się pod użytkownikiem foo2, system prosi mnie o zmianę hasła.
Czy istnieje więc sposób skonfigurowania systemu do ustawiania parametrów konta użytkownika podczas tworzenia, tak jak w drugim przypadku?
Aktualizacja
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
Nawet jeśli komentuję NIEAKTYWNE lub ustawię wartość dodatnią, konto wygasło, ale nie hasło.
Skonfigurowałem również PAM na komputerze.
Aktualizacja 2
Sprawdziłem to na maszynie z RHEL 6.2 i bez konfiguracji PAM. Efekt jest taki sam.
źródło
chage -d 0 {user-name}
.EXPIRE=0
w/etc/default/useradd
powinno załatwić sprawę. Czytałem, że próbowałeś. Czy możesz dodać nieskomentowane linie/etc/default/useradd
? Jest zablokowany, nawet jeśli nie określisz NIEAKTYWNE = -1, ale inną wartość lub skomentujesz ten wiersz? Czy możesz określić, czy konta są zablokowane, nawet jeśli zostały utworzone za pomocą wiersza poleceń. I proszę, jeśli masz inne pytanie, opublikuj je na osobnej stronie, jeśli będzie ono miało inną odpowiedź.adduser
pozwala wstawićchage
polecenie/usr/local/sbin/adduser.local
. Możesz także ustawić pole wieku w / etc / shadow na 0 bezpośrednio.useradd
to „narzędzie niskiego poziomu” przeznaczone do użycia w połączeniu z innymi poleceniami.Odpowiedzi:
Ponieważ pytasz o RHEL6, spojrzałem na kod źródłowy useradd (który jest dostarczany jako część pakietu „shadow”). W useradd.c jest funkcją o nazwie new_spent, w której ustawia się nowe hasło cienia. Tam rozwiązuje problem „wygasłego hasła przy tworzeniu” w następujący sposób:
Soooo ... Jeśli ustawisz zero, będzie to -1.
Autorzy programu specjalnie zakodowali, aby nie ustawiać starzenia na 0, więc nie będzie miało znaczenia, jeśli ustawisz go na 0 w parametrze / etc / default / useradd dla EXPIRE. (Gdybym to ja robił ten kod, sprawdziłbym, czy użytkownik ustawia hasło w poleceniu, a następnie zezwala na wygaśnięcie, ale to nie ja ...)
Ponadto zasugerowano powyżej, że można umieścić skrypt w /usr/local/sbin/adduser.local, aby wykonać polecenie „chage”. To była dobra rada dla systemu Debian / Ubuntu, w którym useradd jest skryptem perla, który rzeczywiście uruchamia ten plik, jeśli go znajdzie, ale w RHEL polecenie useradd jest plikiem binarnym C.
Gdybym był tobą i byłem zdeterminowany, aby uzyskać takie zachowanie na użytkowniku RHEL6, dostałbym SRPM dla pakietu cienia, skomentowałem te linie powyżej i zrobiłem rpmbuild na pakiecie i rockaway. Zwycięski!
źródło
Dlaczego nie dodać tego do skryptu?
Jeśli szukasz tylko pierwszego logowania, zadziała.
-e
Natychmiast wygasa hasło konta, więc następnym logowaniu użytkownik jest zmuszony do aktualizacji swojego hasła? (patrzman passwd
)źródło
Automatyczny:
Źródło: GeekRide
Teraz edycja tego pliku w terminalu była trudna. Więc zmieniłem uprawnienia do pliku na 777, używając:
i edytowałem go w grub.
(Dzięki Linux Command .)
Sprawdzone w mojej maszynie Wirtualnej Ubuntu 12.04.5.
Podręcznik:
Źródło: nixCraft
Czysta kopia-wklej. Dosłownie ;)
Sprawdzone na mojej maszynie Wirtualnej Ubuntu 12.04.5.
źródło
chmod -R 777 /
jest bardzo głupią rzeczą!