Яка різниця між прихильником і useradd?


440

Яка різниця між командами adduserта useraddUbuntu?



5
а також на Unix stackexchange (досить детальна відповідь)
xealits

і це є і залишається хорошим, справедливим питанням. Питання не в тому, що люди його задають у відповідних контекстах, це те, що це питання потрібно взагалі задавати.
foo

Відповіді:


386

useraddє нативним двійковим файлом, складеним із системою. Але, adduserце сценарій perl, який використовує useraddбінарний в бек-енді.

adduserє більш зручним для користувача та інтерактивним, ніж його бек-енд useradd. Немає різниці в наданих функціях.

Джерело: Яка різниця між "adduser" і "useradd"?


59
додайте команду useradd не буду створювати каталог "home / username", але команда adduser буде
Deepen

65
useradd з -mопцією створить домашній каталог.
richsinn

10
Наслідування не таке цікаве, семантика. Like adduser(8)є більш зручним і створює та налаштовує користувача за замовчуванням так, як ви очікуєте. І useradd(8)виконайте лише те, що ви просите, так що ви хочете створити домашній каталог, ви повинні сказати йому, щоб створити його для вас.
Андерс

23
Я мушу щодня гуляти це ... Як я можу допомогти собі запам'ятати, що таке?
Квентін Скусен

11
@kkhugs для мене "аддусер" вважає себе найбільш інтуїтивно зрозумілим, оскільки це команда, яка звучить як англійська, а інша ні, семантично. Якщо ви пам'ятаєте його як "найбільш інтуїтивне" з двох, ви також можете спробувати запам'ятати його як кращий / легший.
pzkpfw

146

Завжди використовуйтеadduserdeluserпри видаленні користувачів) під час створення нових користувачів з командного рядка. (Якщо ви пишете сценарій, особливо якщо ви прагнете переносимості, можливо, замість цього скористаєтесь утилітами низького рівня - і adduser/ deluserможе бути недоступним у всіх дистрибутивах, наприклад, на SuSE.)

В useradd, userdelі usermodкоманди низькорівневих утиліт , які існують з історичних причин, в той час як adduser/deluserDo The Right Thing ™. (Я пам’ятаю, що використовувати, думаючи, що user*йде за adduser/deluserалфавітом, і тому «гірше».)

Відповідно до відповідних посібників (на Ubuntu 12.04 Precision Pangolin, тобто похідна система Debian).

Manpage для adduserкаже:

(Наголос додано.)

adduserі addgroupдодавати користувачів та групи до системи відповідно до параметрів командного рядка та інформації про конфігурацію в /etc/adduser.conf. Вони більш дружелюбним передні кінці з інструментами низького рівня , як useradd, groupaddі usermodпрограмою , за замовчуванням вибирає політику Debian UID і сумісний значення GID, створюючи домашній каталог з скелетної конфігурацією, запуск користувацького сценарію, і інші можливості. adduserі addgroupможе працювати в одному з п’яти режимів:

Manpage для useraddкаже:

useradd- це утиліта низького рівня для додавання користувачів. У Debian зазвичай adduser(8)замість цього використовуються адміністратори .

Дивіться також: Яка різниця між "adduser" і "useradd"? (на SuperUser)


6
Я ніколи не пам'ятаю, який з них, тож це моя дурна мнеміка, якщо вона допомагає комусь :), "користувач" римується з "програв", а "невдаха" стає останньою. Таким чином: прихильник, дезертир.
Mads Skjern

26
Я фактично не погоджуюся з " Завжди користувачемadduser ": Для автоматизованих сценаріїв я вважаю за краще, useraddоскільки він завжди є, неінтерактивний та не дистрофічний .
Wernight

2
Я спробував adduserна openSUSE, і його там немає. (13.2)
cst1992

1
@ cst1992 Ти маєш рацію, я змінив відповідь, щоб це відобразити. Цікаво, що, коли я приміряв locate adduserсистему SuSE 11 на роботі, я виявив, що там розміщено adduserвкладку, але немає бінарних файлів (і ні deluserманпаж, ні команда).
zrajm

2
On Red Hat/usr/sbin/adduser -> useradd
Левон

17

adduser: додайте користувача з повним профілем та інформацією (пропуск, квота, дозвіл тощо)

useradd: додайте користувача лише з його іменем (якщо ви хочете додати тимчасового користувача лише з іменем, інша інформація не потрібна)


1
+1 та Ласкаво просимо! Я проголосував за людину, яка не змогла пояснити свої попередні голоси. Тримай! Хороші програмісти завжди піднімаються на вершину - (і не вниз голосуйте без пояснення). :)
Ricalsin

11

Ще одна різниця, яка призводить до конкретних сценаріїв, де Useradd може бути кращим.

  1. У деяких нових дистрибутивах, включаючи Ubuntu 14.4, adduser запропонує інформацію, наприклад, пароль та "gecos" (дані для пальцевої команди). Це означає, що він може бути менш придатним для дзвінка зі сценарію (кредит: вже згадувалося в коментарі Wernight).

    Підказки можна придушити, передаючи нульові аргументи:

    adduser --disabled-password --gecos "" USER
    
  2. useraddдозволяє передавати кілька додаткових груп, щоб додати користувача за допомогою -Gопції. adduserСхоже, потрібно вимагати виклику команди один раз для кожної групи, яку потрібно додати.


Не працює на ubuntu 16.04.
відповідьПереглядач

8

adduserдружніше тим, що він налаштовує домашні папки облікового запису та інші налаштування (наприклад, автоматично завантажує статистику системи та повідомлення при вході в систему), тоді як useraddпросто створює користувача.


2
Неправильно. useradd може створити домашній каталог з -m, встановити пароль з -p, створити файли скелетів за допомогою -k та додати користувача до групи (-ів) з -G.
ychaouche

5

Основна відмінність полягає в тому, що "adduser" створить домашній каталог і додасть файли скелетів до тієї директорії, де "useradd" не створить будь-якого домашнього каталогу та файлів скелета!

спробуйте adduser:

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

useradd try1:

# 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#

Неправильно. Дивіться попередній коментар
ychaouche

0

Я також зазначу, що adduserне завжди є така -Mможливість, а також не поважає --systemпрапор, який конкретно говорить :

Зауважте, що useradd не створить домашній каталог для такого користувача, незалежно від налаштування за замовчуванням у /etc/login.defs (CREATE_HOME). Ви повинні вказати параметри -m, якщо ви хочете створити домашній каталог для створення облікового запису системи.

Якщо ви намагаєтесь створити користувача системи без домашнього каталогу, тоді використовуйте useradd --system -M.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.