Создать домашний каталог для существующего пользователя в Linux

В этом кратком руководстве объясняется, как создать домашний каталог для существующего пользователя в Linux и Unix-подобных операционных системах с помощью команды mkhomedir_helper.

Как вы уже знаете, мы можем создать нового пользователя в Linux и Unix-подобных системах с помощью команды adduser, верно? Да все верно! Когда мы добавляем нового пользователя, по умолчанию автоматически создается домашний каталог для соответствующего пользователя.

Есть еще одна команда для создания пользователей в Linux. Это так useradd. После того, как я создал несколько пользователей с помощью команды useradd в Alpine Linux, я заметил, что каталоги $HOME для пользователей не создаются. Я не знал этого раньше. Прочитав справочные страницы команды useradd, я понял, что мне следовало включить -m (или --create-home) опцию для создания новых пользователей в каталоге $HOME, как показано ниже:

$ sudo useradd -m user_name

Или же

$ sudo useradd --create-home user_name

Но я забыл включить эту опцию и создал несколько новых пользователей. Если вы похожи на меня, не удаляйте существующих пользователей и создавайте их заново с помощью опции -m. Вы можете легко создать домашний каталог для существующего пользователя в Linux с помощью команды mkhomedir_helper, не удаляя и не воссоздавая пользователя.

mkhomedir_helper вспомогательная программа для модуля pam_mkhomedir. Модуль pam_mkhomedir PAM создаст домашний каталог пользователя, если он не существует в начале сеанса. Сначала этот модуль создает домашние каталоги, а затем заполняет их содержимым указанного каталога skel. Значение по умолчанию umask — это 0022, а значение по умолчанию для пути к skel — /etc/skel.

Позвольте мне показать вам пример, чтобы объяснить, как создать домашний каталог для существующего пользователя с помощью mkhomedir_helper.

Во-первых, давайте создадим нового пользователя с именем ostechnix, используя команду useradd:

$ useradd ostechnix

Установите пароль для пользователя:

$ passwd ostechnix

Теперь переключитесь на нового пользователя:

$ su - ostechnix

Вы увидите следующее сообщение об ошибке:

su: warning: cannot change directory to /home/ostechnix: No such file or directory

Как видно из вышеприведенного вывода, домашний каталог для пользователя ostechnix не существует, отсюда и эта ошибка.

Давайте проверим это, заглянув в /homeкаталог:

$ ls -l /home/
total 0
drwx------ 1 vagrant vagrant 72 Dec 15 13:19 vagrant

Что ж, это правда, что у пользователя ostechnix нет домашнего каталога.

Итак, давайте создадим домашний каталог для существующего пользователя (то есть ostechnix в нашем случае) с помощью команды mkhomedir_helper.

Для этого сначала выйдите из системы пользователя ostechnix, если вы уже вошли в систему:

$ exit

И выполните следующую команду, чтобы создать домашний каталог для пользователя с именем ostechnix :

$ sudo mkhomedir_helper ostechnix

Обратите внимание, что вы должны выполнить указанную выше команду как root пользователь или другой sudo пользователь.

Теперь переключитесь на пользователя ostechnix:

$ su - ostechnix

На этот раз вы не получите никакого предупреждающего сообщения, потому что домашний каталог для пользователя с именем ostechnix был создан с помощью команды mkhomedir_helper.

[ostechnix@archlinux ~]$ pwd
/home/ostechnix

Для получения дополнительных сведений см. справочные страницы:

$ man mkhomedir_helper

Теперь вы знаете, как создавать домашние каталоги после создания пользователей. Это может быть полезно, если вы забыли включить -m параметр при создании пользователей с помощью команды useradd.

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

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

2 комментария

  1. Олег Ответить

    Как создать локального пользователя, чтобы его домашний каталог сформировался только после первого входа.

Добавить комментарий для Сергей Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *