FROM ubuntu:22.04

# 使用 Tsinghua 镜像源并更新系统
RUN sed -i "s|http://archive.ubuntu.com|http://mirrors.tuna.tsinghua.edu.cn|g" /etc/apt/sources.list && \
    apt-get update && apt-get -y dist-upgrade && \
    apt-get install -y lib32z1 xinetd openssh-server

# 添加 ctf 用户
RUN useradd -m ctf

# 设置 SSH 访问的密码
RUN echo 'ctf:1qazcde3!@#' | chpasswd

# 配置 SSH 目录和权限
RUN mkdir /var/run/sshd && \
    echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config && \
    echo 'PermitRootLogin no' >> /etc/ssh/sshd_config

# 设置工作目录
WORKDIR /home/ctf

# 复制必要的库文件
RUN cp -R /usr/lib* /home/ctf

# 创建 /dev 目录并设置节点
RUN mkdir /home/ctf/dev && \
    mknod /home/ctf/dev/null c 1 3 && \
    mknod /home/ctf/dev/zero c 1 5 && \
    mknod /home/ctf/dev/random c 1 8 && \
    mknod /home/ctf/dev/urandom c 1 9 && \
    chmod 666 /home/ctf/dev/*

# 创建 /bin 目录并复制必要的二进制文件
RUN mkdir /home/ctf/bin && \
    cp /bin/sh /home/ctf/bin && \
    cp /bin/ls /home/ctf/bin && \
    cp /bin/cat /home/ctf/bin

# 复制配置文件和程序
COPY ./ctf.xinetd /etc/xinetd.d/ctf
COPY ./start.sh /start.sh
COPY ./pwn /home/ctf/pwn

# 设置脚本和目录的权限
RUN chmod +x /start.sh
RUN chown -R root:ctf /home/ctf && chmod -R 770 /home/ctf

# 设置环境变量
ENV DASFLAG DASCTF{test_flag}

# 启动脚本
CMD service ssh start && /start.sh

# 暴露端口
EXPOSE 9999
EXPOSE 22

# 启动 SSH 服务
RUN service ssh start
