Skip to content
Snippets Groups Projects

liveusb

  • Clone with SSH
  • Clone with HTTPS
  • Embed
  • Share
    The snippet can be accessed without any authentication.
    Authored by nimrod

    Steps to setup a new liveusb system (portable installation on a flash drive).

    wget https://git.shore.co.il/-/snippets/6/raw/master/setup.sh -O - | sudo sh
    Edited
    setup.sh 2.13 KiB
    #!/bin/sh
    set -eu
    
    username="$(getent passwd 1000 | cut -d: -f1)"
    notify () { printf '\n\e[1;94m=== %s ====\e[0m\n\n' "$1" >&2; }
    
    notify 'Installing Debian packages'
    apt-get update
    apt-get dist-upgrade --yes --purge
    apt-get install --yes \
        amd64-microcode \
        btrfs-progs \
        cryptsetup \
        curl \
        docker.io \
        fonts-noto-cjk-extra \
        fonts-sil-ezra \
        fwupd-signed \
        git \
        intel-microcode \
        language-pack-gnome-he \
        libnotify-bin \
        make \
        openssh-client \
        openssh-server \
        python3 \
        rsync \
        sshfs \
        systemd-container \
        tmux \
        ufw \
        vim-nox \
    ;
    apt-get autoremove --purge --yes
    apt-get autoclean
    
    notify 'Setting up the firewall'
    ufw limit ssh
    ufw default deny
    ufw allow in on docker0
    ufw enable
    
    notify 'Mounting a tmpfs under /tmp'
    sed -i '/\/tmp/d' /etc/fstab
    echo 'tmpfs   /tmp    tmpfs   defaults,nodev,nosuid   0   0' >> /etc/fstab
    
    notify 'Disabling swap'
    sed -i '/swap/d' /etc/fstab
    
    notify 'Passwordless sudo'
    echo "$username  ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/nopasswd-user
    chown root:root /etc/sudoers.d/nopasswd-user
    chmod 440 /etc/sudoers.d/nopasswd-user
    
    notify 'Set password and make a note in the user'\''s full name'
    echo "$username:1234" | chpasswd
    chfn --full-name 'Password is 1234' "$username"
    
    notify 'Cloning the rcfiles repo to the home directory'
    sudo -Hu "$username" sh -c 'git -C $HOME remote show >/dev/null' || \
    sudo -Hu "$username" sh -c '
    # Copied verbatim from https://git.shore.co.il/nimrod/rcfiles/#installation.
    cd
    git init
    git remote add origin https://git.shore.co.il/nimrod/rcfiles.git/
    git fetch
    git reset --hard origin/master
    git branch --set-upstream-to=origin/master
    git bull
    Documents/bin/install-git-hooks
    .githooks/post-merge
    '
    update-desktop-database
    
    notify 'Installing Flatpaks'
    flathub_install () {
        wget "https://dl.flathub.org/repo/appstream/$1.flatpakref"
        sudo -Hu "$username" io.elementary.sideload "$1.flatpakref"
        rm "$1.flatpakref"
    }
    (
        cd /tmp
        flathub_install org.mozilla.firefox
        flathub_install org.libreoffice.LibreOffice
        flathub_install org.gnome.PasswordSafe
        flathub_install org.remmina.Remmina
    )
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment