Znalazłem przewodnik, który wyjaśnia, jak ustawić hasło użytkownika . Próbuję to zautomatyzować i wysłać użytkownikowi wiadomość e-mail, np .:
userid created with password XYZ.
request to change the initial password.
Zgodnie z powyższym dokumentem za pomocą Pythona należy utworzyć zaszyfrowane hasło i podać je do usermod
polecenia w następujący sposób:
usermod -p "<encrypted-password>" <username>
Czy istnieją inne prostsze sposoby na zrobienie tego? Nie chcę pobierać żadnego specjalnego narzędzia, aby to zrobić; należy go uogólnić w możliwie największym stopniu.
Edycja : Nawet metoda podana w powyższym linku wydaje się nie działać dla mnie:
bash-3.00# python
Python 2.4.6 (#1, Dec 13 2009, 23:43:51) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt; print crypt.crypt("<password>","<salt>")
<sOMrcxm7pCPI
>>> ^D
bash-3.00# useradd -g other -p "sOMrcxm7pCPI" -G bin,sys -m -s /usr/bin/bash mukesh2
UX: useradd: ERROR: project sOMrcxm7pCPI does not exist. Choose another.
UX: useradd: sOMrcxm7pCPI name should be all lower case or numeric.
usermod
gdy ktoś używa,ps
aby zobaczyć, że proces wyświetlania hasła jest widocznyOdpowiedzi:
Możesz
chpasswd
to zrobić w następujący sposób:Możesz podłączać się do
chpasswd
programów innych niżecho
, jeśli jest to wygodne, ale to załatwi sprawę.Edycja: Aby wygenerować hasło w skrypcie powłoki, a następnie je ustawić, możesz zrobić coś takiego:
Aby uzyskać więcej informacji
chpasswd
, zobacz http://linux.die.net/man/8/chpasswd(Polecenie wygenerowania hasła pochodziło z http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html )
źródło
sudo echo "username:newpass" | chpasswd
? Ponieważ podwyższone uprawnieniasudo
nie przechodzą przez potok, więcchpasswd
działałby jako zwykły użytkownik. Można to naprawić, przesuwającsudo
, jak wecho "username:newpass" | sudo chpasswd
. Istnieją również inne problemy, które mogą powodować ten komunikat o błędzie, ale takie błędy uprawnień są prawdopodobnie najczęstsze.Możesz użyć OpenSSL do wygenerowania losowego hasła (w tym przypadku 16 znaków):
Następnie podaj zaszyfrowane hasło do
useradd
lubusermod
Kredyt w wymaganym terminie: Generowanie hasła jest dostosowywane z podobnej metody, która wykorzystuje
/dev/urandom
zamiastopenssl
.źródło
useradd powinien działać (zrobiłem to na Ubuntu). Może sprawdź, czy każdy z twoich argumentów jest poprawny (twoje grupy istnieją, ścieżka jest odpowiednia do bash). Możesz uruchomić polecenie, używając tylko hasła i użytkownika, a następnie użyj userdel, aby usunąć, a następnie ponów próbę z większą liczbą parametrów, aby zobaczyć, co powoduje problem (podejście z użyciem siły brutalnej).
Są też nowi użytkownicy (patrz strona podręcznika), przynajmniej pod Ubuntu, gdzie dajesz mu plik z plikiem passwd, takim jak info, w tym hasła w postaci zwykłego tekstu, i stworzy tych użytkowników. Dobry sposób na zrobienie wielu użytkowników jednocześnie.
źródło
newusers
poleceniu dla Ubuntunajprostszy sposób, w jaki znalazłem:
źródło
passwd: unrecognized option '--stdin'