Воссоздание пользователя на отдельном home-разделе

Материал из ALT Linux Wiki

Предыстория: При установке ALT Linux (Simply Linux) на систему было выделено два раздела: один на систему, второй на home. После одного случая (при восстановлении файлов с внешнего сбойнго харда) home-раздел почему-то повредился и мне пришлось восстанавливать с него файлы (на другой раздел, благо их было немного). После этого раздел был отформатирован в другую файловую систему и использован для восстановления файлов с внешнего сбойного жесткого диска.

При этом раздел с системой остался цел.

После того как все было восстановлено, скопировано обратно и я спокойно вздохнул, передо мной встал вопрос: Когда я заново отформатирую раздел для home и пропишу его в fstab как мне заново создать на нем пользовательские папки? Не переустанавливать же систему?

1.В системе, которая не найдя home-раздела грузится в консоль, введите пароль root и выполните:

fdisk -l
nano /etc/fstab

Посмотрите идентификатор вашего home-раздела.

И в fstab, в строке /home, если нужно, исправьте UUID (Если не используются идентификаторы вида /dev/* ).

2.Перезагрузитесь

3.Посмотрите список пользователей

grep -i "/home" /etc/passwd

4.Удалите старую учетную запись

userdel username

5.Создайте нового пользователя

useradd username
passwd username

Если пользователь - администратор, то выполните:

adduser username wheel

6.Перезагрузитесь.

Способ не требующий удаления и повторного создания пользователя

Можно не пересоздавать пользователей, а скопировать "чистый" профиль из заготовки которая используется при создании новых пользователей. По умолчанию этот шаблон находится в /etc/skel (либо смотрите содержимое /etc/default/useradd, если у вас не так).

Первым делом нам необходимо узнать расположение домашнего каталога и идентификаторы самого пользователя и его основной группы:

grep username /etc/passwd

Команда вернёт строку разделённую двоеточиями, например username:x:500:500:Foma Kiniaev:/home/username:/bin/bash, где нас интересуют первые 500 — идентификатор пользователя, вторые 500 — идентификатор группы и /home/username — путь к домашнему каталогу пользователя.

Создаём каталог и назначаем ему корректные права:

mkdir /home/username
chmod 700 /home/username

Копируем содержимое шаблона в наш новый домашний каталог:

cp -a /etc/skel/. /home/username

Отзываем все права для группы и других пользователей:

chmod -R g-rwx,o-rwx /home/username 

Назначаем владельцем пользователя:

chown -R UID:GID /home/username

где вместо UID и GID небходимо подставить прочитанные из /etc/passwd идентификаторы пользователя и группы соответственно.

И последним этапом, если мы имеем дело с рабочей станцией и нам нужны каталоги «загрузки», «рабочий стол» и т.п., от имени пользователя для которого создаём каталоги необходимо выполнить:

xdg-user-dirs-update --force