Zarządzanie użytkownikami: listowanie, dodawnie, usuwanie, zmiana hasła - Ubuntu
Ostatnim razem pisałem jak pozwolić użytkownikowi korzystać z polecenia sudo, poprzez przypisanie go do odpowiedniej grupy. Tym razem omówię szersze zagadnienie jakim jest zarządzanie użytkownikami systemu.
Co rozumiemy przez zarządzanie użytkownikami?
W artykule tym przedstawię podstawowe operacje z obszaru zarządzania użytkownikami. Mianowicie, pokażę jak wyświetlić listę użytkowników dostępnych w systemie, jak dodać nowego, usunąć istniejącego, zmienić mu nazwę i hasło.
Taki zakres umiejętności pokrywa zdecydowaną większość przypadków potrzeby manipulacji kontami w systemie. Przejdę więc do rzeczy.
Jak wyświetlić listę użytkowników?
Pierwsza informacja od jakiej należy zacząć to z pewnością ta, że sercem podstawowych informacji o użytkownikach w systemie Linux jest plik /etc/passwd. Jego nazwa nie jest już adekwatna do treści jaką zawiera, ponieważ haseł akurat tam się nie znajdzie, natomiast dawniej były i one. Są tam natomiast nazwy użytkowników i dodatkowe informacje takie jak ich numer UID, domyślna grupa, czy domyślny shell.
Podejrzę trzy pierwsze linijki tego pliku.
$ head -n 3 /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x:2:2:bin:/bin:/usr/sbin/nologin
Widać, że nazwa użytkownika jest wartością z pierwszej kolumny danych, które separowane są znakiem dwukropka. Resztę danych w tym artykule zupełnie pomijam. W ten sposób można przejrzeć użytkowników i w większości przypadków taka forma danych będzie wystarczająca. Jeżeli jednak chcieć wyłowić z pliku /etc/passwd wyłącznie nazwy użytkowników, tak żeby lista była bardziej przejrzysta, to można to zrobić na wiele sposobów. Mi osobiście do gustu przypadają dwa popularne snippety oparte o polecenia awk i sed.
Zacznę od awk. Jak już zaznaczyłem, separatorem informacji jest dwukropek. Przekazując tę informację flagą -F i prosząc o wyświetlenie tylko pierwszej tak powstałej kolumny, odsiane zostaną tylko nazwy użytkowników. Polecenie takie wygląda następująco.
Co w praktyce wygląda tak.
$ awk -F : '{ print $1}' /etc/passwd | head -n 3
root
daemon
binJeśli składnia polecenia awk jest zbyt skomplikowana, być może komenda sed będzie łatwiejsza do zapamiętania. Poproszę w niej wyłącznie o to, by usunąć wszystko co następuje w wierszu od dwukropka włącznie (ściślej mówiąc, nie tyle jest ten fragment wiersza usunięty, co zastąpiony pustym stringiem).
Efekt będzie dokładnie ten sam co w przypadku polecenia awk.
$ sed 's/:.*//' /etc/passwd | head -n 3 root daemon bin
Jak dodać użytkownika?
Aby stworzyć nowego użytkownika w systemie możemy się posłużyć dwoma poleceniami: useradd i adduser. Pierwsze z nich jest bardziej niskopoziomowe i generalnie korzystanie z niego nie jest zalecane. Natomiast komenda adduser jest przyjaznym użytkownikowi skryptem wykorzystującym w tle useradd. Skrypt ten zbierze podstawowe informacje o nowym userze i stworzy jego wpisy w systemie a także utworzy mu katalog domowy.
Poniżej przedstawiam outputy z pracy z tymi poleceniami.
$ sudo useradd tmpuser $ sed 's/:.*//' /etc/passwd | tail -n 1 tmpuser
$ sudo adduser tmpuser Dodawanie użytkownika "tmpuser"... Dodawanie nowej grupy "tmpuser" (1002)... Dodawanie nowego użytkownika "tmpuser" (1002) w grupie "tmpuser"... Tworzenie katalogu domowego "/home/tmpuser"... Kopiowanie plików z "/etc/skel" ... Proszę podać nowe hasło UNIX: Proszę ponownie podać hasło UNIX: passwd: hasło zostało zmienione Zmieniam informację o użytkowniku tmpuser Wpisz nową wartość lub wciśnij ENTER by przyjąć wartość domyślną Imię i nazwisko []: Numer pokoju []: Telefon do pracy []: Telefon domowy []: Inne []: Czy informacja jest poprawna? [T/n] t
Jak usunąć użytkownika?
Jeśli zaś chodzi o usuwanie istniejących użytkowników, sprawa ma się podobnie jak w przypadku ich dodawania. To znaczy, że jest komenda userdel i bardziej wysokopoziomowy i zalecany skrypt deluser. Ich składnia jest bardzo podobna.
W użyciu wyglądają one jak poniżej.
$ sudo userdel tmpuser
$ sudo deluser tmpuser Usuwanie użytkownika "tmpuser" ... Ostrzeżenie: grupa "tmpuser" nie ma już żadnych członków. Gotowe.
Jak zmienić nazwę użytkownika?
Do zmiany nazwy użytkownika zalecam posłużyć się poleceniem usermod. Jest to dość potężne narzędzie i bynajmniej nie służy wyłącznie do zmiany nazwy, ale do modyfikowania informacji o użytkowniku w ogólności (np. przeniesienie jego katalogu domowego itp.). Zachęcam do zapoznania się z manualem do tego polecenia.
Znajdując się w kontekście potrzeby zmiany nazwy użytkownika interesować mnie będzie flaga -l (skrót od --login).
$ sudo useradd tmpuser $ sudo usermod -l jacek tmpuser $ tail -n 1 /etc/passwd jacek:x:1002:1002::/home/tmpuser:
Jak zmienić hasło użytkownika?
Na koniec zostaje zagadnienie zmiany hasła użytkownika. Do tego celu posłużę się komendą passwd. Wystarczy przekazać o jakiego użytkownika chodzi a następnie podać nowe hasła i je potwierdzić.
$ sudo passwd tmpuser Proszę podać nowe hasło UNIX: Proszę ponownie podać hasło UNIX: passwd: hasło zostało zmienione
Warto również zaznaczyć, że tym sposobem możemy nadać hasło użytkownikowi stworzonemu przy pomocy polecenia useradd.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!