Так в чем же разница между командами useradd и adduser? Один из них лучше другого? Какой из них вы должны использовать? useradd или adduser?
Краткое резюме
Useradd — это встроенная команда Linux, которую можно найти в любой системе Linux. Однако создание новых пользователей с этим низким уровнем является утомительной задачей.
Adduser не является стандартной командой Linux. По сути, это скрипт Perl, который использует команду useradd в фоновом режиме. Эта высокоуровневая утилита более эффективна для правильного создания новых пользователей в Linux. Параметры по умолчанию для всех новых пользователей также можно установить с помощью команды adduser.
Давайте рассмотрим обе эти команды и то, как они создают пользователей в Linux.
Команда useradd
Во-первых, давайте посмотрим на поведение команды useradd по умолчанию. Вы когда-нибудь запускали следующую команду?
useradd new_user
Я еще не видел дистрибутив, где эта команда создала полную учетную запись пользователя. Даже после установки пароля для нового пользователя вам потребуется использовать дополнительные опции.
Например, в моей системе указанная выше команда добавила следующую запись в файл /etc/passwd.
Если вы прочитали статью о списках пользователей в Linux, вы, вероятно, уже знакомы с содержимым файла /etc/passwd. Сначала это выглядит хорошо, но если вы начнете копать, вы скоро заметите, что некоторые вещи не совсем правильные.
Во-первых, второе поле содержит «х». Это означает, что заполнитель для информации о пароле находится в /etc/shadow. Но я не установил пароль. Это означает, что тестовый пользователь не сможет войти в систему.
Во-вторых, домашний каталог. Дело в том, что /home/test не существует. Даже после того, как вы установили пароль,произойдет ошибка, если пользователь войдет в систему. В зависимости от другой конфигурации ваша система Linux может помешать пользователю без действительного домашнего каталога войти в систему. Скорее всего, пользователь test позволит войти в систему, по крайней мере, в текстовом режиме. Но пользовательский test не сможет создать свой домашний каталог.
В-третьих, оболочкой по умолчанию является sh, а не bash. Я не использую sh в качестве оболочки. Вы, вероятно, тоже, потому что bash является оболочкой по умолчанию в большинстве дистрибутивов Linux.
Хотя поведение useradd можно немного изменить, отредактировав /etc/login.defs, практически нет шансов, что приведенная выше команда создаст полную учетную запись пользователя. Useradd — это утилита низкого уровня. Тем не менее, просмотр настроек в /etc/login.defs может быть полезен.
Команда Adduser
Adduser недоступен в некоторых дистрибутивах Linux. На других это мягкая ссылка на useradd. В то время как на некоторых других, это сценарий Perl.
Adduser — это интерактивная утилита высокого уровня. В качестве бэкэнда используется утилита низкого уровня useradd. Настройки в /etc/login.defs будут использоваться при использовании adduser. На дистрибутивах, основанных на Debian, даже страница руководства рекомендует использовать ее с помощью команды useradd.
Вызов adduser только с именем пользователя проведет вас через ряд вопросов.
После ответа на несколько вопросов будет создана полная учетная запись пользователя. Новый пользователь готов войти через ваш менеджер входа в систему или в текстовом режиме.
Чтобы достичь почти того же результата, используя низкоуровневую утилиту useradd, команда должна выглядеть примерно так:
sudo useradd -d /home/test -m -s/bin/bash \ -c FullName,Phone,OtherInfo test && passwd test
В -с опции могут быть удалены без проблем, то разделенный запятыми список, который будет добавлен комментарии к / и т.д. / пароль. Но даже тогда adduser сохраняет две дополнительные команды.
У Adduser есть список доступных вам опций. Вот короткий список, который, я думаю, будет наиболее полезно узнать. Обратитесь к справке или справочной странице для более подробной информации.
- system: Добавить системного пользователя. По умолчанию системные пользователи помещаются в группу nogroup. Чтобы добавить системного пользователя в существующую группу, укажите параметр –gid или –ingroup.
- home DIR: используйте DIR в качестве домашнего каталога вместо стандартного. При необходимости будет создан каталог и скопированы файлы скелета.
- shell SHELL: используйте SHELL вместо значения по умолчанию.
- ingroup GROUP: установить первичную группу пользователя на GROUP
- add_extra_groups: добавить нового пользователя в дополнительную группу, определенную в файле конфигурации.
Файл конфигурации Adduser позволяет вам установить значения по умолчанию, которые будут использоваться при создании учетной записи. Файл хорошо документирован и позволяет устанавливать значения по умолчанию, такие как:
- Оболочка по умолчанию
- Домашний каталог
- Дополнительные группы
- Добавить дополнительные группы
Вывод
По моему личному опыту, adduser намного лучше создает новых пользователей в Linux. Я предпочитаю adduser, чем useradd всегда, и я рекомендую то же самое.