如何配置我的Live (X|L|K)ubuntu以便:使用我的用户名而不是自动登录。

我正在玩弄几个Ubuntu衍生版的ISO镜像,它们应该与Ubuntu相当相似。版本是14.04.1 64位。这里的想法是基于从DVD-ROM或USB闪存启动Ubuntu时获得的实时会话创建一个自定义的实时USB闪存。
请注意,我已经尝试过在USB闪存中进行正常安装,但这对我来说不合适,因为USB作为存储介质速度较慢。因此,该系统中的任何会话都会变得迟缓且效果不佳。
为了获得最佳结果和更快的响应,会话需要从RAM驱动器运行,而最简单的方法似乎是在启动Ubuntu LiveCD或LiveUSB时获得的实时Ubuntu会话。如果您有其他建议,请随时提出。
我已经阅读了大量的指南。我听说过Ubuntu定制工具和其他(大多数非常古老的)特定定制。在所有指南中,有一件事是确定的,那就是定制需要在casper初始(内存?)系统中完成。所以,我提取了Xubuntu的ISO镜像,并解压了filesystem.squashfs引导文件。根据我所读到的,引导脚本位于...
squashfs-root/usr/share/initramfs-tools/scripts/casper-bottom/ #directory
squashfs-root/usr/share/initramfs-tools/scripts/casper #file

我想要实现的目标 - 至少在最初阶段 - 是:
1. 拥有自己的用户和用户名。 2. 删除当前登录会话的用户。 3. 禁用自动登录。
我已经尝试过在当前登录会话中进行这些操作(使用持久性),但是lightdm自动登录功能不是持久性的,删除当前登录会话用户也是如此。
所以在文件casper中,我看到有4个非常相关的条目。
USERNAME=casper
USERFULLNAME="Live session user"
HOST=live
BUILD_SYSTEM=Custom

并将其更改为

USERNAME=nass
USERFULLNAME="not a live session"
HOST=portableos
BUILD_SYSTEM=Custom

看起来不仅我可以从启动时拥有自己的用户,而且无需删除casper用户,因为我已经替代了casper成为主要用户 :)
不幸的是,用自定义值替换它们,重新制作squashfs文件系统并替换ISO中的文件并不能改变实时会话用户。实时会话用户再次被称为“Ubuntu”。
同样,在文件casper-bottom/15autologin中执行chmod -x(甚至完全删除它)也没有改变引导过程,并且在登录期间没有要求输入密码。
因此,似乎这再次不是创建新用户、删除casper用户或禁用自动登录引导过程的正确位置。
所以我必须问,我应该在哪里进行所有这些自定义操作?
编辑:
在squashfs-root/etc/lightdm/lightdm.conf.d/10-xubuntu.conf中注释掉user-session=xubuntu,我成功禁用了自动登录。
同时,我还更新了文件squashfs-root/etc/casper.conf
USERNAME=nass
USERFULLNAME="not a live session"
HOST=portableos
BUILD_SYSTEM=Custom

但是我再次启动到用户"Ubuntu" - 这是唯一可用的用户。
最后,`squashfs-root/etc/passwd`中没有包含用户"Ubuntu"的任何条目,所以我不能简单地在那里更改它。
不用说,在每次尝试启动之前,我都会使用"mksquashfs"制作文件系统并替换相关文件。

你觉得通过这样做能提高安全性的原因是什么?如果需要帮助,请上传您修改过的文件。我不认为chmod会有任何作用,或许最好的办法是彻底删除自动登录文件。 - Panther
1@bodhi.zazen 我也试过那个。删除无密码的ubuntu用户并禁用自动登录可以提高安全性,但这不是问题所在。我最想要的是一个定制的LiveUSB。除了上面提到的文件外,我没有修改任何其他文件。 - nass
1提升安全性为何可行?你认为这样做能够改善安全性吗?任何人都可以轻松地阅读文件或修改USB以移除您账户的密码。 - Lie Ryan
1相对而言,如果有自动登录会话,就可以直接启动到我的文件、设置和历史记录。如果没有的话,就必须获取我的USB存储设备,将其插入另一台计算机并访问文件。再次强调一下,以上文本中90%的内容都是关于定制一个可响应的liveUSB会话。 - nass
人们正在评论安全性,正如你在问题中提到的。我建议你更新你的问题。除非你的文件被加密,否则它们很容易被访问。你还没有发布任何你实际编辑过的文件。请参阅https://help.ubuntu.com/community/LiveCDCustomization#Removing_the_.28Casper.29_Autologin - Panther
好的,安全参考已经消失了。更新后的文件也在这里,文件系统的更改已经解释过了。但是这些都不起作用,所以显然需要在其他地方进行定制。如果你知道,请回答这个问题。谢谢。 - nass
@nass:你试过修改squashfs镜像中的/etc/lightdm/lightdm.conf吗? - Lie Ryan
在上面写和现在之间,是的。最近,我实际上可以禁用自动登录。请参见我上面的编辑。但是,我仍然无法在启动后显示我的用户名。我的意思是,我仍然只能使用“ubuntu”用户名启动。 - nass
4个回答

终于!
经过无尽的搜索和汇总稀疏信息,要更改默认用户名,必须进入 "initrd.lz" 文件。似乎 sqyashfs 继承了作为初始内存驱动器导出的用户名。
因此,一旦你从 liveCD ISO 中提取出 initrd,请从 "casper/initrd.lz" 中获取它,并执行以下操作:
  1. 使用lzma -dc -S .lz /mnt/casper/initrd.lz | cpio -id命令解压initrd。
  2. 将刚刚解压的initrd.lz移动到当前文件夹之外。
  3. etc/casper.conf中添加您喜欢的用户名和主机名。
  4. 在同一文件中取消注释"flavour"变量。

    请注意,无需更改scripts/casper中的默认用户名和值。我曾经感到困惑,但这些存在没有理由。(为什么呢?)

  5. 返回到initrd根目录,并重新创建initrd文件:find . | cpio --quiet --dereference -o -H newc | lzma -7 > ~/new-initrd.lz

编辑:

在上述第5步中,如果使用的是更新版本(>=17.04)的*ubuntu,则不应使用--dereference参数。

现在,将 extracted-iso/casper/ 下的另一个 initrd.lz 替换掉,然后您应该能够使用您选择的用户名登录。


使用来自Zesty Zebra 17.04的initrd.lz时,我发现原始的initrd.lz存档中有软链接,例如将/etc/mtab链接到/proc/mounts。在重新打包时,如果使用cpio时使用--dereference选项,则会破坏这些链接。我知道网络上很多教程都建议使用--dereference选项,但也许那是针对旧版本的。 - infixed

抱歉说了一些显而易见的话,但你最初的问题是活动USB存储设备速度太慢,所以现在你正在尝试通过软件解决方案来实现,而这个问题可以很容易地通过另一种硬件解决方案解决...

只需购买一个SLC USB存储设备,在其中安装Ubuntu,根据你的需求修改启动过程,问题就解决了!需要15分钟?20分钟?

SLC USB 3.0存储设备基本上就是一个固态硬盘。它们的价格大约是普通USB存储设备的2-3倍,但速度也快4-8倍(对于相同的USB速度),寿命也长4-8倍...

我唯一能看到的缺点就是你不能指望走进任何小店都能有现货!


这并不是一个坏的解决方案。我担心的是,由于像标签补全这样简单的功能需要访问存储设备,整个过程默认情况下会变得很慢。而另一方面,使用RAM驱动器可以明显地缓解这个问题。 - nass
1是的!只需使用RAM磁盘作为所有tmpfs,设置:vm.swappiness=10vm.vfs_cache_pressure=75vm.max-readahead=2048vm.min-readahead=1024,你就可以开始了!我有一个这样的lubuntu存储设备,里面装有我最常用的ISO文件和工具,用它来支持Windows机器。这些存储设备每GB大约1美元。只需花费32或64美元,你将永远不会回头!;-) - Fabby
1这些设置在哪里进行?总体来说,我需要从LiveCD启动并直接在USB上安装Ubuntu,然后在哪里设置vm.*选项,就可以开始了吗?如何保持持久性?默认情况下会包含吗?也许通过阅读您建议的这些命令(它们是内核参数吗?),我会明白的。如果您有任何指南推荐,我将非常欢迎 :) - nass
使用sudo nano /etc/sysctl.conf命令,在文件末尾进行设置。不需要持久化!你可以从DVD安装到高速USB上。启动时,从USB启动即可。完成!聊天?问问Ubuntu的综合房间吗? - Fabby
我还没有收到我的SLC USB存储棒,但我已经尝试了您的建议,使用sysctl和一个USB2闪存。总体用户体验明显得到了改善! - nass
好的。如果你能给我一个赞,那将不胜感激,因为取消接受答案让我的声望下降了15点!很遗憾。 - Fabby
1我已经点赞了...你得去别的地方找负面评价...这样做很愚蠢,因为负面评价者没有说明原因... - nass
是的...相对于非匿名投票,匿名投票确实有一些优点...;-) 我尽量不这样做,但这可能是文化问题...> :) - Fabby

启动驱动器,然后进入用户帐户(或用户和组),将自己添加为用户,以前是有效的,这也会删除Ubuntu用户。 驱动器必须具有持久安装。 关机可能会出现一些问题。
如果您喜欢编辑filesystem.squashfs方法,最简单的方法可能是在从Live DVD或第二个Live USB启动时进行编辑。
如果您需要在从目标驱动器引导时进行编辑,则对于Live USB,请转到filesystem/cdrom/casper/filesystem.squashfs。
如果您正在使用grub2引导iso文件,则转到filesystem/isofile/(iso文件的位置),并使用Archive Manager打开iso文件并编辑其中找到的filesystem.squashfs。

在已经运行的会话中添加用户并不会自动删除默认用户。而整个问题与我应该在哪里以及如何修改squashfs相关。 - nass
嗯,我刚刚尝试在一个持久化的闪存驱动器上使用用户帐户添加了一个用户,并点击了禁用自动登录。重新启动后会出现新的用户名和密码框。 - C.S.Cameron

我确认,这对我起作用。
更改用户名:
  • new-initrd/etc/casper.conf

更改用户ID:

  • new-initrd/scripts/casper-bottom/25adduser

关于自定义initrd镜像的更多信息: https://wiki.ubuntu.com/CustomizeLiveInitrd

(请小心删除U盘上的文件 .disk/info,因为它可能会覆盖您的设置)

Sébastien


我在Ubuntu 16.04的remaster-root/etc/casper.conf中找到了它。 - Nazar