В чем разница между командами adduser
и useradd
в Ubuntu?
В чем разница между командами adduser
и useradd
в Ubuntu?
Ответы:
useradd
это родной двоичный файл, скомпилированный с системой. Но,adduser
это Perl-скрипт, который используетuseradd
бинарный в фоновом режиме.
adduser
более удобный и интерактивный, чем его бэкэндuseradd
. Там нет никакой разницы в предоставляемых функциях.
Источник: В чем разница между «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).
adduser
говорит:(Акцент добавлен.)
adduser
иaddgroup
добавлять пользователей и группы в систему в соответствии с параметрами командной строки и информацией о конфигурации в/etc/adduser.conf
. Они дружелюбнее передние концы с инструментами низкого уровня , какuseradd
,groupadd
иusermod
программой , по умолчанию выбирает политику Debian UID и совместимое значение GID, создавая домашний каталог с скелетной конфигурацией, запуск пользовательского сценария, и другие возможности.adduser
иaddgroup
может быть запущен в одном из пяти режимов:
useradd
говорит:
useradd
утилита низкого уровня для добавления пользователей На Debian администраторы обычно должны использоватьadduser(8)
вместо этого.
Смотрите также: в чем разница между «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).
Подсказки можно подавить, передав нулевые аргументы:
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 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
# 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
.