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
) 时,ping
和 sudo
不起作用,因为它们的 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 二进制文件结束。
我正在创建 Debian 系统的 ISO:
mkisofs -V "Debian ISO" -cache-inodes -J -l -o file.iso debian-system/
问题是:当我安装 ISO (mount -o loop
) 时,ping
和 sudo
不起作用,因为它们的 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 二进制文件结束。