Zarządzanie użytkownikami: polecenia adduser
, usermod
, passwd
1. Dlaczego warto rozumieć zarządzanie użytkownikami?
Dzisiaj zagłębimy się w zarządzanie użytkownikami, ponieważ to kluczowa część administracji Linuxa. Tworzenie użytkowników, konfigurowanie ich środowiska i zarządzanie ich hasłami — wszystko to stanie się ważną częścią Twojego zestawu narzędzi. No to zaczynamy!
W Linuxie na serwerze często działa wielu użytkowników. System przydziela każdemu z nich określone prawa, aby chronić dane i unikać chaosu. Musisz wiedzieć, jak dodawać nowych użytkowników (na przykład deweloperów w Twoim zespole), konfigurować ich środowisko (na przykład zmieniać shell) i w razie potrzeby ograniczać dostęp.
2. Tworzenie użytkownika za pomocą adduser
Linux oferuje komendę adduser
, która jest bardziej przyjazną wersją komendy useradd
. Dzięki niej możesz łatwo i szybko tworzyć nowych użytkowników:
Główna składnia
adduser nazwa_użytkownika
Co się dzieje podczas tworzenia użytkownika?
- Tworzony jest nowy wpis w pliku
/etc/passwd
dla użytkownika. - Generowany jest katalog domowy (np.
/home/nazwa_użytkownika
). - Konfigurowane są podstawowe parametry (np. domyślny shell).
- Zostaniesz poproszony o podanie hasła i dodatkowych informacji (np. imię, numer telefonu — ale te dane są opcjonalne).
Przykład
Stwórzmy nowego użytkownika dev_user
:
sudo adduser dev_user
Po wprowadzeniu tej komendy zostaniesz poproszony o:
- Podanie hasła dla użytkownika.
- Wprowadzenie dodatkowych informacji, które możesz pominąć, naciskając po prostu
Enter
.
Sprawdzanie
Aby upewnić się, że użytkownik został utworzony, możesz przejrzeć plik /etc/passwd
:
cat /etc/passwd | grep dev_user
Zobaczysz linię zawierającą informacje o użytkowniku dev_user
.
3. Konfiguracja użytkownika za pomocą usermod
Kiedy użytkownik już istnieje, może zajść potrzeba zmiany jego ustawień. Na przykład, zmiana nazwy, określenie innego shell-a lub dodanie do grupy.
Zmiana nazwy użytkownika
Najpierw upewnij się, że użytkownik nie jest zalogowany, a następnie wykonaj komendę:
sudo usermod -l nowa_nazwa stara_nazwa
Przykład:
sudo usermod -l developer dev_user
Teraz użytkownik dev_user
będzie się nazywał developer
. Jednak jego katalog domowy pozostanie stary.
Zmiana domyślnego shell-a
Załóżmy, że chcesz zmienić shell użytkownika na /bin/zsh
. W tym celu wykonaj:
sudo usermod --shell /bin/zsh developer
Sprawdź, czy shell został zmieniony, używając komendy:
cat /etc/passwd | grep developer
Zmiana katalogu domowego
Jeśli chcesz, aby nowy użytkownik pracował w innym katalogu domowym, wykonaj:
sudo usermod -d /nowa/sciezka developer
jeśli katalog jeszcze nie istnieje, użyj opcji -m
, aby został utworzony i zawartość starego katalogu została przeniesiona:
sudo usermod -d /home/new_developer -m developer
4. Zarządzanie hasłami za pomocą passwd
Ustawianie i zmiana hasła
Do ustawienia (lub zmiany) hasła użytkownika używa się polecenia:
sudo passwd nazwa_użytkownika
Przykład:
sudo passwd developer
System poprosi cię o dwukrotne wprowadzenie nowego hasła, żeby upewnić się, że nie popełniłeś/-aś błędu.
Wymuszenie zmiany hasła przy następnym logowaniu
To może być przydatne, jeśli tworzysz użytkowników i chcesz, żeby sami ustawili swoje hasło przy pierwszym logowaniu:
sudo passwd -e developer
Po tym użytkownik developer
, logując się do systemu, zobaczy komunikat o konieczności zmiany hasła.
5. Praktyka
Zadanie 1: Stwórz nowego użytkownika
Dodajmy użytkownika
tester
:sudo adduser tester
Upewnij się, że użytkownik został stworzony:
cat /etc/passwd | grep tester
Zadanie 2: Skonfiguruj parametry użytkownika
Zmień nazwę użytkownika:
sudo usermod -l test_user tester
Zmień katalog domowy użytkownika:
sudo usermod -d /home/test_user -m test_user
Upewnij się, że zmiany zostały zastosowane:
ls -l /home/
Zmień shell użytkownika:
sudo usermod --shell /bin/zsh test_user
Sprawdź zaktualizowane dane użytkownika:
cat /etc/passwd | grep test_user
Zadanie 3: Ustaw nowe hasło dla użytkownika
Ustaw hasło dla użytkownika:
sudo passwd test_user
Wymuś, aby użytkownik zmienił hasło przy następnym logowaniu:
sudo passwd -e test_user
6. Wprowadzenie do potoków |
w Linuxie
Potoki |
to mechanizm w Unix/Linux, który pozwala przekazywać wynik jednej komendy (stdout) jako wejście (stdin) dla innej komendy. To potężne narzędzie, które umożliwia łączenie komend w celu stworzenia "pipeline'ów" do przetwarzania danych.
Jak to działa?
Kiedy używasz potoku między komendami, Linux przekierowuje standardowe wyjście pierwszej komendy do standardowego wejścia następnej. Dzięki temu można efektywnie przetwarzać duże ilości danych bez użycia plików tymczasowych.
Składnia:
komenda1 | komenda2 | komenda3
komenda1
generuje dane.komenda2
przetwarza otrzymane dane.komenda3
wykonuje dalsze przetwarzanie lub zapisuje wynik.
Przykład:
Wyświetlenie listy plików i filtrowanie według wzorca:
ls -l | grep ".txt"
Tutaj ls -l
wyświetla listę plików, a grep
filtruje tylko pliki z rozszerzeniem .txt
.
Policzenie linii zawierających określone słowo:
cat file.txt | grep "Linux" | wc -l
Kolejno wyświetlana jest zawartość pliku, wyszukiwane są linie z "Linux", a następnie liczona jest ich liczba.
Zalety potoków:
- Uproszczenie złożonych operacji.
- Minimalizacja użycia plików tymczasowych.
- Możliwość łączenia potężnych narzędzi Linuksa w celu automatyzacji zadań.
7. Wprowadzenie do grep w Linuxie
grep
(Global Regular Expression Print) — to narzędzie wiersza poleceń w Unix/Linux do wyszukiwania linii w plikach, które odpowiadają podanemu wzorcowi. Jest szeroko stosowane do filtrowania i wyszukiwania danych dzięki wsparciu wyrażeń regularnych i elastycznym ustawieniom.
Jak działa grep
?
grep
przyjmuje jako wejście plik tekstowy (lub standardowe wejście), wyszukuje linie, które odpowiadają podanemu wzorcowi, i wypisuje je.- Jeśli wzorzec nie zostanie znaleziony, polecenie nic nie wypisuje.
Przykłady
Wypisać listę plików i przefiltrować ją według wzorca:
ls -l | grep ".txt"
- Najpierw wykonuje się polecenie
ls -l
, które wypisuje listę plików w bieżącym katalogu - Wynik pierwszego polecenia
ls
za pomocą potoku|
przekierowywany jest jako wejście dla drugiego poleceniagrep
- Drugie polecenie filtruje linie, które do niego trafiły, i wyświetla tylko te zawierające ".txt"
Policzyć linie zawierające określone słowo:
cat file.txt | grep "Linux" | wc -l
- Najpierw wykonuje się polecenie
cat file.txt
, które wyświetla zawartość pliku file.txt - Wynik pierwszego polecenia
cat
za pomocą potoku|
przekierowywany jest jako wejście dla drugiego poleceniagrep
- Drugie polecenie filtruje linie, które do niego trafiły, i wyświetla tylko te zawierające "Linux"
- Następnie wynik drugiego polecenia
grep
za pomocą potoku|
przekierowywany jest jako wejście dla trzeciego poleceniawc
- Trzecie polecenie liczy liczbę linii, które do niego trafiły, i wyświetla ją
8. Typowe błędy i niuanse
Błąd "user is currently logged in" przy zmianie nazwy użytkownika. Jeśli użytkownik jest zalogowany do systemu, nie możesz zmienić jego nazwy. Upewnij się, że użytkownik się wylogował.
Błędy przy zmianie katalogu domowego. Jeśli zapomnisz wskazać
-m
, zawartość starego katalogu nie zostanie przeniesiona do nowego. Użytkownik może stracić swoje dane.Zapomniano ustawić hasło użytkownika. Po stworzeniu użytkownika za pomocą
adduser
koniecznie sprawdź, czy ustawiono mu hasło. Bez hasła nie będzie mógł się zalogować.Wartości
UID
iGID
. Czasami administratorzy chcą wskazać wartościUID
(identyfikator użytkownika) iGID
(identyfikator grupy) przy tworzeniu użytkownika. Do tego używane jest polecenieuseradd
, ale to jest temat do bardziej zaawansowanego studiowania Linuxa.
9. Praktyczne zastosowanie
Wyobraź sobie: jesteś administratorem serwerów w firmie. Programiści przychodzą do Ciebie, a każdy z nich potrzebuje dostępu do systemu z indywidualnymi ustawieniami. Możesz:
- Tworzyć użytkowników i przydzielać im odpowiednie dostępy.
- Konfigurować środowisko (np. shell) w zależności od ich preferencji.
- Zarządzać hasłami i dbać o bezpieczeństwo.
Te polecenia mogą się przydać również na rozmowie kwalifikacyjnej na stanowisko DevOpsa lub administratora systemów. Mogą Cię zapytać, jak tworzysz i konfigurujesz użytkowników, albo poprosić o wykonanie tego zadania w praktyce.
Ściąga: podstawowe polecenia
Polecenie | Opis |
---|---|
sudo adduser nazwa_użytkownika |
Tworzy nowego użytkownika. |
sudo usermod -l nowe stare |
Zmienia nazwę użytkownika. |
sudo usermod --shell ścieżka nazwa |
Ustawia domyślny shell. |
sudo usermod -d ścieżka nazwa |
Zmienia katalog domowy. |
sudo passwd nazwa |
Ustawia nowe hasło. |
sudo passwd -e nazwa |
Wymusza zmianę hasła przy następnym logowaniu. |
Ćwicz! Linux to zawsze praca na żywo. Im więcej będziesz eksperymentować z poleceniami, tym łatwiej będzie Ci pracować z rzeczywistymi systemami.
GO TO FULL VERSION