For the complete documentation index, see llms.txt. This page is also available as Markdown.

31.4 antiX Linux Jail

antiX Linux 是基于 Debian 的轻量级发行版,不使用 systemd,而是提供多种初始化系统选择:antiX-23.2 提供 SysVinit 和 runit;antiX-26 默认使用 runit,同时提供 SysVinit、dinit、s6-rc、s6-66 等多种 init 可选。其中 SysVinit 基于运行级别(runlevels)和 init 脚本管理服务;而 runit、dinit 和 s6 系列(s6-rc、s6-66)则采用基于依赖关系或服务监督的服务管理模型,不依赖传统运行级别概念。这些初始化系统均不依赖 systemd,在 Jail 环境中兼容性更好。

准备基本系统

先安装 squashfs-tools,用来解压 antiX Linux 文件系统镜像。

使用 pkg 安装 squashfs-tools:

# pkg install squashfs-tools

antiX-23.2 提供四款镜像版本:full、base、core 和 net,本示例下载 core 版本:

# 下载 antiX 23.2 Core ISO 镜像
# fetch https://mirrors.tuna.tsinghua.edu.cn/mxlinux-isos/ANTIX/Final/antiX-23.2/antiX-23.2_x64-core.iso

# 将 ISO 文件作为内存设备挂载
# mdconfig -a -t vnode -f antiX-23.2_x64-core.iso

# 将内存设备挂载到 /mnt,类型为 cd9660
# mount -t cd9660 /dev/md0 /mnt

# 创建 antiX Jail 根目录
# mkdir -p /usr/jails/antix

# 解压 squashfs 文件系统到 Jail 根目录
# unsquashfs -d /usr/jails/antix /mnt/antiX/linuxfs

# 创建必要的设备节点
# touch /usr/jails/antix/dev/fd
# touch /usr/jails/antix/dev/shm

# 清理:卸载 ISO 挂载点并销毁 md 设备
# umount /mnt
# mdconfig -d -u 0

配置挂载文件

创建 /etc/fstab.antix 文件,内容如下:

管理 Jail 配置文件

/etc/jail.conf 文件中写入(仅展示 antiX 相关部分):

此处将 exec.start 设置为 /etc/init.d/rc 3

如前文所述,Debian 使用 systemd 作为初始化系统,在 Jail 中无法使用,因此其 Jail 配置使用 /bin/true 安全返回 true 而不执行任何操作。

antiX 不使用 systemd,而是提供多种初始化系统。此处 /etc/init.d/rc 3 是 SysVinit 风格的启动命令,指定 antiX Jail 在运行级别 3 启动。若使用其他初始化系统,启动命令有所不同:runit 使用 sv 管理服务;dinit 使用 dinitctl;s6-rc 使用 s6-rc;s6-66 使用 66 前端工具。本示例以 SysVinit 为例,由于 antiX 不依赖 systemd,Debian Jail 中由 systemd 受限引起的服务启动问题不会在此出现,可直接在 Jail 启动时运行服务(如 sshd)。

允许网络访问

在 pf 防火墙中允许网络访问,与前述方法相同:

更新 antiX Linux 系统

设置开机自启,随后启动:

现在进入 Jail:

apt upgrade 过程中可能出现 mandb 权限相关提示,多次执行 mandb 命令可完成索引更新。

最后更新于