FROM ubuntu:22.04

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
       openssh-server bash ca-certificates nano vim gcc libc6-dev libcap2-bin sudo \
    && rm -rf /var/lib/apt/lists/*

RUN useradd -ms /bin/bash steve \
    && echo "steve:pass123" | chpasswd \
    && useradd -ms /bin/bash alex \
    && echo "alex:bookworm42" | chpasswd

RUN mkdir -p /home/steve/docs /home/steve/projects /home/steve/tmp \
    && echo "TODO: очистить старые бэкапы" > /home/steve/todo.txt \
    && echo "заметки встречи\n- проверить логи\n- обновить сервер" > /home/steve/docs/notes.txt \
    && echo "идея проекта: аудит capabilities" > /home/steve/projects/idea.txt \
    && echo "напоминание о конфиге ssh: alex / bookworm42" > /home/steve/docs/credentials.txt \
    && echo "заглушка архива" > /home/steve/tmp/archive.tar \
    && chown -R steve:steve /home/steve

RUN mkdir -p /home/alex/notes \
    && echo 'vsosh{pr1v3sc_f1rst_fl4g_1s_3asy}' > /home/alex/notes/flag1.txt \
    && chown -R alex:alex /home/alex \
    && chmod 750 /home/alex \
    && chmod 640 /home/alex/notes/flag1.txt

RUN echo 'vsosh{c4p_d4c_0v3rr1d3_pr1v3sc_r00t}' > /root/flag2.txt \
    && chmod 600 /root/flag2.txt

RUN setcap cap_chown,cap_dac_override+ep /bin/cp \
    && getcap /bin/cp

RUN sed -ri 's/^#?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config \
    && sed -ri 's/^#?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config \
    && sed -ri 's|^#?PrintMotd.*|PrintMotd no|' /etc/ssh/sshd_config \
    && sed -ri 's|^#?UsePAM.*|UsePAM yes|' /etc/ssh/sshd_config \
    && sed -ri 's|^#?PrintLastLog.*|PrintLastLog no|' /etc/ssh/sshd_config || true \
    && sed -ri 's/^(session\s+optional\s+pam_motd\.so.*)$/# \1/' /etc/pam.d/sshd

RUN chmod -x /etc/update-motd.d/* || true

COPY entrypoint.sh /usr/local/bin/entrypoint.sh
RUN chmod 755 /usr/local/bin/entrypoint.sh

RUN mkdir -p /run/sshd

EXPOSE 22

ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
