В чем разница между adduser и useradd?
В чем разница между командами adduser
а также useradd
на Ubuntu?
10 ответов
useradd
это родной двоичный файл, скомпилированный с системой. Но,adduser
это Perl-скрипт, который используетuseradd
бинарный в фоновом режиме.
adduser
более удобный и интерактивный, чем его бэкэндuseradd
, Там нет никакой разницы в предоставляемых функциях.
Источник: В чем разница между "adduser" и "useradd"?
Всегда используйте adduser
(а также deluser
при удалении пользователей) при создании новых пользователей из командной строки. (Если вы пишете сценарий, особенно если вы стремитесь к переносимости, вы можете вместо этого использовать утилиты низкого уровня - и adduser
/ deluser
может быть недоступен на всех дистрибутивах, например, на SuSE.)
useradd
, userdel
а также usermod
Команды - это утилиты низкого уровня, которые существуют по историческим причинам, в то время как adduser/deluser
Делай как надо ™. (Я помню, что использовать, думая, что user*
идет после adduser/deluser
в алфавите, а значит и "хуже".)
Согласно соответствующим страницам руководства (в Ubuntu 12.04 Precise Pangolin, то есть в производной системе Debian).
Manpage for adduser
говорит:
(Акцент добавлен.)
adduser
а такжеaddgroup
добавлять пользователей и группы в систему в соответствии с параметрами командной строки и информацией о конфигурации в/etc/adduser.conf
, Они более дружелюбны по отношению к инструментам низкого уровня, таким какuseradd
,groupadd
а такжеusermod
программы, по умолчанию выбирающие значения UID и GID, совместимые с политикой Debian, создающие домашний каталог с конфигурацией скелета, выполняющие пользовательский сценарий и другие функции.adduser
а такжеaddgroup
может быть запущен в одном из пяти режимов:
Manpage for useradd
говорит:
useradd
утилита низкого уровня для добавления пользователей На Debian администраторы обычно должны использоватьadduser(8)
вместо.
Смотрите также: в чем разница между "adduser" и "useradd"? (на SuperUser)
adduser
: добавить пользователя с полным профилем и информацией (пароль, квота, разрешение и т. д.)
useradd
: добавить пользователя только с его именем (если вы хотите добавить временного пользователя только с именем, другая информация не требуется)
Еще одна пара отличий, которые приводят к конкретным сценариям, где использование useradd может быть предпочтительным.
В некоторых новых дистрибутивах, включая Ubuntu 14.4, adduser будет запрашивать такую информацию, как пароль и "gecos" (данные для команды finger). Это означает, что он может быть менее подходящим для вызова из скрипта (кредит: уже упоминалось в комментарии Wernight).
Подсказки можно подавить, передав нулевые аргументы:
adduser --disabled-password --gecos "" USER
useradd
позволяет передавать несколько дополнительных групп для добавления пользователя с помощью-G
вариант.adduser
Кажется, требуется, чтобы вы вызывали команду один раз для добавления каждой группы.
adduser
удобнее в том, что он устанавливает домашние папки учетной записи и другие настройки (например, автоматическая загрузка статистики системы и уведомлений при входе в систему), тогда как useradd
просто создает пользователя.
Основное отличие заключается в том, что "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
и
useradd
является:
- С участием
adduser
, по умолчанию будет создана домашняя папка для пользователя. - С участием
useradd
команда, у пользователя нет домашней папки.
Поэтому я предлагаю вам использовать
adduser
Вместо того, чтобы использовать
useradd
.
В частности, с помощью useradd вам следует быть более явным, поскольку он, например, не создает домашний каталог, вы должны использовать опцию -m или -p для установки пароля. Еще одним важным отличием является то, что useradd имеет другие настройки, чем adduser, например, устанавливает для пользователя другую оболочку. В большинстве дистрибутивов useradd устанавливает usr/bin/sh, а adduser устанавливает usr/bin/bash.
Я также укажу, что adduser
не всегда имеет -M
вариант, а также не уважает --system
флаг который конкретно говорит:
Обратите внимание, что useradd не будет создавать домашний каталог для такого пользователя, независимо от значения по умолчанию в /etc/login.defs (CREATE_HOME). Вы должны указать опции -m, если вы хотите создать домашний каталог для системной учетной записи.
Если вы пытаетесь создать системного пользователя без домашнего каталога, используйте useradd --system -M
,
Интерактивный способ adduser для создания учетных записей и pwd с помощью одной команды. Который можно найти только в дистрибутивах семейства Debian.
И adduser , и useradd выполняют одну и ту же функцию; с небольшими отличиями в пользу adduser.
При создании пользователя с помощью adduser он автоматически зашифрует домашний каталог пользователя (с разрешением 755).