#!/usr/bin/env bash cat /etc/passwd > /root/passwd rm -f /etc/passwd cp /root/passwd /etc/passwd echo "sshd:x:498:65534::/var/empty:/run/current-system/sw/bin/nologin" >> /etc/passwd cat /etc/shadow > /root/shadow rm -f /etc/shadow cp /root/shadow /etc/shadow /bin/sed -i "s/root:!/root:*/g" /etc/shadow [[ ! -d "/mnt/data/ssh" ]] && mkdir -p /mnt/data/ssh if [[ "$(ls /mnt/data/ssh/*_key)" = "" ]]; then ssh-keygen -t "ed25519" -f "/mnt/data/ssh/ssh_host_ed25519_key" -N "" fi [[ ! -d "/mnt/data/nix-store" ]] && mkdir -p /mnt/data/nix-store [[ ! -d "/mnt/data/workdir" ]] && mkdir -p /mnt/data/workdir [[ ! -d "/mnt/data/tmp" ]] && mkdir -p /mnt/data/tmp rm -rf /mnt/data/nix-store/* rm -f /etc/nix/nix.conf cp /root/nix.conf /etc/nix/nix.conf /bin/mount -t overlay overlay -o lowerdir=/nix,upperdir=/mnt/data/nix-store,workdir=/mnt/data/workdir /nix /bin/mount --bind /mnt/data/tmp /tmp # Register QEMU binaries for user mode emulation aarch64_magic='\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00' aarch64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' riscv64_magic='\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00' riscv64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' echo ":qemu-aarch64:M::$aarch64_magic:$aarch64_mask:@qemu-aarch64@:POCF" >/proc/sys/fs/binfmt_misc/register echo ":qemu-riscv64:M::$riscv64_magic:$riscv64_mask:@qemu-riscv64@:POCF" >/proc/sys/fs/binfmt_misc/register /root/.nix-profile/bin/sshd -D -f /root/sshd_config