From e37b1529b0b593d95c2f52cb6b43aab5d61f2f0d Mon Sep 17 00:00:00 2001 From: 2Shirt <1923621+2Shirt@users.noreply.github.com> Date: Wed, 13 Dec 2017 13:11:28 -0700 Subject: [PATCH] Removed customize_airootfs.sh and new SSH code * Code has been merged into Build Linux * (releng copy is updated in place) * SSH key for wktech now generated at build time * Hostname is now set using main.py * Passwords are now set using main.py * Timezone is now set using main.py --- .bin/Scripts/settings/main.py | 3 + .../live/airootfs/root/customize_airootfs.sh | 72 ------------------- .linux_items/packages/dependencies | 1 + Build Linux | 50 +++++++++++-- 4 files changed, 50 insertions(+), 76 deletions(-) delete mode 100755 .linux_items/include/live/airootfs/root/customize_airootfs.sh diff --git a/.bin/Scripts/settings/main.py b/.bin/Scripts/settings/main.py index fc5331a2..f64c7979 100644 --- a/.bin/Scripts/settings/main.py +++ b/.bin/Scripts/settings/main.py @@ -8,6 +8,9 @@ ENABLED_UPLOAD_DATA = False ARCHIVE_PASSWORD='Abracadabra' KIT_NAME_FULL='Wizard Kit' KIT_NAME_SHORT='WK' +LINUX_TECH_PASSWORD='Abracadabra' +LINUX_TIME_ZONE='America/Los_Angeles' +LINUX_ROOT_PASSWORD='Abracadabra' OFFICE_SERVER_IP='10.0.0.10' QUICKBOOKS_SERVER_IP='10.0.0.10' SUPPORT_MESSAGE='Please let 2Shirt know by opening an issue on GitHub' diff --git a/.linux_items/include/live/airootfs/root/customize_airootfs.sh b/.linux_items/include/live/airootfs/root/customize_airootfs.sh deleted file mode 100755 index 6d70438f..00000000 --- a/.linux_items/include/live/airootfs/root/customize_airootfs.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/bash - -set -e -u - -# Set hostname -echo "[customize_airootfs] INFO: Set hostname" -echo "wk-arch" > /etc/hostname -echo "127.0.1.1 wk-arch.localdomain wk-arch" >> /etc/hosts - -# Set locale -echo "[customize_airootfs] INFO: Set locale" -sed -i 's/#\(en_US\.UTF-8\)/\1/' /etc/locale.gen -locale-gen - -# Time Settings -echo "[customize_airootfs] INFO: Set time" -ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime -sed -i 's/#FallbackNTP/NTP/' /etc/systemd/timesyncd.conf -#timedatectl set-ntp true - -# root user settings -echo "[customize_airootfs] INFO: Setup root user" -usermod -s /usr/bin/zsh root -cp -aT /etc/skel/ /root/ -rm /root/.ssh/id* -rm /root/.zlogin -chmod 700 /root -echo "root:Abracadabra" | chpasswd - -# wktech user settings -echo "[customize_airootfs] INFO: Setup wktech user" -groupadd -r autologin -useradd -m -s /bin/zsh -G autologin,power,storage,wheel -U wktech -echo "wktech:Abracadabra" | chpasswd - -# Enable sudo for %wheel -echo "[customize_airootfs] INFO: Enable sudo" -echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers - -# Misc -echo "[customize_airootfs] INFO: Misc Settings" -#sed -i -r 's/extensions.autoDisableScopes", [0-9]+/extensions.autoDisableScopes", 0/' /usr/lib/firefox/browser/defaults/preferences/vendor.js -mkdir /media - -# Set mirrorlist -echo "[customize_airootfs] INFO: Setup pacman mirrorlist" -# Ranked on 2017-10-19 -echo 'Server = http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist -echo 'Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist -echo 'Server = http://archlinux.surlyjake.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist -echo 'Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist -echo 'Server = https://archlinux.surlyjake.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist -echo 'Server = http://ca.us.mirror.archlinux-br.org/$repo/os/$arch' >> /etc/pacman.d/mirrorlist -echo 'Server = https://arlm.tyzoid.com/$repo/os/$arch' >> /etc/pacman.d/mirrorlist -echo 'Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist -echo 'Server = http://il.us.mirror.archlinux-br.org/$repo/os/$arch' >> /etc/pacman.d/mirrorlist - -# journald settings (from archiso) -echo "[customize_airootfs] INFO: Setup journald" -sed -i 's/#\(Storage=\)auto/\1volatile/' /etc/systemd/journald.conf - -# logind settings (from archiso) -echo "[customize_airootfs] INFO: Setup logind" -sed -i 's/#\(HandleSuspendKey=\)suspend/\1ignore/' /etc/systemd/logind.conf -sed -i 's/#\(HandleHibernateKey=\)hibernate/\1ignore/' /etc/systemd/logind.conf -sed -i 's/#\(HandleLidSwitch=\)suspend/\1ignore/' /etc/systemd/logind.conf - -echo "[customize_airootfs] INFO: Setup systemd" -#systemctl enable pacman-init.service choose-mirror.service -#systemctl set-default graphical.target - -echo "[customize_airootfs] INFO: Completed." diff --git a/.linux_items/packages/dependencies b/.linux_items/packages/dependencies index a53027d5..dd1a7f88 100644 --- a/.linux_items/packages/dependencies +++ b/.linux_items/packages/dependencies @@ -4,5 +4,6 @@ base-devel curl git libewf +openssh progsreiserfs rsync diff --git a/Build Linux b/Build Linux index 5117528b..2fd397f9 100755 --- a/Build Linux +++ b/Build Linux @@ -97,14 +97,18 @@ function run_elevated() { } function update_archlive() { + hostname="$(echo "${KIT_NAME_SHORT}-linux" | tr "[:upper:]" "[:lower:]")" + username="$(echo "${KIT_NAME_SHORT}tech" | tr "[:upper:]" "[:lower:]")" + # build.sh if ! grep -iq 'customize_iso' "$LIVE_DIR/build.sh"; then sed -ir "s!run_once make_iso\$!# customize_iso\ncp -a \"$ROOT_DIR/.linux_items/include/iso\"/* \"\${work_dir}/iso\"/\n\nrun_once make_iso!" "$LIVE_DIR/build.sh" fi - # MOTD - sed -i "s/WK/$KIT_NAME_SHORT/" "$LIVE_DIR/airootfs/etc/motd" - + # Hostname + echo "$hostname" > "$LIVE_DIR/airootfs/etc/hostname" + echo "127.0.1.1 $hostname.localdomain $hostname" >> "$LIVE_DIR/airootfs/etc/hosts" + # Live packages sed -i -r 's/^(b43|clonezilla|gpm|grml|refind|testdisk|vim)/#\1/' "$LIVE_DIR/packages.both" cat "$ROOT_DIR/.linux_items/packages/live" >> "$LIVE_DIR/packages.both" @@ -112,10 +116,48 @@ function update_archlive() { echo "SigLevel = Optional TrustAll" >> "$LIVE_DIR/pacman.conf" echo "Server = file://$REPO_DIR" >> "$LIVE_DIR/pacman.conf" + # Locale + echo 'sed -i "s/#FallbackNTP/NTP/" /etc/systemd/timesyncd.conf' >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + + # Mirrors + sed -i -r 's/^(.*mirrorlist.*)$/#NOPE#\1/' "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + #TODO Add mirrors / rankmirrors? + + # MOTD + sed -i "s/WK/$KIT_NAME_SHORT/" "$LIVE_DIR/airootfs/etc/motd" + # Oh My ZSH git clone --depth=1 git://github.com/robbyrussell/oh-my-zsh.git "$SKEL_DIR/.oh-my-zsh" rm -Rf "$SKEL_DIR/.oh-my-zsh/.git" curl -o "$SKEL_DIR/.oh-my-zsh/themes/lean.zsh-theme" https://raw.githubusercontent.com/miekg/lean/master/prompt_lean_test.zsh + + # Services + sed -i -r 's/^(.*pacman-init.*)$/#NOPE#\1/' "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + sed -i -r 's/^(.*choose-mirror.*)$/#NOPE#\1/' "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + + # SSH + mkdir -p "$SKEL_DIR/.ssh" + ssh-keygen -b 4096 -C "$username@$hostname" -N "" -f "$SKEL_DIR/.ssh/id_rsa" + echo 'rm /root/.ssh/id*' >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + echo 'rm /root/.zlogin' >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + sed -i -r 's/^(.*PermitRootLogin.*)$/#NOPE#\1/' "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + + # Root user + echo "echo 'root:$LINUX_ROOT_PASSWORD' | chpasswd" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + + # Sudo + echo "echo '%wheel ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + + # Tech user + echo "groupadd -r autologin" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + echo "useradd -m -s /bin/zsh -G autologin,power,storage,wheel -U $username" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + echo "echo '$username:$LINUX_TECH_PASSWORD' | chpasswd" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + + # Timezone + sed -i -r "s#zoneinfo/UTC#$LINUX_TIME_ZONE#g" "$LIVE_DIR/airootfs/root/customize_airootfs.sh" + + # udevil fix + echo "mkdir /media" >> "$LIVE_DIR/airootfs/root/customize_airootfs.sh" # Wallpaper mkdir -p "$LIVE_DIR/airootfs/usr/share/wallpaper" @@ -182,7 +224,7 @@ function build_arch() { chmod 600 "$LIVE_DIR/airootfs/etc/skel/.ssh/id_rsa" # Build ISO - prefix="$(echo "${KIT_NAME_SHORT}-linux" | tr "[:upper:]" "[:lower:]")" + prefix="$(< "$LIVE_DIR/airootfs/etc/hostname")" label="${KIT_NAME_SHORT}_LINUX" "$LIVE_DIR/build.sh" -N "$prefix" -V "$DATE" -L "$label" -w "$TEMP_DIR/Arch" -o "$OUT_DIR" -v | tee -a "$LOG_DIR/$DATETIME.log"