ZAGADNIENIE 3: LINUX – SKRYPT TWORZĄCY KONTO Z HASŁEM
Ostatnimi czasy zastanawialiśmy się z kolegami jak napisać skrypt w systemie Linux, który stworzy nam konto użytkownika z hasłem podanym wewnątrz skryptu. Wertując strony pomocy systemowej – MAN dotarliśmy do bardzo ciekawego polecenia chpasswd.
Chpasswd jest poleceniem służącym do „wsadowej aktualizacji haseł użytkowników”. Polecenie to czyta pary danych – użytkownik i hasło ze standardowego wejścia. Odczytane informacje są wykorzystywane do aktualizacji danych w grupie istniejących użytkowników.
Spróbujmy więc napisać skrypt, który stworzy nam konto użytkownika z parametrami jak w poniższej tabeli:
Nazwa użytkownika |
Grupa początkowa |
Grupy dodatkowe |
Hasło |
umba |
umba |
sala15,sala38 |
plumplum5! |
Zabierzmy się więc do pracy. Na początek „odpalmy” w swoim systemie edytor nano. Wpisujemy w konsoli polecenie:
nano konto.sh
Teraz deklaracja powłoki, która ma wykonać nasz skrypt:
#!/bin/bash
W tym miejscu możemy napisać komentarz:
# To jest skrypt tworzący konto z hasłem
Kolejnymi liniami naszego skryptu są polecenia mające za zadanie utworzyć grupy: sala15,sala38:
groupadd sala15
groupadd sala38
Teraz stwórzmy sobie użytkownika umba. Zrobimy to poleceniem:
useradd –m umba
W tym miejscu skryptu możemy napisać polecenie, za pomocą którego dodamy naszego użytkownika do grup: sala15,sala38:
usermod –G sala15,sala38 umba
I teraz najważniejsza linia skryptu. W tym miejscu napiszemy polecenie, które przypisze hasło użytkownikowi umba. Bardzo ważne jest, aby fraza ”nazwa_użytkownika:hasło” była oddzielona tylko dwukropkiem i wzięta w cudzysłów z obu stron bez żadnych spacji!
echo ”umba:plumplum5!” | chpasswd
Ktoś pyta: „Z jakiej strony w tym poleceniu jest słowo echo, przecież w poradach internetowych oraz pomocy systemowej tego słowa nie ma”.
Odpowiadam: Słówko echo jest bardzo ważne w tym poleceniu. Jego brak sprawi, że konsola potraktuje nazwę użytkownika jako polecenie i w wyniku takiego działania wykrzyczy się nam cała powłoka bash, a przecież tego nikt nie chce.
Całość naszego skryptu wygląda tak:
#!/bin/bash
# To jest skrypt tworzący konto z hasłem
groupadd sala15
groupadd sala38
useradd –m umba
usermod –G sala15,sala38 umba
echo ”umba:plumplum5!” | chpasswd
Aby zapisać nasz skrypt wciskamy kombinację klawiszy Ctrl+O, a następnie Ctrl+X w celu zamknięcia edytora.
Zapisaliśmy nasz skrypt w katalogu domowym aktualnie zalogowanego użytkownika. Wpiszmy w konsoli polecenie: ls –l w celu wyświetlenia zawartości naszego katalogu domowego w długim formacie.
Jak widać nikt nie ma prawa do wykonania naszego skryptu. Dodajmy więc wszystkim takie prawo poleceniem:
chmod 777 konto.sh
Aby uruchomić nasz skrypt podajemy „formalną” ścieżkę do pliku:
~/konto.sh
Po wykonaniu naszego skryptu możemy wyświetlić plik /etc/shadow, w którym to możemy sprawdzić czy nasz użytkownik się stworzył i czy hasło zostało przypisane. Jeśli na samym końcu zawartości tego pliku widzimy nasze konto umba i w tym samym wierszu „dziwny ciąg znaków” to znaczy, że hasło zostało przypisane, a ten dziwny ciąg znaków to nic innego jak zaszyfrowane hasło.
Czy nasz użytkownik został przypisany do odpowiednich grup sprawdzimy poleceniem:
groups umba
***
Przy tworzeniu artykułu pomogli
Grzesiek i Marcin