summaryrefslogtreecommitdiff
path: root/setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'setup.sh')
-rwxr-xr-xsetup.sh28
1 files changed, 17 insertions, 11 deletions
diff --git a/setup.sh b/setup.sh
index af03727..1d36fb0 100755
--- a/setup.sh
+++ b/setup.sh
@@ -21,7 +21,9 @@ log_error() { echo -e "${RED}[ERROR]${NC} $1"; }
# Elevate privileges early and keep sudo alive
sudo --validate
-while true; do sudo --non-interactive true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
+while true; do sudo --non-interactive true; sleep 60; done 2>/dev/null &
+SUDO_LOOP_PID=$!
+trap 'kill "$SUDO_LOOP_PID" 2>/dev/null || true' EXIT
# Safety Check: Prevent running as root directly
if [ "$EUID" -eq 0 ]; then
@@ -62,7 +64,7 @@ fi
# Install packages listed in 'all'
if [ -f "./all" ]; then
log_info "Installing packages from list ('all')..."
- paru -S --needed --noconfirm - < ./all
+ grep -v -E '^\s*#|^\s*$' ./all | xargs -r paru -S --needed --noconfirm
else
log_warn "Package list file './all' not found. Skipping bulk package installation."
fi
@@ -81,19 +83,19 @@ sudo passwd -l root >/dev/null
# Copy basic configuration files safely
sudo cp -v ./etc/keyd/keyd.conf /etc/keyd/
-sudo cp -v ./etc/pacman.conf /etc/
-sudo cp -v ./etc/kernel/cmdline /etc/kernel/
+sudo cp --backup=numbered -v ./etc/pacman.conf /etc/
+sudo cp --backup=numbered -v ./etc/kernel/cmdline /etc/kernel/
sudo cp -v ./etc/modprobe.d/blacklist-security.conf /etc/modprobe.d/
sudo cp -v ./etc/pam.d/system-local-login /etc/pam.d/
sudo cp -v ./etc/pam.d/system-login /etc/pam.d/
sudo cp -v ./etc/pam.d/greetd /etc/pam.d/
-sudo cp -v ./etc/login.defs /etc/
-sudo cp -v ./etc/updatedb.conf /etc/
+sudo cp --backup=numbered -v ./etc/login.defs /etc/
+sudo cp --backup=numbered -v ./etc/updatedb.conf /etc/
sudo visudo -cf ./etc/sudoers.d/00-hardening && sudo cp -v ./etc/sudoers.d/00-hardening /etc/sudoers.d/
sudo chmod 0440 /etc/sudoers.d/00-hardening
-sudo cp -v ./etc/systemd/coredump.conf /etc/systemd/
+sudo cp --backup=numbered -v ./etc/systemd/coredump.conf /etc/systemd/
sudo cp -v ./etc/sysctl.d/99-security.conf /etc/sysctl.d/
-sudo cp -v ./etc/cups/cupsd.conf /etc/cups/
+sudo cp --backup=numbered -v ./etc/cups/cupsd.conf /etc/cups/
# Append tmpfs to /etc/fstab securely using tee
if [ -f "./etc/fstab" ]; then
@@ -179,7 +181,7 @@ done
# Set all AppArmor profiles to enforce mode
log_info "Enforcing AppArmor profiles..."
if command -v aa-enforce >/dev/null 2>&1; then
- sudo aa-enforce /etc/apparmor.d/* 2>/dev/null || true
+ sudo aa-enforce /etc/apparmor.d/ 2>/dev/null || true
else
log_warn "aa-enforce tool not found. AppArmor profiles will load in default mode via apparmor.service."
fi
@@ -207,10 +209,14 @@ cp -v dotfiles/.inputrc "$USER_HOME/"
mkdir -pv "$USER_HOME/.config/" "$USER_HOME/.local/bin/" "$USER_HOME/Pictures/"
-rm -rf "$USER_HOME/.config/fastfetch"
+if [ -d "$USER_HOME/.config/fastfetch" ]; then
+ mv "$USER_HOME/.config/fastfetch" "$USER_HOME/.config/fastfetch.bak.$(date +%s)"
+fi
cp -rv dotfiles/.config/fastfetch "$USER_HOME/.config/"
-rm -rf "$USER_HOME/.config/nvim"
+if [ -d "$USER_HOME/.config/nvim" ]; then
+ mv "$USER_HOME/.config/nvim" "$USER_HOME/.config/nvim.bak.$(date +%s)"
+fi
cp -rv dotfiles/.config/nvim "$USER_HOME/.config/"
if [ -d "Pictures" ]; then