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

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

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

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

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

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

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

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

Справочная страница для adduser говорит:

(Курсив добавлен.)

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

Справочная страница для useradd говорит:

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

Смотрите также: В чем разница между “adduser” и “useradd”? (для суперпользователя)

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

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

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

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

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

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

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

Основное отличие заключается в том, что "adduser" создаст домашний каталог и добавит файлы скелета в этот каталог, где "useradd" не создаст никакого домашнего каталога и файлов скелета!

попытка добавления пользователя :

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 successfullyChanging the user information for tryEnter 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 попытка 1 :

# ll /home/total 20drwxr-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.

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

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

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

Тот же вопрос [о суперпользователе](linux - What's the difference between "adduser" and "useradd"? - Super User /) и [при сбое сервера](debian - What's the difference between 'useradd' and 'adduser'? - Server Fault /)

а также на Unix stackexchange (довольно подробный ответ)

и это был и остается хорошим, обоснованным вопросом. Проблема не в том, что люди задают его в соответствующих контекстах, а в том, что этот вопрос вообще нужно задавать.