Переименование пользователя внутри гостевой виртуальной машины Ubuntu в автономном режиме с хоста

Мне нужен способ переименовать пользователя внутри гостевой виртуальной машины Ubuntu без запуска виртуальной машины, а вместо ее монтирования (в автономном режиме).


Более подробное описание

В моем VDI на каждом компьютере работает очень простая хост-система Linux (различные версии, в основном Ubuntu 13.04 или OpenSuSE 12.3, но зависят от клиента). Пользователи фактически не будут использовать эту ОС, а скорее будут использовать виртуальную машину Ubuntu 20.04, которая автоматически запускается после выполнения некоторых настроек.

Я хочу переименовать локального пользователя, который хранится в виртуальной машине, прежде чем они войдут в нее. (На самом деле автоматический вход в систему активирован, поэтому вход в систему происходит без взаимодействия с пользователем.) Я попытался сделать это с помощью сценария с помощью команды usermod (хранящейся в виртуальной машине), которая выполняется при загрузке, но это не похоже Работа. (Ни cronjob, ни служба systemd не работали, но это совершенно другая проблема.)

Итак, сейчас я пытаюсь смонтировать виртуальную машину до , которую она запустит, и редактировать ее в автономном режиме. Проблема в том, что я не могу выполнять команды внутри автономной виртуальной машины (или могу?), Поэтому usermod не вариант. Вместо этого можно редактировать файлы с помощью libguestfs и команды virt-edit . Есть ли способ отредактировать имя пользователя, просто отредактировав некоторые файлы в виртуальной машине?

Я попробовал просто отредактировать / etc / passwd и (для автоматического входа) /etc/lightdm/lightdm.conf но как раз с этим ничего не вышло. В частности, системе не удалось выполнить автоматический вход пользователя. Хотя новое имя пользователя было показано в графическом интерфейсе входа в систему. Попытки входа в систему вручную (ввод пароля) были отклонены из-за предположительно неправильного пароля с использованием того же пароля, что и раньше.

Примечание: у меня есть root-доступ как на хосте, так и на гостевой системе.

Для уточнения:Мне не обязательно переименовывать папку / home / username , хотя ничего страшного, если это упростит задачу.

0
задан 12 November 2020 в 17:49
1 ответ

Если гость использовал базовую базу данных passwd, а не другую другую серверную часть, вы можете смонтировать виртуальный диск и следовать различным руководствам в сети, чтобы создать пользователей вручную.
Например:
https://unix.stackexchange.com/questions/153225/what-steps-to-add-a-user-to-a-system-without-using-useradd-adduser
а затем :
https://unix.stackexchange.com/questions/81240/manually-generate-password-for-etc-shadow

1
ответ дан 12 November 2020 в 15:26

Теги

Похожие вопросы