Ubuntu

從主機重命名 Ubuntu 離線訪客 VM 中的使用者

  • November 12, 2020

我需要的是一種在 Ubuntu Guest VM 中重命名使用者而不執行 VM 而是掛載(離線)的方法。


更詳細的描述

在我的 VDI 中,每台電腦都執行一個非常簡單的 Linux 主機系統(各種版本,主要是 Ubuntu 13.04 或 OpenSuSE 12.3,但取決於客戶端)。使用者實際上不會使用這個作業系統,而是在完成一些配置後自動啟動的 Ubuntu 20.04 虛擬機。

我想在他們登錄之前重命名存放在 VM 中的本地使用者。(實際上自動登錄已啟動,因此無需使用者互動即可登錄。)我嘗試使用usermod啟動時執行的命令(儲存在 VM 中)通過腳本執行此操作,但這似乎不起作用。(使用 cronjob 或 systemd 服務都不起作用,但這是一個完全不同的問題。)

所以我現在要做的是在它啟動之前安裝虛擬機並離線編輯它。問題在於我無法在離線 VM 中執行命令(或者我可以嗎?),所以 usermod 不是一個選項。相反,可以使用 libguestfs 和命令編輯文件virt-edit。有沒有辦法通過編輯VM中的一些文件來編輯使用者名?

我嘗試只編輯/etc/passwd和(用於自動登錄)/etc/lightdm/lightdm.conf,但它不起作用。更具體地說,系統無法自動登錄使用者。雖然新使用者名顯示在登錄 GUI 中。由於使用與以前相同的密碼錯誤的密碼,手動登錄嘗試(輸入密碼)被拒絕。

注意:我在主機和來賓上都具有 root 訪問權限。

澄清:我不一定需要重命名/home/username文件夾,但如果這樣做會更容易,那也沒關係。

如果客人使用基本密碼數據庫而不是另一個不同的後端,您可以掛載虛擬磁碟並按照網上的各種指南手動創建使用者。

例如:

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

引用自:https://serverfault.com/questions/1042309