Поиск по сайту:

Создать домашний каталог для существующего пользователя в 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, не удаляя и не создавая заново пользователя.

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

mkhomedir_helper — это вспомогательная программа для модуля pam_mkhomedir. Модуль PAM pam_mkhomedir создаст домашний каталог пользователя, если он не существует на момент начала сеанса.

Сначала этот модуль создает домашние каталоги, а затем заполняет их содержимым указанного каталога skel. Значение по умолчанию для umask0022, а значение по умолчанию для path-to-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

предупреждение: невозможно изменить каталог на /home/ostechnix: такого файла или каталога нет.

Как вы видите в приведенном выше выводе, домашний каталог для пользователя 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

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

Более подробную информацию можно найти на страницах руководства:

man mkhomedir_helper

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

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

Связанное чтение:

  • Как переместить домашний каталог на новый раздел или диск в Linux
  • Добавление, удаление и предоставление привилегий Sudo пользователям в Alpine Linux
  • Добавление, удаление и предоставление привилегий Sudo пользователям в Arch Linux
  • Добавление, удаление и предоставление привилегий Sudo пользователям в Fedora
  • Добавление, удаление и предоставление привилегий Sudo пользователям в CentOS
  • Добавление, удаление и предоставление привилегий Sudo пользователям в Ubuntu

Изображение FreeCliparts от Pixabay.

Статьи по данной тематике