В чем разница между командами adduser
и useradd
в Ubuntu?
adduser
удобнее в том, что он устанавливает домашние папки учетной записи и другие настройки (например, автоматическая загрузка статистики системы и уведомлений при входе в систему), тогда как useradd
просто создает пользователя.
adduser
: добавить пользователя с полным профилем и информацией (пароль, квота, разрешение и т. Д.)
useradd
: добавить пользователя только с его именем (если вы хотите добавить временного пользователя с только имя, другая информация не требуется)
Основное отличие заключается в том, что «adduser» создаст домашний каталог & amp; добавьте файлы скелета в тот каталог, где «useradd» не будет создавать домашний каталог & amp; скелетные файлы!
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
.
Еще одна пара различий, которые приводят к конкретным сценариям, где useradd может быть предпочтительнее.
В некоторых новых дистрибутивах, включая Ubuntu 14.4, adduser запрашивает информацию, такую как пароль и «gecos» (данные для команды finger). Это означает, что он может быть менее подходящим для вызова из скрипта (кредит: уже упоминалось в комментарии Wernight).
Подсказки можно подавить, передав нулевые аргументы:
adduser --disabled-password --gecos "" USER
useradd
позволяет передавать несколько дополнительных групп для добавления пользователя с помощью -G
вариант. adduser
, кажется, требует, чтобы вы вызывали команду один раз для добавления каждой группы.
Всегда используйте adduser
(и deluser
при удалении пользователей) при создании новых пользователей из командной строки. (Если вы пишете сценарий, особенно если вы стремитесь к переносимости, вы можете вместо этого использовать утилиты низкого уровня - и adduser
/ deluser
могут быть доступны не на всех дистрибутивах, например, на SuSE.)
Команды useradd
, userdel
и usermod
являются утилитами низкого уровня, которые существуют по историческим причинам, в то время как adduser/deluser
Do The Right Thing ™. (Я помню, что использовать, думая, что user*
следует после adduser/deluser
в алфавите и, следовательно, «хуже».)
Согласно соответствующим страницам (в Ubuntu 12.04 Precise Pangolin, то есть в Debian). производная система).
adduser
гласит: (выделение добавлено.)
blockquote>
adduser
иaddgroup
добавляют пользователей и группы в систему в соответствии с параметрами командной строки и информация о конфигурации в/etc/adduser.conf
. Они являются более дружественными интерфейсами для инструментов низкого уровня, таких как программыuseradd
,groupadd
иusermod
, по умолчанию выбирая значения UID и GID, соответствующие политике Debian, создавая домашний каталог с конфигурацией скелета, выполняя пользовательский скрипт и другие функции.adduser
иaddgroup
могут быть запущены в одном из пяти режимов:Manpage для
useradd
говорит:blockquote>
useradd
- утилита низкого уровня для добавления пользователей. В Debian администраторы обычно должны использоватьadduser(8)
вместо этого.См. также: В чем разница между «adduser» и «useradd»? (в SuperUser)
useradd
- это собственный двоичный файл, скомпилированный с системой. Ноadduser
- это скрипт на Perl, который используетuseradd
бинарный код в конце.blockquote>
adduser
более удобный и интерактивный, чем его серверная частьuseradd
. Там нет никакой разницы в предоставляемых функциях.
Самое большое другое между использованием adduser
и useradd
:
adduser
, домашняя папка для пользователя будет создана как значение по умолчанию. useradd
, нет никакой домашней папки для пользователя. , Таким образом, я предлагаю, чтобы Вы использовали adduser
вместо того, чтобы использовать useradd
.