Jaka jest różnica między poleceniami adduser
a useradd
Ubuntu?
Jaka jest różnica między poleceniami adduser
a useradd
Ubuntu?
Odpowiedzi:
useradd
jest natywnym plikiem binarnym skompilowanym z systemem. Aleadduser
jest skryptem perla, który używauseradd
binarnego zaplecza.
adduser
jest bardziej przyjazny dla użytkownika i interaktywny niż jego zapleczeuseradd
. Nie ma różnicy w udostępnianych funkcjach.
-m
opcją utworzy katalog domowy.
adduser(8)
jest bardziej przyjazny dla użytkownika i domyślnie tworzy i konfiguruje użytkownika w oczekiwany sposób. I useradd(8)
rób tylko to, o co prosisz, więc jeśli chcesz stworzyć katalog domowy, musisz mu powiedzieć, żeby go utworzył.
Zawsze używajadduser
(i deluser
podczas usuwania użytkowników), gdy tworzysz nowych użytkowników z wiersza poleceń. (Jeśli piszesz skrypt, zwłaszcza jeśli zależy Ci na przenośności, możesz zamiast tego użyć narzędzi niskiego poziomu - i adduser
/ deluser
może nie być dostępny we wszystkich dystrybucjach, np. Na SuSE.)
Te useradd
, userdel
i usermod
polecenia są narzędzia lowlevel które są tam ze względów historycznych, a adduser/deluser
postąpić właściwie ™. (Pamiętam, którego użyć, myśląc, że user*
pojawia się adduser/deluser
w alfabecie, a zatem jest „gorszy”).
Według odpowiednich stron podręcznika (na Ubuntu 12.04 Precise Pangolin, tj. Systemie pochodnym Debiana).
adduser
mówi:(Podkreślenie dodane.)
adduser
iaddgroup
dodaj użytkowników i grupy do systemu zgodnie z opcjami wiersza poleceń i informacjami o konfiguracji w/etc/adduser.conf
. Są przyjaznym dla użytkownika interfejsem do narzędzi takich jak niski poziomuseradd
,groupadd
iusermod
programów , domyślnie wybiera Debian Policy respektować wartości UID i GID, tworząc katalog domowy z konfiguracją szkieletowych, uruchomienie skryptu niestandardowego i innych funkcji.adduser
iaddgroup
może być uruchomiony w jednym z pięciu trybów:
useradd
mówi:
useradd
to narzędzie niskiego poziomu do dodawania użytkowników. W Debianie administratorzy powinni zwykle używaćadduser(8)
zamiast tego.
Zobacz także: Jaka jest różnica między „adduser” a „useradd”? (na SuperUser)
adduser
”: W przypadku skryptów automatycznych wolałbym, useradd
ponieważ zawsze tam jest, nieinteraktywny i nie specyficzny dla dystrybucji .
adduser
na openSUSE, ale go tam nie ma (13.2)
locate adduser
system SuSE 11 w pracy, okazało się, że nie ma adduser
strony podręcznej, ale nie ma pliku binarnego (ani strony deluser
podręcznej, ani polecenia).
/usr/sbin/adduser -> useradd
adduser
: dodaj użytkownika z pełnym profilem i informacjami (przepustka, limit, zezwolenie itp.)
useradd
: dodaj użytkownika tylko z jego nazwiskiem (jeśli chcesz dodać użytkownika tymczasowego z tylko nazwą, inne informacje nie są wymagane)
Kolejna kilka różnic, które prowadzą do konkretnych scenariuszy, w których dodanie użytkownika może być lepsze.
W niektórych nowszych dystrybucjach, w tym Ubuntu 14.4, adduser poprosi o informacje, takie jak hasło i „gecos” (dane dla polecenia palcem). Oznacza to, że może być mniej odpowiedni do wywoływania ze skryptu (kredyt: wspomniano już w komentarzu Wernight).
Podpowiedzi można ukryć, przekazując argumenty zerowe:
adduser --disabled-password --gecos "" USER
useradd
pozwala przekazać wiele dodatkowych grup, do których można dodać użytkownika za pomocą -G
opcji. adduser
wydaje się wymagać, aby wywołać polecenie raz dla każdej grupy, aby dodać.
adduser
jest bardziej przyjazny, ponieważ konfiguruje katalogi domowe konta i inne ustawienia (np. automatyczne ładowanie statystyk systemowych i powiadomień przy logowaniu), podczas gdy useradd
po prostu tworzy użytkownika.
Podstawowa różnica polega na tym, że „adduser” utworzy katalog domowy i doda pliki szkieletowe do tego katalogu, w którym „useradd” nie utworzy żadnego katalogu domowego i plików szkieletowych!
Adding user `try' ...
Adding new group `try' (1001) ...
Adding new user `try' (1001) with group `try' ...
Creating home directory `/home/try' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for try
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
# ll /home/
total 20
drwxr-xr-x 5 root root 4096 Oct 26 15:52 ./
drwxr-xr-x 22 root root 4096 Oct 26 15:47 ../
drwx------ 8 ashishk ashishk 4096 Oct 26 15:50 ashishk/
drwxr-xr-x 3 root root 4096 Oct 14 13:02 .ecryptfs/
drwxr-xr-x 2 try try 4096 Oct 26 15:52 try/
root@chef-workstation:/home/ashishk#
Zaznaczę również, że adduser
nie zawsze ma taką -M
opcję, a także nie przestrzega --system
flagi, która wyraźnie mówi :
Zauważ, że useradd nie utworzy katalogu domowego dla takiego użytkownika, niezależnie od domyślnego ustawienia w /etc/login.defs (CREATE_HOME). Musisz określić opcje -m, jeśli chcesz utworzyć katalog domowy konta systemowego.
Jeśli próbujesz utworzyć użytkownika systemu bez katalogu domowego, użyj useradd --system -M
.