CodeGym /Kursy /Docker SELF /Zarządzanie użytkownikami: polecenia adduser, usermod, pa...

Zarządzanie użytkownikami: polecenia adduser, usermod, passwd

Docker SELF
Poziom 2 , Lekcja 1
Dostępny

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?

  1. Tworzony jest nowy wpis w pliku /etc/passwd dla użytkownika.
  2. Generowany jest katalog domowy (np. /home/nazwa_użytkownika).
  3. Konfigurowane są podstawowe parametry (np. domyślny shell).
  4. 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:

  1. Podanie hasła dla użytkownika.
  2. 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
Ważne:

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

  1. Dodajmy użytkownika tester:

    sudo adduser tester
    
  2. Upewnij się, że użytkownik został stworzony:

    cat /etc/passwd | grep tester
    

Zadanie 2: Skonfiguruj parametry użytkownika

  1. Zmień nazwę użytkownika:

    sudo usermod -l test_user tester
    
  2. Zmień katalog domowy użytkownika:

    sudo usermod -d /home/test_user -m test_user
    
  3. Upewnij się, że zmiany zostały zastosowane:

    ls -l /home/
    
  4. Zmień shell użytkownika:

    sudo usermod --shell /bin/zsh test_user
    
  5. Sprawdź zaktualizowane dane użytkownika:

    cat /etc/passwd | grep test_user
    

Zadanie 3: Ustaw nowe hasło dla użytkownika

  1. Ustaw hasło dla użytkownika:

    sudo passwd test_user
    
  2. 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"
  1. Najpierw wykonuje się polecenie ls -l, które wypisuje listę plików w bieżącym katalogu
  2. Wynik pierwszego polecenia ls za pomocą potoku | przekierowywany jest jako wejście dla drugiego polecenia grep
  3. 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
  1. Najpierw wykonuje się polecenie cat file.txt, które wyświetla zawartość pliku file.txt
  2. Wynik pierwszego polecenia cat za pomocą potoku | przekierowywany jest jako wejście dla drugiego polecenia grep
  3. Drugie polecenie filtruje linie, które do niego trafiły, i wyświetla tylko te zawierające "Linux"
  4. Następnie wynik drugiego polecenia grep za pomocą potoku | przekierowywany jest jako wejście dla trzeciego polecenia wc
  5. Trzecie polecenie liczy liczbę linii, które do niego trafiły, i wyświetla ją

8. Typowe błędy i niuanse

  1. 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ł.

  2. 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.

  3. 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ć.

  4. Wartości UID i GID. Czasami administratorzy chcą wskazać wartości UID (identyfikator użytkownika) i GID (identyfikator grupy) przy tworzeniu użytkownika. Do tego używane jest polecenie useradd, 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.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION