我需要的是一种在 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