Zwykły użytkownik systemu Linux, który chce utworzyć konto użytkownika jan razem z jego katalogiem domowym, powinien wydać polecenie
A. sudo usermod -d /home/jan jan
B. sudo userdel -r jan
C. sudo useradd -m jan
D. useradd -m jan
Polecenie sudo useradd -m jan jest właściwe, bo zwykły użytkownik nie ma uprawnień do tworzenia kont systemowych, więc musi podnieść uprawnienia przez sudo. Sam program useradd służy do dodawania użytkownika w systemach Linux/Unix, a opcja -m wymusza utworzenie katalogu domowego, zwykle /home/jan, razem z podstawową strukturą plików kopiowaną z /etc/skel. To jest ważne praktycznie, bo bez katalogu domowego użytkownik może mieć konto w /etc/passwd, ale po zalogowaniu będzie miał problem z zapisem własnych ustawień powłoki, profilu, konfiguracji programów czy kluczy SSH. Z mojego doświadczenia to jedna z tych opcji, które warto zapamiętać od razu, bo w administracji Linuksem używa się jej bardzo często. Dobra praktyka jest taka, żeby po utworzeniu konta ustawić hasło poleceniem sudo passwd jan, sprawdzić wpisy w /etc/passwd i /etc/shadow, a w razie potrzeby dodać użytkownika do odpowiednich grup, np. sudo usermod -aG nazwa_grupy jan. W wielu dystrybucjach istnieje też wygodniejsze adduser, ale useradd jest klasycznym narzędziem administracyjnym i dobrze pokazuje, co faktycznie dzieje się w systemie.
W tym zadaniu łatwo pomylić samo polecenie administracyjne z uprawnieniami potrzebnymi do jego wykonania. useradd -m jan wygląda prawie dobrze, ponieważ rzeczywiście używa programu useradd i opcji -m, która tworzy katalog domowy. Problem jest taki, że pytanie mówi o zwykłym użytkowniku systemu Linux. Taki użytkownik nie może normalnie modyfikować plików kont, takich jak /etc/passwd, /etc/shadow czy /etc/group, bo są to krytyczne pliki systemowe. Bez sudo polecenie najpewniej zakończy się błędem odmowy dostępu. To nie jest detal kosmetyczny, tylko podstawa modelu bezpieczeństwa w Linuksie: administracyjne operacje wykonuje root albo użytkownik uprawniony przez mechanizm sudo.
Polecenie sudo userdel -r jan działa w zupełnie przeciwną stronę. userdel usuwa konto, a opcja -r dodatkowo usuwa katalog domowy i pocztę użytkownika. To mogłoby być użyte przy likwidacji konta pracownika czy konta testowego, ale nie przy tworzeniu nowego użytkownika. Częsty błąd myślowy polega tu na zauważeniu sudo i katalogu domowego, ale bez sprawdzenia znaczenia samego programu.
Z kolei sudo usermod -d /home/jan jan służy do modyfikacji istniejącego konta, konkretnie do ustawienia ścieżki katalogu domowego w danych użytkownika. Samo to polecenie nie tworzy nowego konta jan. Co więcej, bez dodatkowych opcji nie musi też przenieść zawartości starego katalogu domowego ani utworzyć brakującego katalogu. W praktycznej administracji trzeba rozróżniać trzy etapy: utworzenie użytkownika, utworzenie lub wskazanie katalogu domowego oraz późniejszą modyfikację parametrów konta. Poprawne podejście w tym przypadku to sudo useradd -m jan, bo łączy właściwe narzędzie, właściwą opcję i wymagane uprawnienia administracyjne.
Polecenie sudo userdel -r jan działa w zupełnie przeciwną stronę. userdel usuwa konto, a opcja -r dodatkowo usuwa katalog domowy i pocztę użytkownika. To mogłoby być użyte przy likwidacji konta pracownika czy konta testowego, ale nie przy tworzeniu nowego użytkownika. Częsty błąd myślowy polega tu na zauważeniu sudo i katalogu domowego, ale bez sprawdzenia znaczenia samego programu.
Z kolei sudo usermod -d /home/jan jan służy do modyfikacji istniejącego konta, konkretnie do ustawienia ścieżki katalogu domowego w danych użytkownika. Samo to polecenie nie tworzy nowego konta jan. Co więcej, bez dodatkowych opcji nie musi też przenieść zawartości starego katalogu domowego ani utworzyć brakującego katalogu. W praktycznej administracji trzeba rozróżniać trzy etapy: utworzenie użytkownika, utworzenie lub wskazanie katalogu domowego oraz późniejszą modyfikację parametrów konta. Poprawne podejście w tym przypadku to sudo useradd -m jan, bo łączy właściwe narzędzie, właściwą opcję i wymagane uprawnienia administracyjne.