В чем разница между командами adduser
и useradd
на Ubuntu?
useradd
это собственный двоичный файл, скомпилированный вместе с системой. Но,adduser
это скрипт на perl, который используетuseradd
двоичный файл в фоновом режиме.
adduser
является более удобным для пользователя и интерактивным, чем его серверная частьuseradd
. Нет никакой разницы в предоставляемых функциях.
Всегда используйте adduser
(и deluser
при удалении пользователей), когда вы создаете новых пользователей из командной строки. (Если вы пишете сценарий, особенно если вы стремитесь к переносимости, вы можете вместо этого использовать утилиты низкого уровня – и 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 может быть предпочтительнее.
-
В некоторых новых дистрибутивах, включая Ubuntu 14.4, adduser запрашивает такую информацию, как пароль и "gecos" (данные для команды finger). Это означает, что он может быть менее подходящим для вызова из скрипта (кредит: уже упоминалось в комментарии Wernight).
Подсказки могут быть подавлены путем передачи нулевых аргументов:
adduser --disabled-password --gecos "" USER
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 (довольно подробный ответ)
и это был и остается хорошим, обоснованным вопросом. Проблема не в том, что люди задают его в соответствующих контекстах, а в том, что этот вопрос вообще нужно задавать.