我正在创建一个 Debian 系统的 ISO,其中包含:
mkisofs -V "Debian ISO" -cache-inodes -J -l -o file.iso debian-system/
问题是:当我挂载ISO(mount -o loop
(ping
时,sudo
不起作用,因为它们的suid位尚未设置。
我知道特殊之二被-r
旗清除。此标志生成"合理化的 Rock Ridge 目录信息",该信息可以保留原始文件权限,但也清除任何 set-id 位。
但是如果我不使用 -r
,所有文件的文件权限都将相同,就像挂载 ISO 时在运行时指定的那样。
问题:如何将 ping 和 sudo 等 set-id 文件添加到 linux "live" ISO 中?
您需要使用支持这些权限的备用文件系统。
LiveCD/DVD的工作方式是有一个squashfs文件,该文件与RAM中的更改一起挂载。
您可以通过使用 dd
创建一个充满零的文件来"伪造"相同的内容,使用 mkfs.ext4
在其上创建一个文件系统,挂载它,然后将文件复制到上面。 然后在您的自定义磁盘上,将其挂载为循环 ( mount -o loop /path/to/file /mnt/point
( 并符号链接/等二进制文件。