#!/bin/bash # Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird if [ "$EUID" -ne 0 ]; then echo "Bitte führen Sie das Skript mit Root-Rechten aus." exit 1 fi apt update && apt upgrade -y apt install -y git sudo echo "Passe Grub-Konfig an." # Backup der aktuellen GRUB-Konfiguration GRUB_CONFIG="/etc/default/grub" BACKUP_CONFIG="/etc/default/grub.bak" if [ -f "$GRUB_CONFIG" ]; then echo "Erstelle ein Backup der aktuellen GRUB-Konfiguration unter $BACKUP_CONFIG" cp "$GRUB_CONFIG" "$BACKUP_CONFIG" # GRUB-Konfiguration anpassen echo "Passe die GRUB-Konfiguration an, um den GRUB-Loader immer anzuzeigen..." sed -i 's/^GRUB_TIMEOUT_STYLE=.*/GRUB_TIMEOUT_STYLE=menu/' "$GRUB_CONFIG" sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=5/' "$GRUB_CONFIG" # GRUB-Konfiguration aktualisieren echo "Aktualisiere die GRUB-Konfiguration..." update-grub echo "Die GRUB-Konfiguration wurde erfolgreich angepasst." else echo "Die Datei $GRUB_CONFIG wurde nicht gefunden. Passe GRUB-Config nicht an." fi # Der Code, der eingefügt werden soll CONFIG_BLOCK='if groups | grep -q "\bsudo\b"; then case ":$PATH:" in *":/sbin:"*) ;; *) export PATH="$PATH:/sbin" ;; esac case ":$PATH:" in *":/usr/sbin:"*) ;; *) export PATH="$PATH:/usr/sbin" ;; esac fi' # Saubere Lösung über /etc/profile.d/ echo "$CONFIG_BLOCK" >/etc/profile.d/custom_path.sh # Sudo-Hinweis für bash.bashrc SUDO_HINT_BLOCK='# sudo hint if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then case " $(groups) " in *\ admin\ *|*\ sudo\ *) if [ -x /usr/bin/sudo ]; then cat <<-EOF To run a command as administrator (user "root"), use "sudo ". See "man sudo_root" for details. EOF fi esac fi' # Prüfen, ob der sudo-Hinweis bereits existiert if ! grep -Fxq "# sudo hint" /etc/bash.bashrc; then echo -e "\n$SUDO_HINT_BLOCK" | tee -a /etc/bash.bashrc >/dev/null echo "Sudo-Hinweis zur bash.bashrc hinzugefügt." else echo "Sudo-Hinweis ist bereits in bash.bashrc vorhanden." fi XDG_BLOCK='# /etc/profile.d/desktop_session_xdg_dirs.sh - Prepend a $DESKTOP_SESSION-named directory to $XDG_CONFIG_DIRS and $XDG_DATA_DIRS DEFAULT_XDG_CONFIG_DIRS="/etc/xdg" DEFAULT_XDG_DATA_DIRS="/usr/local/share/:/usr/share/" if [ -n "$DESKTOP_SESSION" ]; then # readd default if was empty if [ -z "$XDG_CONFIG_DIRS" ]; then XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS" fi if [ -n "${XDG_CONFIG_DIRS##*$DEFAULT_XDG_CONFIG_DIRS/xdg-$DESKTOP_SESSION*}" ]; then XDG_CONFIG_DIRS="$DEFAULT_XDG_CONFIG_DIRS"/xdg-"$DESKTOP_SESSION":"$XDG_CONFIG_DIRS" fi export XDG_CONFIG_DIRS # gnome is already added if gnome-session installed if [ "$DESKTOP_SESSION" != "gnome" ]; then if [ -z "$XDG_DATA_DIRS" ]; then XDG_DATA_DIRS="$DEFAULT_XDG_DATA_DIRS" fi if [ -n "${XDG_DATA_DIRS##*/usr/share/$DESKTOP_SESSION*}" ]; then XDG_DATA_DIRS=/usr/share/"$DESKTOP_SESSION":"$XDG_DATA_DIRS" fi export XDG_DATA_DIRS fi fi ' echo "$XDG_BLOCK" >/etc/profile.d/xdg_dirs_desktop_session.sh echo "Passwort für sudo-Nutzer setzen..." passwd root apt install -y network-manager apt remove -y tuxedoos-desktop "*plasma*" "*libreoffice*" "*x11*" "*wayland*" sddm apt autoremove -y # Utils apt install -y 7zip unrar unzip network-manager software-properties-common tree tuxedo-neofetch tuxedo-ufw-profiles ubuntu-drivers-common apt-file kerneloops language-pack-gnome-de ffmpeg # Bluetooth apt install -y bluedevil bluez bluez-cups avahi-utils dnsmasq-base # Internet apt install -y network-manager network-manager-openconnect network-manager-openvpn network-manager-pptp network-manager-vpnc # Passwortspeicherung für Netzwerke apt install -y gnome-keyring libsecret-1-0 libpam-gnome-keyring signon-plugin-password pinentry-gnome3 # Tastatur apt install -y ibus-data libibus-1.0-5 maliit-keyboard # Drucker/Scanner apt install -y cups sane-utils printer-driver-* # Sound apt install -y pipewire pipewire-bin pipewire-pulse # WLAN-Verbindung. # Frage, ob eine WLAN-Verbindung aufgebaut werden soll read -p "Möchten Sie eine WLAN-Verbindung aufbauen? (ja/nein): " RESPONSE if [[ "$RESPONSE" == "ja" ]]; then # Schritt 1: WLAN-Adapter automatisch ermitteln echo "Ermittle verfügbare WLAN-Adapter..." WLAN_ADAPTERS=$(iw dev | grep Interface | awk '{print $2}') if [[ -z "$WLAN_ADAPTERS" ]]; then echo "Es wurden keine WLAN-Adapter gefunden. Bitte stellen Sie sicher, dass ein WLAN-Adapter verfügbar ist." exit 1 fi # Wenn nur ein Adapter gefunden wurde, automatisch auswählen if [[ $(echo "$WLAN_ADAPTERS" | wc -l) -eq 1 ]]; then WLAN_INTERFACE="$WLAN_ADAPTERS" echo "Gefundener WLAN-Adapter: $WLAN_INTERFACE" else # Wenn mehrere Adapter gefunden wurden, den Benutzer fragen echo "Mehrere WLAN-Adapter gefunden:" echo "$WLAN_ADAPTERS" read -p "Bitte geben Sie den gewünschten WLAN-Adapter ein: " WLAN_INTERFACE fi # Schritt 2: Eingabe der SSID und des Passworts read -p "Bitte geben Sie die SSID des Routers ein: " ROUTER_SSID read -sp "Bitte geben Sie das Passwort für die SSID ein: " ROUTER_PASSWORD echo # Schritt 3: Erstellen der WPA-Konfigurationsdatei CONFIG_FILE="/root/wpa.conf" echo "Erstelle WPA-Konfigurationsdatei unter $CONFIG_FILE..." wpa_passphrase "$ROUTER_SSID" "$ROUTER_PASSWORD" > "$CONFIG_FILE" # Hinweis für Sonderzeichen in der SSID echo "Hinweis: Wenn Ihre SSID Sonderzeichen enthält, bearbeiten Sie die Datei $CONFIG_FILE manuell." # Schritt 4: Verbindung mit wpa_supplicant aufbauen echo "Starte wpa_supplicant..." wpa_supplicant -B -i "$WLAN_INTERFACE" -c "$CONFIG_FILE" # Schritt 5: Überprüfen, ob die Verbindung hergestellt wurde echo "Überprüfe die Verbindung..." sleep 5 # Wartezeit, um die Verbindung aufzubauen IW_OUTPUT=$(iw dev "$WLAN_INTERFACE" link) if echo "$IW_OUTPUT" | grep -q "Connected to"; then echo "Verbindung erfolgreich hergestellt!" echo "$IW_OUTPUT" else echo "Verbindung konnte nicht hergestellt werden. Bitte überprüfen Sie die Konfiguration." exit 1 fi # Schritt 6: IP-Adresse und Netzwerkkonfiguration über DHCP abrufen echo "Hole IP-Adresse und Netzwerkkonfiguration über DHCP..." dhcpcd echo "Die WPA-verschlüsselte Verbindung wurde erfolgreich hergestellt!" else echo "Abbruch. Es wird keine WLAN-Verbindung aufgebaut." fi echo "Fertig! Das System wird neugestartet." reboot