Исходные данные
Имя пользователя : 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)
ОтветитьУдалить