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