Piszę skrypt, aby dodać dużą liczbę użytkowników do systemu. Częścią tego jest ustawienie domyślnych haseł dla każdego użytkownika. Jak ustawić hasła użytkowników bez wyświetlania monitu o podanie hasła?
Niestety, passwd nie wydaje się argumentować, że należy ustawić nowe hasło. Używam Ubuntu 11.10.
usermod --password $(echo my_new_password | openssl passwd -1 -stdin) USERNAME
usermod --password $(openssl passwd -1 {password}) {username}
Powinieneś spojrzeć na
chpasswd
komendę (jeśli jest dostępna w twoim smaku Linuksa):Możesz też ustawić identyfikator użytkownika na liście plików: passwd dla każdego konta w osobnym wierszu.
Otóż to.
źródło
Dockerfile
Zainspirowany pomysłem Erica Smitha połączenie
openssl passwd
iusermod -p
dowodzenie zadziałało. Wygeneruj zaszyfrowaną wartość hasła wraz z wartością soli.Następnie skopiuj zaszyfrowany ciąg do usermod. Pamiętaj, aby owinąć go pojedynczym cytatem.
Sprawdź to w pliku cienia.
źródło
Powinieneś użyć starzenia się hasła i ustawić użytkowników tak, aby musieli zmienić swoje hasło przy pierwszym logowaniu. Zobacz ten artykuł .
źródło
działa dla mnie zarówno w fizycznym hoście, jak i kontenerze, dla różnych systemów operacyjnych (ubuntu xenial, bionic, debian9,10, centos75,76, coreos)
działa dla niektórych systemów operacyjnych, ale niektóre systemy operacyjne, takie jak debian9,10, pokażą błąd,
can not connect to /var/run/nscd/socket
ponieważ używają /etc/nsswitch.conf do ustalenia, gdzie przechowuje hasło.źródło