15 przydatnych poleceń Useradd z przykładami w systemie Linux
Wszyscy znamy najpopularniejsze polecenia zwane „useradd” lub „adduser” w systemie Linux. Czasami administrator systemu Linux jest proszony o utworzenie kont użytkowników w systemie Linux z określonymi właściwościami, ograniczeniami lub komentarzami.
W systemie Linux polecenie „useradd” to narzędzie niskiego poziomu używane do dodawania lub tworzenia kont użytkowników w systemie Linux i innych systemach operacyjnych typu Unix. Polecenie „adduser” jest bardzo podobne do polecenia „useradd”, ponieważ stanowi jedynie dowiązanie symboliczne do niego.
W niektórych dystrybucjach Linuksa polecenie „useradd” może mieć nieco inną wersję. Sugeruję przeczytanie dokumentacji przed skorzystaniem z naszych instrukcji dotyczących tworzenia nowych kont użytkowników w systemie Linux.
Kiedy uruchomimy polecenie „useradd” na terminalu Linux, wykonuje ono następujące główne zadania:
- Edytuje /etc/passwd, /etc/shadow, /etc/group i /etc/gshadow pliki dla nowo utworzonych kont użytkowników.
- Tworzy i zapełnia katalog domowy dla nowego użytkownika.
- Ustawia uprawnienia i własność katalogu domowego.
Składnia polecenia Useradd
Podstawowa składnia polecenia „useradd” jest następująca:
useradd [options] username
W tym artykule zademonstrujemy 15 najczęściej używanych poleceń „useradd” wraz z praktycznymi przykładami w systemie Linux.
1. Jak dodać nowego użytkownika w systemie Linux
Aby dodać lub utworzyć nowego użytkownika, musisz użyć polecenia „useradd” lub „adduser”, po którym następuje „nazwa użytkownika”. „Nazwa użytkownika” to nazwa logowania, której użytkownik używa do logowania się do systemu.
Można dodać tylko jednego użytkownika, a nazwa użytkownika musi być unikalna i nie istnieć jeszcze w systemie.
Na przykład, aby dodać nowego użytkownika o nazwie „tecmint”, użyj następującego polecenia:
useradd tecmint
Kiedy dodamy nowego użytkownika w systemie Linux za pomocą polecenia „useradd”, zostanie on utworzony w stanie zablokowanym. Aby odblokować to konto użytkownika, musimy ustawić dla niego hasło za pomocą polecenia „passwd”.
passwd tecmint
Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Po utworzeniu nowego użytkownika jego wpis jest automatycznie dodawany do pliku „/etc/passwd”. Plik ten służy do przechowywania informacji o użytkowniku i taki powinien być wpis.
tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
Powyższy wpis zawiera zestaw siedmiu pól oddzielonych dwukropkami, a każde pole ma swoje własne znaczenie.
Zobaczmy, czym są te pola:
- Nazwa użytkownika – nazwa logowania użytkownika służy do logowania się do systemu. Powinien mieć długość od 1 do 32 znaków.
- Hasło – hasło użytkownika (lub znak
'x'
) jest przechowywane w pliku „/etc/shadow” w zaszyfrowanym formacie. - Identyfikator użytkownika (UID) – każdy użytkownik musi posiadać identyfikator użytkownika (UID), który oznacza Numer identyfikacyjny użytkownika. Domyślnie UID 0 jest zarezerwowany dla użytkownika root, a identyfikatory UID od 1 do 99 są zarezerwowane dla innych predefiniowanych kont. Dodatkowo dla kont i grup systemowych zarezerwowane są identyfikatory UID z zakresu od 100 do 999.
- Identyfikator grupy (GID) – podstawowy identyfikator grupy (GID), który oznacza Numer identyfikacyjny grupy, jest przechowywany w pliku „ /etc/group”.
- Informacje o użytkowniku – to pole jest opcjonalne i pozwala na zdefiniowanie dodatkowych informacji o użytkowniku, takich jak jego imię i nazwisko. Informacje te można uzupełnić za pomocą polecenia palca.
- Katalog domowy – bezwzględna lokalizacja katalogu domowego użytkownika.
- Powłoka – bezwzględna lokalizacja powłoki użytkownika, tj. /bin/bash.
2. Jak utworzyć użytkownika z innym katalogiem domowym
Domyślnie polecenie „useradd” tworzy katalog domowy użytkownika w katalogu „/home” zawierający nazwę użytkownika. Na przykład, jak widać powyżej, domyślny katalog domowy użytkownika „tecmint” to „/home/tecmint”.
Jednak to zachowanie można zmienić, używając opcji '-d'
wraz z lokalizacją nowego katalogu domowego (np. „/data/projects”). Na przykład poniższe polecenie utworzy użytkownika „anusha” z katalogiem domowym ustawionym na „/data/projects”.
useradd -d /data/projects anusha
passwd anusha
Możesz wyświetlić katalog domowy użytkownika i inne informacje związane z użytkownikiem, takie jak identyfikator użytkownika, identyfikator grupy, powłoka i komentarze, używając następującego polecenia cat.
cat /etc/passwd | grep anusha
anusha:x:1001:1001::/data/projects:/bin/bash
3. Jak utworzyć użytkownika z określonym identyfikatorem użytkownika
W Linuksie każdy użytkownik ma swój własny UID (unikalny numer identyfikacyjny). Domyślnie, gdy tworzymy nowe konto użytkownika w Linuksie, przypisuje ono identyfikatory użytkowników 500, 501, 502 i tak dalej.
Możemy jednak tworzyć użytkowników z niestandardowymi identyfikatorami użytkowników, używając opcji '-u'
. Na przykład poniższe polecenie utworzy użytkownika „navin” z niestandardowym identyfikatorem użytkownika „1002”.
useradd -u 1002 navin
Teraz sprawdźmy, czy użytkownik utworzył plik ze zdefiniowanym identyfikatorem użytkownika (1002), używając następującego polecenia.
cat /etc/passwd | grep navin
navin:x:1002:1002::/home/navin:/bin/bash
UWAGA: upewnij się, że wartość identyfikatora użytkownika musi być unikalna w porównaniu z innymi użytkownikami już utworzonymi w systemie.
4. Jak utworzyć użytkownika z określonym identyfikatorem grupy
Podobnie każdy użytkownik ma swój własny GID (Identyfikator grupy). Możemy również tworzyć użytkowników z określonymi identyfikatorami grup, korzystając z opcji '-g'
.
W tym przykładzie dodamy użytkownika „tarunika” z określonym UID i GID jednocześnie za pomocą '- opcje u'
i '-g'
.
useradd -u 1005 -g tecmint tarunika
Teraz sprawdź przypisany identyfikator użytkownika i identyfikator grupy w pliku „/etc/passwd”.
cat /etc/passwd | grep tarunika
tarunika:x:1005:1000::/home/tarunika:/bin/bash
Aby zweryfikować GID użytkownika użyj komendy id:
id -gn tarunika
5. Jak dodać użytkownika do wielu grup
Opcja '-G'
służy do dodania użytkownika do dodatkowych grup. Każda nazwa grupy jest oddzielona przecinkiem, bez spacji.
W tym przykładzie dodajemy użytkownika „tecmint” do wielu grup, takich jak administratorzy, webadmin i programiści mocny>.
groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy
Następnie sprawdź, czy do użytkownika przypisano wiele grup za pomocą polecenia id.
id tecmint
uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
6. Jak dodać użytkownika bez katalogu domowego
W niektórych sytuacjach, gdy ze względów bezpieczeństwa nie chcemy przypisywać użytkownikowi katalogów domowych, katalog domowy użytkownika będzie katalogiem root, gdy zaloguje się on do systemu, który właśnie został ponownie uruchomiony. Gdy taki użytkownik użyje polecenia „su”, jego katalogiem logowania będzie katalog domowy poprzedniego użytkownika.
Aby utworzyć użytkowników bez ich katalogów domowych, używana jest opcja '-M'
. Na przykład poniższe polecenie utworzy użytkownika „shilpi” bez katalogu domowego.
useradd -M shilpi
Teraz sprawdźmy, czy użytkownik został utworzony bez katalogu domowego, używając polecenia ls.
ls -l /home/shilpi
ls: cannot access /home/shilpi: No such file or directory
7. Jak utworzyć użytkownika z datą wygaśnięcia w systemie Linux
Domyślnie, gdy dodajemy użytkowników za pomocą polecenia „useradd”, konto użytkownika nigdy nie wygasa, co oznacza, że jego data wygaśnięcia jest ustawiona na 0 (co oznacza, że nigdy nie wygasła).
Datę wygaśnięcia możemy jednak ustawić za pomocą opcji '-e'
, która powinna być w formacie RRRR-MM-DD. Jest to przydatne przy tworzeniu kont tymczasowych na określony czas.
W tym przykładzie tworzymy użytkownika „aparna” z datą wygaśnięcia konta, czyli 27 sierpnia 2021, w formacie RRRR-MM-DD formatować.
useradd -e 2021-08-27 aparna
Następnie zweryfikuj informacje o wieku konta i hasła za pomocą polecenia „chage” dla użytkownika „aparna” po ustawieniu daty wygaśnięcia konta.
chage -l aparna
Last password change : Jun 25, 2021
Password expires : never
Password inactive : never
Account expires : Aug 27, 2021
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
8. Jak utworzyć użytkownika z datą ważności hasła
Argument '-f'
służy do określenia liczby dni po wygaśnięciu hasła. Wartość 0 dezaktywuje konto użytkownika zaraz po wygaśnięciu hasła. Domyślnie wartość ważności hasła jest ustawiona na -1
, co oznacza, że nigdy nie wygasa.
W tym przykładzie ustawimy datę ważności hasła do konta, która wynosi 45 dni, dla użytkownika „mansi” za pomocą '-e'
i '-f'
.
useradd -e 2014-04-27 -f 45 mansi
9. Jak dodać użytkownika z komentarzami w systemie Linux
Opcja '-c'
umożliwia dodanie niestandardowych komentarzy, takich jak imię i nazwisko użytkownika, numer telefonu itp., do pliku „/etc/passwd”. Komentarz można dodać w pojedynczej linii, bez spacji.
Na przykład poniższe polecenie doda użytkownika „mansi” i wstawi jego pełne imię i nazwisko, Manis Khurana, w polu komentarza.
useradd -c "Manis Khurana" mansi
Możesz wyświetlić wstawiony komentarz w pliku „/etc/passwd” w sekcji komentarzy za pomocą polecenia tail.
tail -1 /etc/passwd
mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh
10. Jak utworzyć powłokę logowania użytkownika w systemie Linux
Czasami dodajemy użytkowników, którzy nie mają nic wspólnego z powłoką logowania, a czasami musimy przypisać naszym użytkownikom różne powłoki. Każdemu użytkownikowi możemy przypisać różne powłoki logowania za pomocą opcji „-s”.
W tym przykładzie zostanie dodany użytkownik „tecmint” bez powłoki logowania, tj. powłoki „/sbin/nologin”.
useradd -s /sbin/nologin tecmint
Możesz sprawdzić powłokę przypisaną do użytkownika w pliku „/etc/passwd”.
tail -1 /etc/passwd
tecmint:x:1011:1014::/home/tecmint:/sbin/nologin
11. Jak utworzyć użytkownika z określonym domem, powłoką i komentarzem
Poniższe polecenie utworzy użytkownika „ravi” z katalogiem domowym „/var/www/tecmint”, domyślną powłoką /bin/bash oraz dodatkowe informacje o użytkowniku.
useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi
W powyższym poleceniu opcje '-m'
i '-d'
tworzą użytkownika z określonym katalogiem domowym, a '-s'
ustawia domyślną powłokę użytkownika na /bin/bash. Opcja '-c'
dodaje dodatkowe informacje o użytkowniku, a argument '-U'
tworzy/dodaje grupę o tej samej nazwie co użytkownik.
12. Jak utworzyć użytkownika ze zdefiniowanym domem, powłoką, komentarzem, UID/GID
Polecenie jest bardzo podobne do powyższego, ale tutaj definiujemy powłokę jako „/bin/zsh” i ustawiamy niestandardowe UID i GID dla użytkownika „tarunika”. Opcja '-u'
definiuje UID nowego użytkownika (tj. 100), a opcja '-g'
definiuje GID (tj. , 1000).
useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika
13. Jak utworzyć użytkownika z domem, bez powłoki, komentarza i UID
Poniższe polecenie jest bardzo podobne do dwóch powyższych poleceń. Jedyna różnica polega na tym, że tutaj wyłączyliśmy powłokę logowania dla użytkownika o nazwie „avishek” z niestandardowym identyfikatorem użytkownika (tj. 1019).
Opcja '-s'
ustawia domyślną powłokę na /bin/bash, ale w tym przypadku ustawiamy powłokę logowania na '/usr/sbin/ nologin”. Oznacza to, że użytkownik „avishek” nie będzie mógł zalogować się do systemu.
useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek
14. Jak utworzyć użytkownika z określonym domem, powłoką, szkieletem i UID
Jedyna zmiana w tym poleceniu polega na tym, że użyliśmy opcji '-k'
, aby ustawić niestandardowy katalog szkieletu na /etc/custom.skell zamiast domyślnego, /etc/skel. Użyliśmy także opcji '-s'
, aby zdefiniować inną powłokę /bin/tcsh dla użytkownika „navin”.
useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin
15. Jak utworzyć użytkownika bez domu, powłoki lub grupy, z komentarzem
Poniższe polecenie bardzo różni się od pozostałych poleceń wyjaśnionych powyżej. Tutaj użyliśmy opcji '-M'
, aby utworzyć użytkownika bez katalogu domowego użytkownika, a opcja '-N'
została użyta do poinstruowania systemu, aby tylko utworzył nazwa użytkownika (bez grupy). Opcja '-r'
służy do tworzenia użytkownika systemowego.
useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton
Aby uzyskać więcej informacji i opcji dotyczących „useradd”, uruchom polecenie „useradd” w terminalu, aby zobaczyć dostępne opcje
useradd
Jeśli chcesz zmodyfikować atrybuty konta użytkownika, takie jak nazwa użytkownika, identyfikator użytkownika (UID), katalog domowy, powłoka i inne, użyj komendy usermod.