Co robi adduser, czego nie robi użytkownik?

71

Oprócz bardziej rozpowszechnionych useradd, systemy oparte na Debianie zawierają także dodatkowe adduserpolecenie, które zapewnia interfejs wyższego poziomu do dodawania użytkowników i niektórych powiązanych zadań. Istnieją różne pytania / odpowiedzi na innych stronach SE, które szczegółowo opisują podstawowe różnice między tymi poleceniami, na przykład:

Większość odpowiedzi zasadniczo mówi, że adduserzapewnia ładniejszy interfejs do interaktywnego dodawania użytkowników, ale nie podaje zbyt wielu szczegółów na temat tego, co się dzieje, gdy adduserjest uruchamiany, a nie w porównaniu useradd. Więc:

  1. Co adduserto useraddrobi?
  2. Jakich poleceń muszę użyć, aby uzyskać równoważne wyniki?
Graeme
źródło

Odpowiedzi:

79

Po pierwsze, odpowiednie fragmenty strony podręcznika podkreślają różnice między tymi dwoma poleceniami i dają pewne wskazówki, co się dzieje. Dla adduser:

adduser i addgroup dodają użytkowników i grupy do systemu zgodnie z opcjami wiersza poleceń i informacjami konfiguracyjnymi w /etc/adduser.conf. Są bardziej przyjaznymi interfejsami dla narzędzi niskiego poziomu, takich jak useradd, groupadd i usermod, domyślnie wybierając wartości UID i GID zgodne z zasadami Debiana, tworząc katalog domowy z konfiguracją szkieletową, uruchamiając własny skrypt i inne funkcje.

Następnie dla useradd:

useradd to narzędzie niskiego poziomu do dodawania użytkowników. W Debianie administratorzy powinni zwykle używać adduser (8).

Dalsze dochodzenie w sprawie adduserujawnia, że ​​jest to skrypt perla zapewniający interfejs wysokiego poziomu, a tym samym oferujący niektóre funkcje następujących poleceń:

  • useradd
  • groupadd
  • passwd - służy do dodawania / zmiany haseł użytkowników.
  • gpasswd - służy do dodawania / zmiany haseł grupowych.
  • usermod - służy do zmiany różnych parametrów związanych z użytkownikiem.
  • chfn - służy do dodawania / zmiany dodatkowych informacji przechowywanych przez użytkownika.
  • chage - służy do zmiany informacji o wygaśnięciu hasła.
  • edquota - służy do zmiany limitów użycia dysku.

Podstawowy przebieg adduserpolecenia wygląda następująco:

adduser username

To proste polecenie zrobi wiele rzeczy:

  1. Utwórz użytkownika o nazwie username.
  2. Utwórz katalog domowy użytkownika (domyślnie jest /home/usernamei skopiuj z niego pliki /etc/skel.
  3. Utwórz grupę o tej samej nazwie co użytkownik i umieść w niej użytkownika.
  4. Monituj o hasło dla użytkownika.
  5. Monituj o dodatkowe informacje o użytkowniku.

useraddProgram może wykonać większość większość z tego jednak nie robi tego domyślnie i potrzebuje dodatkowych opcji. Niektóre informacje wymagają więcej poleceń:

useradd -m -U username
passwd username
chfn username

Pamiętaj, że adduserzapewnia, że ​​utworzone identyfikatory UID i GID są zgodne z polityką Debiana . useraddWydaje się, że tworzenie zwykłych użytkowników jest w porządku, pod warunkiem, że UID_MIN/ UID_MAXin /etc/login.defsodpowiada polityce Debiana. Problemem jest jednak to, że Debian określa konkretny zakres identyfikatorów UID użytkowników systemu, który wydaje się być obsługiwany /etc/adduser.conf, więc naiwne dodanie użytkownika systemu useraddi brak podania identyfikatora UID / GUID we właściwym zakresie pozostawia możliwość poważnych problemów.

Innym powszechnym zastosowaniem adduserjest uproszczenie procesu dodawania użytkownika do grupy. Tutaj następujące polecenie:

adduser username newgroup

zastępuje bardziej złożone usermodpolecenie, które wymaga określenia grup, których użytkownik jest już członkiem (i dla których użytkownik powinien pozostać członkiem):

usermod -G all,other,groups,user,is,in,newgroup

Jedną z wad korzystania z addusertego rozwiązania jest to, że można określić tylko jedną grupę na raz.

Graeme
źródło
To jest fajne! Nawet nie wiedziałem, że to pytanie. Czy to, co robi userdd, wymaga hashowanych haseł? Nawiasem mówiąc, to bardzo dobra robota.
mikeserv
Nie wiem jednak, czy całkowicie zgadzam się ze stwierdzeniem „administratorzy powinni ...” ... Osobiście uważam, że administrator prawdopodobnie powinien opracować własne adduserzgodnie z ogólnymi zasadami systemu, ale to tylko fotel co najwyżej rozgrywający.
mikeserv
@ Mikeserv, nie, nie ma żadnych zaszyfrowanych haseł. Jest jednak inny program, o którym powinieneś wiedzieć - chpasswd- który może akceptować włączone hasła stdin. Myślę, że poczekam do jutra, zanim zaktualizuję tę inną odpowiedź.
Graeme
niezły post. Dla mnie trochę za dużo szczegółów. Najbardziej tęsknię za tym, że adduserzostał pierwotnie stworzony dla administratorów serwerów, którzy często potrzebowali tworzyć / modyfikować / ograniczać prawdziwych użytkowników, jak na serwerze poczty e-mail na uniwersytecie. Dzięki addusermożesz zautomatyzować proces. To się nieco zmieniło przez lata, dlatego w dzisiejszych czasach useraddwielu administratorów może być trudne i dla nich adduserstało się narzędziem wyboru.
Na moim Ubuntu 16.04 -U/ --user-groupwydaje się być domyślny.
Franklin Yu
2

Polecenie adduser domyślnie tworzy również katalog / home / user dla użytkowników systemu, czego nie można zrobić z poleceniem useradd . useradd dodaje katalogi domowe tylko dla zwykłych użytkowników, a nie użytkowników systemu.

MFPII
źródło
1

Administrator systemu może zrobić z useradd wszystko, co można zrobić za pomocą adduser. Stwierdzono tutaj, że nie można utworzyć katalogu / home / user dla użytkowników systemu z useradd i absolutnie można to zrobić, modyfikując pliki zawarte w / etc / skel. / etc / skel zawiera zestaw plików początkowo używanych do zapełnienia katalogu domowego nowego użytkownika.

niten1
źródło