Forum Linux.pl

Programowanie => Bash, skrypty powłoki => Wątek zaczęty przez: xrashu w 2018-01-11, 15:39:30

Tytuł: Tworzenie użytkowników wczytanych z pliku
Wiadomość wysłana przez: xrashu w 2018-01-11, 15:39:30
Witam,

Mam jedno zadanie do wykonania, jednak w pewnym momencie się zaciąłem i nie wiem jak z tym ruszyć. Otóż potrzebuję skryptu, który będzie czytał nazwy użytkowników i ich hasła z pliku tekstowego, a następnie będzie tworzył ich konta, przypisując ich do stworzonej wcześniej grupy "studenci".


Udało mi się napisać kod. Użytkownicy zostają utworzeni, jednak gdy potem próbuje zalogować się z terminala na tych użytkowników (su nazwa / potem haslo, ktore jest zapisane w pliku) to wyskakuje mi błąd "Authentication failure". Czy ktoś wie może dlaczego?

 #!/bin/bash
 NEW_USERS="users"
 HOME_BASE="/home/Uczelnia"
 cat ${NEW_USERS} |
 while IFS=" " read USER PASSWORD; do
 useradd -G students -p ${PASSWORD} -m -d ${HOME_BASE}${USER} ${USER}
 done < ${NEW_USERS}

Tytuł: Odp: Tworzenie użytkowników wczytanych z pliku
Wiadomość wysłana przez: marcin'82 w 2018-01-11, 19:34:53
Program useradd wymaga podania hasła w postaci zaszyfrowanej, uzyskasz je na przykład za pomocą polecenia:
openssl passwd -crypt ja1

W skrypcie możesz podać tak:
"$(openssl passwd -crypt "${PASSWORD}")"

Tytuł: Odp: Tworzenie użytkowników wczytanych z pliku
Wiadomość wysłana przez: xrashu w 2018-01-12, 01:29:57
 
#!/bin/bash
 NEW_USERS="users"
 HOME_BASE="/home/Uczelnia"
 cat ${NEW_USERS} |
 while IFS=" " read USER PASSWORD; do
 useradd -G students -p "$(openssl passwd -crypt "${PASSWORD}")" -m -d ${HOME_BASE}${USER} ${USER}
 done < ${NEW_USERS}


czyli miałoby to tak wygladac?
Tytuł: Odp: Tworzenie użytkowników wczytanych z pliku
Wiadomość wysłana przez: 1709 w 2018-01-12, 16:02:50
Cytuj
gdy potem próbuje zalogować się z terminala na tych użytkowników (su nazwa / potem haslo, ktore jest zapisane w pliku) to wyskakuje mi błąd "Authentication failure".
Może dlatego że używasz Ubunto podobnego systemu.
Domyślnie używa chyba się su
we wszystkich dystrybucjach linuxa oprócz ubunto-podobnych.

Przyklad dla ubuntowych.
sudo -u uzytkownik bash