и это хороший вопрос, который остается актуальным. Проблема не в том, что люди задают ее в соответствующих контекстах, а в том, что этот вопрос нужно задавать вообще.
Foo
Ответы:
387
useraddэто родной двоичный файл, скомпилированный с системой. Но, adduserэто Perl-скрипт, который использует useraddбинарный в фоновом режиме.
adduserболее удобный и интерактивный, чем его бэкэнд
useradd. Там нет никакой разницы в предоставляемых функциях.
Команда add useradd не создаст каталог '/ home / username', но команда adduser выполнит
Deepen
65
useradd с -mопцией создаст домашний каталог.
richsinn
10
Реализация не настолько интересна, семантика есть. Like adduser(8)более удобен для пользователя и по умолчанию создает и настраивает пользователя так, как вы ожидаете. И useradd(8)делать только то, что вы просите, поэтому вы хотите, чтобы домашний каталог был создан, вы должны сказать ему, чтобы создать его для вас.
Андерс
23
Я должен гуглить это каждый раз ... Как я могу помочь себе вспомнить, что есть что?
Квентин Скоусен
11
Для меня @kkhugs «adduser» кажется наиболее интуитивным, потому что это команда, которая звучит как английская, а другая - нет, семантически. Если вы помните его как «наиболее интуитивный» из двух, вы также можете попытаться запомнить его как предпочтительный / более простой.
pzkpfw
146
Всегда используйтеadduser (и deluserпри удалении пользователей) при создании новых пользователей из командной строки. (Если вы пишете скрипт, особенно если вы стремитесь к переносимости, вы можете вместо этого использовать утилиты низкого уровня - и adduser/ deluserмогут быть недоступны на всех дистрибутивах, например, на SuSE.)
В useradd, userdelи usermodкоманды низкоуровневых утилит , которые существуют по историческим причинам, в то время как adduser/deluserDo The Right Thing ™. (Я помню, что использовать, думая, что user*следует adduser/deluserв алфавите, и, следовательно, «хуже».)
Согласно соответствующим страницам руководства (в Ubuntu 12.04 Precise Pangolin, то есть в производной системе Debian).
Manpage для adduserговорит:
(Акцент добавлен.)
adduserи addgroupдобавлять пользователей и группы в систему в соответствии с параметрами командной строки и информацией о конфигурации в /etc/adduser.conf. Они дружелюбнее передние концы с инструментами низкого уровня , как useradd, groupaddи usermodпрограммой , по умолчанию выбирает политику Debian UID и совместимое значение GID, создавая домашний каталог с скелетной конфигурацией, запуск пользовательского сценария, и другие возможности.
adduserи addgroupможет быть запущен в одном из пяти режимов:
Manpage для useraddговорит:
useraddутилита низкого уровня для добавления пользователей На Debian администраторы обычно должны использовать adduser(8)вместо этого.
Я никогда не могу вспомнить, какой из них, так что это моя глупая мнемоника, если она кому-нибудь поможет :) "user" рифмуется с "loser", а "loser" идет последним. Таким образом: adduser, deluser.
Мадс Скьерн
26
Я на самом деле не согласен с « Всегда пользовательadduser »: для автоматических сценариев я бы предпочел, useraddпотому что он всегда есть, неинтерактивный и не специфичный для дистрибутива .
Wernight
2
Я пробовал adduserна openSUSE, а его там нет. (13.2)
cst1992
1
@ cst1992 Вы правы, я отредактировал ответ, чтобы отразить это. Как ни странно, когда я попробовал locate adduserна работе систему SuSE 11, я обнаружил, что там есть adduserman-страница, но нет бинарной (и ни deluserman-страницы, ни команды).
Зрайм
2
На Red Hat/usr/sbin/adduser -> useradd
Левон
17
adduser: добавить пользователя с полным профилем и информацией (пароль, квота, разрешение и т. д.)
useradd: добавить пользователя только с его именем (если вы хотите добавить временного пользователя только с именем, другая информация не требуется)
+1 и добро пожаловать! Я проголосовал за человека, который не смог объяснить свой предыдущий голос. Так держать! Хорошие программисты всегда поднимаются на вершину - (и не голосуют без объяснения причин). :)
Ricalsin
11
Еще одна пара отличий, которые приводят к конкретным сценариям, где использование useradd может быть предпочтительным.
В некоторых новых дистрибутивах, включая Ubuntu 14.4, adduser будет запрашивать такую информацию, как пароль и «gecos» (данные для команды finger). Это означает, что он может быть менее подходящим для вызова из скрипта (кредит: уже упоминалось в комментарии Wernight).
Подсказки можно подавить, передав нулевые аргументы:
adduser --disabled-password --gecos "" USER
useraddпозволяет передать несколько дополнительных групп для добавления пользователя с помощью этой -Gопции. adduserКажется, требуется, чтобы вы вызывали команду один раз для добавления каждой группы.
adduserудобнее в том, что он устанавливает домашние папки учетной записи и другие настройки (например, автоматически загружает системную статистику и уведомления при входе в систему), тогда как useraddпросто создает пользователя.
Неправильно. 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#
Я также укажу, что adduserне всегда есть -Mопция, а также не учитывается --systemфлаг, который конкретно говорит :
Обратите внимание, что useradd не будет создавать домашний каталог для такого пользователя, независимо от значения по умолчанию в /etc/login.defs (CREATE_HOME). Вы должны указать опции -m, если вы хотите создать домашний каталог для системной учетной записи.
Если вы пытаетесь создать системного пользователя без домашнего каталога, используйте useradd --system -M.
Ответы:
Источник: В чем разница между «adduser» и «useradd»?
источник
-m
опцией создаст домашний каталог.adduser(8)
более удобен для пользователя и по умолчанию создает и настраивает пользователя так, как вы ожидаете. Иuseradd(8)
делать только то, что вы просите, поэтому вы хотите, чтобы домашний каталог был создан, вы должны сказать ему, чтобы создать его для вас.Всегда используйте
adduser
(иdeluser
при удалении пользователей) при создании новых пользователей из командной строки. (Если вы пишете скрипт, особенно если вы стремитесь к переносимости, вы можете вместо этого использовать утилиты низкого уровня - иadduser
/deluser
могут быть недоступны на всех дистрибутивах, например, на SuSE.)В
useradd
,userdel
иusermod
команды низкоуровневых утилит , которые существуют по историческим причинам, в то время какadduser/deluser
Do The Right Thing ™. (Я помню, что использовать, думая, чтоuser*
следуетadduser/deluser
в алфавите, и, следовательно, «хуже».)Согласно соответствующим страницам руководства (в Ubuntu 12.04 Precise Pangolin, то есть в производной системе Debian).
Manpage для
adduser
говорит:(Акцент добавлен.)
Manpage для
useradd
говорит:Смотрите также: в чем разница между «adduser» и «useradd»? (на SuperUser)
источник
adduser
»: для автоматических сценариев я бы предпочел,useradd
потому что он всегда есть, неинтерактивный и не специфичный для дистрибутива .adduser
на openSUSE, а его там нет. (13.2)locate adduser
на работе систему SuSE 11, я обнаружил, что там естьadduser
man-страница, но нет бинарной (и ниdeluser
man-страницы, ни команды)./usr/sbin/adduser -> useradd
adduser
: добавить пользователя с полным профилем и информацией (пароль, квота, разрешение и т. д.)useradd
: добавить пользователя только с его именем (если вы хотите добавить временного пользователя только с именем, другая информация не требуется)источник
Еще одна пара отличий, которые приводят к конкретным сценариям, где использование useradd может быть предпочтительным.
В некоторых новых дистрибутивах, включая Ubuntu 14.4, adduser будет запрашивать такую информацию, как пароль и «gecos» (данные для команды finger). Это означает, что он может быть менее подходящим для вызова из скрипта (кредит: уже упоминалось в комментарии Wernight).
Подсказки можно подавить, передав нулевые аргументы:
useradd
позволяет передать несколько дополнительных групп для добавления пользователя с помощью этой-G
опции.adduser
Кажется, требуется, чтобы вы вызывали команду один раз для добавления каждой группы.источник
adduser
удобнее в том, что он устанавливает домашние папки учетной записи и другие настройки (например, автоматически загружает системную статистику и уведомления при входе в систему), тогда какuseradd
просто создает пользователя.источник
Основное отличие заключается в том, что «adduser» создаст домашний каталог и добавит файлы скелета в тот каталог, где «useradd» не будет создавать никаких домашних каталогов и файлов скелета!
попробуй adduser:
useradd try1:
источник
Я также укажу, что
adduser
не всегда есть-M
опция, а также не учитывается--system
флаг, который конкретно говорит :Если вы пытаетесь создать системного пользователя без домашнего каталога, используйте
useradd --system -M
.источник