В чем разница между adduser и useradd?

В чем разница между командами adduser а также useradd на Ubuntu?

10 ответов

Решение

useradd это родной двоичный файл, скомпилированный с системой. Но, adduser это Perl-скрипт, который использует useradd бинарный в фоновом режиме.

adduser более удобный и интерактивный, чем его бэкэнд useradd, Там нет никакой разницы в предоставляемых функциях.

Источник: В чем разница между "adduser" и "useradd"?

Всегда используйте adduser (а также deluser при удалении пользователей) при создании новых пользователей из командной строки. (Если вы пишете сценарий, особенно если вы стремитесь к переносимости, вы можете вместо этого использовать утилиты низкого уровня - и adduser / deluser может быть недоступен на всех дистрибутивах, например, на SuSE.)

useradd, userdel а также usermod Команды - это утилиты низкого уровня, которые существуют по историческим причинам, в то время как adduser/deluser Делай как надо ™. (Я помню, что использовать, думая, что user* идет после adduser/deluser в алфавите, а значит и "хуже".)

Согласно соответствующим страницам руководства (в Ubuntu 12.04 Precise Pangolin, то есть в производной системе Debian).

Manpage for adduser говорит:

(Акцент добавлен.)

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

Manpage for useradd говорит:

useradd утилита низкого уровня для добавления пользователей На Debian администраторы обычно должны использовать adduser(8) вместо.

Смотрите также: в чем разница между "adduser" и "useradd"? (на SuperUser)

adduser: добавить пользователя с полным профилем и информацией (пароль, квота, разрешение и т. д.)

useradd: добавить пользователя только с его именем (если вы хотите добавить временного пользователя только с именем, другая информация не требуется)

Еще одна пара отличий, которые приводят к конкретным сценариям, где использование useradd может быть предпочтительным.

  1. В некоторых новых дистрибутивах, включая Ubuntu 14.4, adduser будет запрашивать такую ​​информацию, как пароль и "gecos" (данные для команды finger). Это означает, что он может быть менее подходящим для вызова из скрипта (кредит: уже упоминалось в комментарии Wernight).

    Подсказки можно подавить, передав нулевые аргументы:

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

adduser удобнее в том, что он устанавливает домашние папки учетной записи и другие настройки (например, автоматическая загрузка статистики системы и уведомлений при входе в систему), тогда как useradd просто создает пользователя.

Основное отличие заключается в том, что "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#

Самая большая разница между использованием adduser и useradd является:

  • С участием adduser, по умолчанию будет создана домашняя папка для пользователя.
  • С участием useradd команда, у пользователя нет домашней папки.

Поэтому я предлагаю вам использовать adduser Вместо того, чтобы использовать useradd.

В частности, с помощью useradd вам следует быть более явным, поскольку он, например, не создает домашний каталог, вы должны использовать опцию -m или -p для установки пароля. Еще одним важным отличием является то, что useradd имеет другие настройки, чем adduser, например, устанавливает для пользователя другую оболочку. В большинстве дистрибутивов useradd устанавливает usr/bin/sh, а adduser устанавливает usr/bin/bash.

Я также укажу, что adduser не всегда имеет -M вариант, а также не уважает --system флаг который конкретно говорит:

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

Если вы пытаетесь создать системного пользователя без домашнего каталога, используйте useradd --system -M,

Интерактивный способ adduser для создания учетных записей и pwd с помощью одной команды. Который можно найти только в дистрибутивах семейства Debian.

И adduser , и useradd выполняют одну и ту же функцию; с небольшими отличиями в пользу adduser.

При создании пользователя с помощью adduser он автоматически зашифрует домашний каталог пользователя (с разрешением 755).

Другие вопросы по тегам