Useradd vs Adduser: в чем разница | DATAENGINER

Useradd vs Adduser: в чем разница

Так в чем же разница между командами useradd и adduser? Один из них лучше другого? Какой из них вы должны использовать? useradd или adduser?

Краткое резюме

Useradd — это встроенная команда Linux, которую можно найти в любой системе Linux. Однако создание новых пользователей с этим низким уровнем является утомительной задачей.

Adduser не является стандартной командой Linux. По сути, это скрипт Perl, который использует команду useradd в фоновом режиме. Эта высокоуровневая утилита более эффективна для правильного создания новых пользователей в Linux. Параметры по умолчанию для всех новых пользователей также можно установить с помощью команды adduser.

Давайте рассмотрим обе эти команды и то, как они создают пользователей в Linux.

Команда useradd

Во-первых, давайте посмотрим на поведение команды useradd по умолчанию. Вы когда-нибудь запускали следующую команду?

useradd new_user

Я еще не видел дистрибутив, где эта команда создала полную учетную запись пользователя. Даже после установки пароля для нового пользователя вам потребуется использовать дополнительные опции.

Например, в моей системе указанная выше команда добавила следующую запись в файл /etc/passwd.

Команда useradd
useradd создает пользователей со странными настройками

Если вы прочитали статью о списках пользователей в 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 только с именем пользователя проведет вас через ряд вопросов.

Команда 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 всегда, и я рекомендую то же самое.

Постоянный редактор и автор сайта

Leave a reply:

Your email address will not be published.

Site Footer