apparmor
This commit is contained in:
64
setup
64
setup
@ -2,12 +2,10 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# --- privilege keepalive ---
|
# --- privilege keepalive ---
|
||||||
# prompt once for sudo and keep alive in background
|
|
||||||
if ! sudo -v; then
|
if ! sudo -v; then
|
||||||
echo "❌ sudo access required. aborting."
|
echo "❌ sudo access required. aborting."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
# keep sudo alive until script ends
|
|
||||||
while true; do sudo -n true; sleep 30; kill -0 "$$" || exit; done 2>/dev/null &
|
while true; do sudo -n true; sleep 30; kill -0 "$$" || exit; done 2>/dev/null &
|
||||||
|
|
||||||
# --- distro detection ---
|
# --- distro detection ---
|
||||||
@ -33,31 +31,43 @@ as_user() { sudo -H -u "$UNAME" bash -lc "$*"; }
|
|||||||
|
|
||||||
# --- arch package install ---
|
# --- arch package install ---
|
||||||
install_packages_arch() {
|
install_packages_arch() {
|
||||||
echo "📦 installing base packages..."
|
echo "📦 Installing and updating base system..."
|
||||||
sudo pacman -Syu --noconfirm
|
sudo pacman -Syu --noconfirm
|
||||||
|
|
||||||
local PKGS=(
|
local PKGS=(
|
||||||
base-devel git cmake gcc neovim vim python-pip
|
# Core & dev
|
||||||
|
base-devel git cmake gcc openssl python-pip
|
||||||
|
neovim vim
|
||||||
|
|
||||||
|
# X11 & desktop environment
|
||||||
xorg-server xorg-xinit xorg-xrandr xorg-xinput
|
xorg-server xorg-xinit xorg-xrandr xorg-xinput
|
||||||
openbox obconf
|
openbox obconf
|
||||||
alacritty cmus flameshot pavucontrol
|
alacritty cmus flameshot pavucontrol
|
||||||
chromium thunderbird steam keepassxc
|
|
||||||
|
# Apps
|
||||||
|
firefox thunderbird steam keepassxc
|
||||||
bluez bluez-tools blueman
|
bluez bluez-tools blueman
|
||||||
|
|
||||||
|
# Utilities & security
|
||||||
dmenu htop rsync unzip whois xclip xdotool xbindkeys
|
dmenu htop rsync unzip whois xclip xdotool xbindkeys
|
||||||
efibootmgr grub nmap lynis rkhunter sbctl sudo
|
efibootmgr grub nmap lynis rkhunter sbctl sudo
|
||||||
)
|
)
|
||||||
sudo pacman -S --noconfirm "${PKGS[@]}"
|
sudo pacman -S --noconfirm "${PKGS[@]}"
|
||||||
|
|
||||||
# yay
|
# yay (AUR helper)
|
||||||
if ! command_exists yay; then
|
if ! command_exists yay; then
|
||||||
echo "📦 installing yay..."
|
echo "📦 Installing yay..."
|
||||||
TMP=$(mktemp -d)
|
TMP=$(mktemp -d)
|
||||||
git clone https://aur.archlinux.org/yay-bin.git "$TMP"
|
git clone https://aur.archlinux.org/yay-bin.git "$TMP"
|
||||||
as_user "cd $TMP && makepkg -si --noconfirm"
|
as_user "cd $TMP && makepkg -si --noconfirm"
|
||||||
rm -rf "$TMP"
|
rm -rf "$TMP"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
as_user "yay -S --noconfirm keybase-bin ckb-next"
|
# AUR packages (optional)
|
||||||
|
echo "📦 Installing AUR packages..."
|
||||||
|
as_user "yay -S --noconfirm tripwire"
|
||||||
|
|
||||||
|
echo "✅ Base desktop packages installed successfully."
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- ubuntu/debian ---
|
# --- ubuntu/debian ---
|
||||||
@ -68,7 +78,7 @@ install_packages_ubuntu() {
|
|||||||
build-essential git cmake gcc neovim vim python3-pip \
|
build-essential git cmake gcc neovim vim python3-pip \
|
||||||
xorg openbox xinit x11-xserver-utils \
|
xorg openbox xinit x11-xserver-utils \
|
||||||
alacritty cmus flameshot pavucontrol \
|
alacritty cmus flameshot pavucontrol \
|
||||||
chromium-browser thunderbird steam-installer keepassxc \
|
firefox thunderbird steam-installer keepassxc \
|
||||||
bluez bluez-tools blueman \
|
bluez bluez-tools blueman \
|
||||||
dmenu htop rsync unzip whois xclip xdotool xbindkeys \
|
dmenu htop rsync unzip whois xclip xdotool xbindkeys \
|
||||||
efibootmgr grub nmap lynis rkhunter sudo
|
efibootmgr grub nmap lynis rkhunter sudo
|
||||||
@ -118,6 +128,41 @@ setup_security() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# --- AppArmor setup ---
|
||||||
|
setup_apparmor() {
|
||||||
|
echo "🛡️ Installing and enabling AppArmor..."
|
||||||
|
|
||||||
|
case "$DISTRO_ID" in
|
||||||
|
arch)
|
||||||
|
sudo pacman -S --noconfirm apparmor ;;
|
||||||
|
ubuntu|debian)
|
||||||
|
sudo apt install -y apparmor apparmor-utils ;;
|
||||||
|
*)
|
||||||
|
echo "⚠️ AppArmor not supported on this distro automatically."
|
||||||
|
return 0 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Enable service
|
||||||
|
sudo systemctl enable --now apparmor.service || true
|
||||||
|
|
||||||
|
# Check if kernel param is active
|
||||||
|
if [[ "$(cat /sys/module/apparmor/parameters/enabled 2>/dev/null || echo N)" != "Y" ]]; then
|
||||||
|
echo "⚠️ AppArmor not fully active."
|
||||||
|
echo "👉 Add to GRUB_CMDLINE_LINUX_DEFAULT: apparmor=1 security=apparmor"
|
||||||
|
echo "Then run: sudo grub-mkconfig -o /boot/grub/grub.cfg && reboot"
|
||||||
|
else
|
||||||
|
echo "✅ AppArmor kernel module active."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Optional Firefox profile
|
||||||
|
if [[ -f /etc/apparmor.d/usr.bin.firefox ]]; then
|
||||||
|
sudo aa-enforce /etc/apparmor.d/usr.bin.firefox || true
|
||||||
|
echo "✅ Firefox AppArmor profile enforced."
|
||||||
|
else
|
||||||
|
echo "ℹ️ No Firefox profile found (optional)."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# --- main flow ---
|
# --- main flow ---
|
||||||
case "$DISTRO_ID" in
|
case "$DISTRO_ID" in
|
||||||
arch)
|
arch)
|
||||||
@ -132,6 +177,7 @@ esac
|
|||||||
setup_rust
|
setup_rust
|
||||||
install_fonts
|
install_fonts
|
||||||
setup_security
|
setup_security
|
||||||
|
setup_apparmor
|
||||||
|
|
||||||
echo "✅ setup complete! (sudo kept alive for duration)"
|
echo "✅ setup complete! (sudo kept alive for duration)"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user