Jak ktoś powinien utworzyć zaszyfrowane hasło do / etc / shadow?

9

Zakładam nowe konto na Linux-ie dla dostępu do repozytorium Subversion i mogę wysłać hasło do nowego użytkownika. Myślę jednak, że dla tego nowego użytkownika było narzędzie wiersza polecenia do szyfrowania hasła, które mu się podoba, do formatu, który mogę skopiować / wkleić bezpośrednio do pliku / etc / shadow.

Jakie było pełne polecenie, aby ten nowy użytkownik uruchomił na konsoli (np. Bash), aby utworzyć takie zaszyfrowane hasło?

AKTUALIZACJA: użytkownik nie będzie mógł zalogować się na maszynie, a konto będzie wykorzystywane wyłącznie do dostępu svn + ssh: //. Dlatego użytkownik nie może sam tego zmienić.

Egon Willighagen
źródło
Użytkownik pyta o skrypty bash, ponieważ oczywiście nie zrobi tego ręcznie.
Tim Post

Odpowiedzi:

15

użytkownik może wykonać na swoim komputerze coś takiego:

echo "password"|openssl passwd -1 -stdin

a następnie wyślę ci wynik.

Daniel
źródło
+1 robi dokładnie to, czego szukasz.
Antoine Benkemoun
Dlaczego to polecenie podaje inną wartość za każdym razem, gdy go nazywam?
Egon Willighagen
2
Format wyjściowy jest zaszyfrowany $ id $ salt $. Inny identyfikator i inna sól dają inny zaszyfrowany ciąg. Identyfikator to używany algorytm: 0-DES, 1-> MD5, 2a-> Blowfish, 5-> SHA-256, 6-> SHA512
Gonzalo
OK, więc muszę wymyślić, jak uruchomić określony identyfikator (który był taki sam przez cały czas) i sól (która zmieniała się przy każdym wywołaniu) ... ma sens.
Egon Willighagen,
2

Format hasła w cieniu może się różnić. Możesz ustawić go jako MD5 lub stary dobry DES3 lub ... Dobrze jest wysłać swojemu użytkownikowi hasło i zmuszać go do zmiany przy pierwszym logowaniu ( # chage -d 0 username)

Gonzalo
źródło
1

Zamiast szyfrować hasło i wysyłać je do Ciebie, po prostu powiedz im, żeby napisali:

passwd

Zrobi wszystko, co chcesz, z dodatkową zaletą, że mogą zmieniać hasła bez dodatkowej pracy dla Ciebie.

EDYCJA: Zgodnie z tym , istnieje podobno polecenie o nazwie makepassword, które można uzyskać dla Debiana / Ubuntu.

Brendan Long
źródło
Ponieważ to wymaga, aby użytkownik był już zalogowany. OP chce rozwiązania, aby ustawić hasło bezpiecznie, zanim użytkownik zaloguje się po raz pierwszy.
Daniel Pryden
1
Wygląda na to, że losowe generowanie hasła i zmiana go podczas logowania jest tak samo bezpieczne, jak wygenerowanie hasła i ręczne dodanie go.
Brendan Long
Użytkownik nigdy się nie zaloguje (shell: / bin / false) i zezwoli tylko na dostęp do odczytu / zapisu SVN ...
Egon Willighagen 24.11.2009
2
Możesz ustawić shell: / usr / bin / passwd: D
Brendan Long
1
Mam na myśli ten ostatni komentarz jako żart, ale najwyraźniej zadziała: markmail.org/message/ekuxvnhdagywy4i5
Brendan Long
0

Pliki / etc / passwd i / etc / shadow są bardzo łatwe do tokenizacji za pomocą zwykłych narzędzi wiersza poleceń (tj. grep, awk, sed, tr itp.).

Interesujące staje się rzeczywiste pole skrótu hasła w / etc / shadow, jego prefiks mówi ci, jak hasło zostało zaszyfrowane. Od cienia człowieka (5):

The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.

To, jak zostało zaszyfrowane, zależy od tego, ile lat ma zainstalowany system operacyjny. Ważne jest, aby zwrócić szczególną uwagę na drugie pole w / etc / shadow.

Powinieneś dołożyć wszelkich starań, aby śledzić dowolny skrót używany przez system, czy to DES, MD5 itp., Ponieważ jest tak łatwy do wykrycia.

Tim Post
źródło
0

Dlaczego nie SU do użytkownika i uruchomić passwd?

Esben Skov Pedersen
źródło
Ponieważ nie chcę znać hasła ... ani prosić o przesłanie go w nieszyfrowanej formie.
Egon Willighagen
0

Czy istnieje sposób na wygenerowanie tego hasła za pomocą wiersza polecenia? Tak, z pakietem debian makepasswd (ale tylko dla MD5):

echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.

Ale to nie zadziała poprzez kopiowanie i wklejanie w / etc / shadow Aby zmienić hasło za pomocą skryptu w niektórych dystrybucjach Linuksa, możesz użyć:

echo oracle:mypasswd | chpasswd

lub

echo -n mypasswd | passwd --stdin oracle

źródło