ISO 上的 Set-id 位

Set-id bits on an ISO

我正在创建 Debian 系统的 ISO:

mkisofs -V "Debian ISO" -cache-inodes -J -l -o file.iso debian-system/

问题是:当我安装 ISO (mount -o loop) 时,pingsudo 不起作用,因为它们的 suid 位尚未设置。

我知道特殊bis被-r标志清除。此标志生成 "rationalized Rock Ridge directory information",它可以保留原始文件权限,但也会清除任何 set-id 位。

但如果我不使用 -r,则所有文件的文件权限都将相同,如安装 ISO 时在运行时指定的那样。

问题:如何将 set-id 文件(如 ping 和 sudo)添加到 linux "live" ISO?

您需要使用支持这些权限的备用文件系统。

LiveCD/DVD 的工作方式是安装一个 squashfs 文件,并在 RAM 中进行更改。

您可以 "fake" 通过使用 dd 创建一个全为零的文件,使用 mkfs.ext4 在其上创建一个文件系统,安装它,并将文件复制到它上面.然后在您的自定义磁盘上,将其挂载为循环 (mount -o loop /path/to/file /mnt/point) 并 symlink/etc 二进制文件结束。