Исходные данные
Имя пользователя : suser
Домашняя директория : /home/suser
Задача
Сменить suser -> duser
Сменить /home/suser -> /home/duser
Решение
- usermod -l duser suser
- mv /home/suser /home/duser
- usermod -d /home/duser duser
Однако на этом все только начинается.
Проблемы:
- Очевидно что система автоматически не изменяет файлы пользователя duser. Имеем дело с устаревшей информацией относительно домашней директории и имени пользователя.
- Пользователь duser до сих пор состоит в группе suser (если ранее состоял). Файлы пользователя до сих пор ссылаются на группу suser(если ранее ссылались).
Первая проблема не имеет универсального решения в силу произвольного содержимого директорий пользователей. Мое мнение, что неплохо бы авторам программ использовать относительные пути и переменные среды в конфигурационных файлах.
Однако в случае файлов для которых не сверяются контрольные суммы возможно выполнение операции поиска и замены.
Оцениваем объем проблем:
- grep -ir suser /home/duser/.*
- grep -ir /home/suser /home/duser/.*
Решение второй проблемы:
- groupadd duser
- gpasswd -a duser duser
- find / -group suser -exec chown duser:duser '{}' \;
- groupdel suser #если необходимо
Лучше не менять имя пользователя и/или домашнюю директорию.
смена директории
ОтветитьУдалитьusermod -d /home/duser duser
не вызвала никаких ошибок
-m, --move-home переместить содержимое домашнего каталога в новое место (использовать только вместе с -d)
ОтветитьУдалить