Feat: Logging mit Abfrage.
This commit is contained in:
parent
5d723f8c26
commit
50468884d2
140
0_Setup.sh
140
0_Setup.sh
@ -1,16 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
# Root-Rechte prüfen
|
||||||
if [ "$EUID" -ne 0 ]; then
|
if [ "$(id -u)" -ne 0 ]; then
|
||||||
echo "Bitte führen Sie das Skript mit Root-Rechten aus."
|
echo "❌ Bitte als root ausführen!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
apt update && apt upgrade -y
|
apt update && apt upgrade -y
|
||||||
apt install -y git sudo
|
apt install -y git sudo 7zip unrar unzip network-manager software-properties-common tree bluetooth wget curl
|
||||||
|
|
||||||
# Der Code, der eingefügt werden soll
|
# sbin in Path
|
||||||
CONFIG_BLOCK='if groups | grep -q "\bsudo\b"; then
|
read -p "❓ Soll sbin für sudo-Nutzer in den PATH aufgenommen werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
|
cat << 'EOF' > /etc/profile.d/sbin_in_path.sh
|
||||||
|
if groups | grep -q "\bsudo\b"; then
|
||||||
case ":$PATH:" in
|
case ":$PATH:" in
|
||||||
*":/sbin:"*) ;;
|
*":/sbin:"*) ;;
|
||||||
*) export PATH="$PATH:/sbin" ;;
|
*) export PATH="$PATH:/sbin" ;;
|
||||||
@ -19,33 +25,40 @@ case ":$PATH:" in
|
|||||||
*":/usr/sbin:"*) ;;
|
*":/usr/sbin:"*) ;;
|
||||||
*) export PATH="$PATH:/usr/sbin" ;;
|
*) export PATH="$PATH:/usr/sbin" ;;
|
||||||
esac
|
esac
|
||||||
fi'
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
# Saubere Lösung über /etc/profile.d/
|
echo "ℹ️ sbin wurde zum PATH für sudo-Nutzer hinzugefügt."
|
||||||
echo "$CONFIG_BLOCK" >/etc/profile.d/custom_path.sh
|
fi
|
||||||
|
|
||||||
# Sudo-Hinweis für bash.bashrc
|
# sudo-Hinweis
|
||||||
SUDO_HINT_BLOCK='# sudo hint
|
read -p "❓ Soll ein sudo-Hinweis hinzugefügt werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
|
cat << 'EOF' > /etc/profile.d/sudo_hint.sh
|
||||||
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
|
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
|
||||||
case " $(groups) " in *\ admin\ *|*\ sudo\ *)
|
case " $(groups) " in *\ admin\ *|*\ sudo\ *)
|
||||||
if [ -x /usr/bin/sudo ]; then
|
if [ -x /usr/bin/sudo ]; then
|
||||||
cat <<-EOF
|
echo 'To run a command as administrator (user "root"), use "sudo <command>".'
|
||||||
To run a command as administrator (user "root"), use "sudo <command>".
|
echo 'See "man sudo_root" for details.'
|
||||||
See "man sudo_root" for details.
|
|
||||||
EOF
|
|
||||||
fi
|
fi
|
||||||
esac
|
esac
|
||||||
fi'
|
fi
|
||||||
|
EOF
|
||||||
|
|
||||||
# Prüfen, ob der sudo-Hinweis bereits existiert
|
echo "ℹ️ sudo-Hinweis wurde hinzugefügt!"
|
||||||
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
|
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
|
# sudo-Hinweis
|
||||||
|
read -p "❓ Sollen die XDG-Data-Dirs gesetzt werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
|
cat << 'EOF' > /etc/profile.d/xdg_dirs_desktop_session.sh
|
||||||
|
# /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_CONFIG_DIRS="/etc/xdg"
|
||||||
DEFAULT_XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
|
DEFAULT_XDG_DATA_DIRS="/usr/local/share/:/usr/share/"
|
||||||
@ -70,77 +83,20 @@ if [ -n "$DESKTOP_SESSION" ]; then
|
|||||||
export XDG_DATA_DIRS
|
export XDG_DATA_DIRS
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
'
|
EOF
|
||||||
|
|
||||||
echo "$XDG_BLOCK" >/etc/profile.d/xdg_dirs_desktop_session.sh
|
echo "ℹ️ XDG-Data-Dirs wurden gesetzt!"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Passwort für sudo-Nutzer setzen..."
|
chmod +x /etc/profile.d/*
|
||||||
|
|
||||||
|
# Passwort root
|
||||||
|
read -p "❓ Soll ein Passwort für root gesetzt werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
passwd root
|
passwd root
|
||||||
|
|
||||||
# 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
|
fi
|
||||||
|
|
||||||
# Wenn nur ein Adapter gefunden wurde, automatisch auswählen
|
echo "✅ Abgeschlossen. Zum Anwenden der Änderungen bitte neu einloggen!"
|
||||||
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
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ set -e # Skript bricht bei Fehlern ab
|
|||||||
|
|
||||||
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
|
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
|
||||||
if [[ $EUID -eq 0 ]]; then
|
if [[ $EUID -eq 0 ]]; then
|
||||||
echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird."
|
echo "❌ Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -237,9 +237,57 @@ flatpak install flathub org.gnome.FileRoller -y
|
|||||||
# Obfuscate
|
# Obfuscate
|
||||||
flatpak install flathub com.belmoussaoui.Obfuscate -y
|
flatpak install flathub com.belmoussaoui.Obfuscate -y
|
||||||
|
|
||||||
|
# Flatseal
|
||||||
|
flatpak install com.github.tchx84.Flatseal -y
|
||||||
|
|
||||||
|
# VeraCrypt installieren
|
||||||
|
read -p "❓ Soll VeraCrypt installiert werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
|
||||||
echo "🔄 Installiere VeraCrypt..."
|
echo "🔄 Installiere VeraCrypt..."
|
||||||
sudo add-apt-repository ppa:unit193/encryption -y
|
sudo add-apt-repository ppa:unit193/encryption -y
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y veracrypt
|
sudo apt install -y veracrypt
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Webmin installieren
|
||||||
|
read -p "❓ Soll webmin installiert werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
|
||||||
|
curl -o /tmp/webmin-setup-repo.sh https://raw.githubusercontent.com/webmin/webmin/master/webmin-setup-repo.sh
|
||||||
|
sudo sh /tmp/webmin-setup-repo.sh
|
||||||
|
sudo apt install webmin -y --install-recommends
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Waydroid installieren
|
||||||
|
read -p "❓ Soll Waydroid installiert werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$anwser" == "y" ]]; then
|
||||||
|
sudo apt install curl ca-certificates -y
|
||||||
|
curl -s https://repo.waydro.id | sudo bash -s -- -s noble
|
||||||
|
sudo apt install waydroid -y
|
||||||
|
|
||||||
|
sudo ufw allow 53
|
||||||
|
sudo ufw allow 67
|
||||||
|
sudo ufw default allow FORWARD
|
||||||
|
|
||||||
|
sudo systemctl enable --now waydroid-container
|
||||||
|
|
||||||
|
sudo cat << 'EOF' | sudo tee /etc/profile.d/hide_waydroid_apps.sh > /dev/null
|
||||||
|
for app in ~/.local/share/applications/waydroid.*.desktop; do
|
||||||
|
grep -q NoDisplay $app || sed '/^Icon=/a NoDisplay=true' -i $app
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sudo chmod +x /etc/profile.d/*
|
||||||
|
|
||||||
|
echo "⚠️ Beachte, dass in Portmaster unter 'Network Noise' die Ports 53 und 67 komplett freigegeben sind!"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "✅ Alle Programme wurden erfolgreich installiert!"
|
echo "✅ Alle Programme wurden erfolgreich installiert!"
|
||||||
|
|||||||
21
2_AdJoin.sh
21
2_AdJoin.sh
@ -2,25 +2,30 @@
|
|||||||
|
|
||||||
# Root-Rechte prüfen
|
# Root-Rechte prüfen
|
||||||
if [ "$(id -u)" -eq 0 ]; then
|
if [ "$(id -u)" -eq 0 ]; then
|
||||||
echo "Bitte nicht als Root ausführen! Das Skript nutzt sudo, falls nötig."
|
echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Verzeichnis setzen
|
# Verzeichnis setzen
|
||||||
REPO_DIR="$HOME/Linux-Active-Directory-join-script"
|
REPO_DIR="/tmp/Linux-Active-Directory-join-script"
|
||||||
|
|
||||||
# Repository klonen, falls es noch nicht existiert
|
# Repository klonen, falls es noch nicht existiert
|
||||||
if [ -d "$REPO_DIR" ]; then
|
if [ -d "$REPO_DIR" ]; then
|
||||||
echo "Repository existiert bereits. Überspringe das Klonen."
|
echo "ℹ️ Repository existiert bereits. Überspringe das Klonen."
|
||||||
else
|
else
|
||||||
echo "Klonen des Repositories..."
|
echo "ℹ️ Klonen des Repositories..."
|
||||||
git clone https://gitea.creative-dragonslayer.de/DragonSlayer_14/Linux-Active-Directory-join-script.git "$REPO_DIR"
|
git clone https://gitea.creative-dragonslayer.de/DragonSlayer_14/Linux-Active-Directory-join-script.git "$REPO_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# In das Verzeichnis wechseln
|
# In das Verzeichnis wechseln
|
||||||
cd "$REPO_DIR" || { echo "Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; }
|
cd "$REPO_DIR" || { echo "❌ Fehler: Konnte nicht in das Verzeichnis wechseln!"; exit 1; }
|
||||||
|
|
||||||
# AD-Skript ausführen
|
# AD-Skript ausführen
|
||||||
echo "Starte Active Directory Verbindung..."
|
if [ -f "ADconnection.sh" ]; then
|
||||||
sudo bash ADconnection.sh
|
chmod +x ADconnection.sh
|
||||||
|
echo "ℹ️ Starte Active Directory setup mit: ./ADconnection.sh"
|
||||||
|
echo "⚠️ Achtung! Das Skript erkennt Tuxedo nicht. Passe es an, dass der ADJoin von Ubuntu ausgeführt wird!"
|
||||||
|
else
|
||||||
|
echo "❌ Fehler: ADconnection.sh nicht gefunden!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|||||||
@ -2,8 +2,13 @@
|
|||||||
|
|
||||||
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
|
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
|
||||||
if [[ $EUID -eq 0 ]]; then
|
if [[ $EUID -eq 0 ]]; then
|
||||||
echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird."
|
echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
DIR = "/tmp/setup-hyprland"
|
||||||
|
|
||||||
|
mkdir -p $DIR
|
||||||
|
cd $DIR
|
||||||
|
|
||||||
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Ubuntu-Hyprland/24.04/auto-install.sh)
|
sh <(curl -L https://raw.githubusercontent.com/JaKooLit/Ubuntu-Hyprland/24.04/auto-install.sh)
|
||||||
|
|||||||
@ -2,19 +2,24 @@
|
|||||||
|
|
||||||
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
||||||
if [[ $EUID -ne 0 ]]; then
|
if [[ $EUID -ne 0 ]]; then
|
||||||
echo "Dieses Skript muss als root ausgeführt werden."
|
echo "❌ Bitte als root ausführen!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Tatsächlichen Benutzer ermitteln (nicht root)
|
# Tatsächlichen Benutzer ermitteln (nicht root)
|
||||||
if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then
|
if [[ -z "$SUDO_USER" || "$SUDO_USER" == "root" ]]; then
|
||||||
echo "Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden."
|
echo "❌ Fehler: Das Skript muss mit 'sudo' von einem normalen Benutzer ausgeführt werden."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
USER_NAME="$SUDO_USER"
|
USER_NAME="$SUDO_USER"
|
||||||
USER_HOME=$(eval echo ~$USER_NAME)
|
USER_HOME=$(eval echo ~$USER_NAME)
|
||||||
|
|
||||||
|
read -p "❓ Soll die shell für $USER_NAME auf ZSH gesetzt werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
# Eintrag aus getent passwd holen
|
# Eintrag aus getent passwd holen
|
||||||
USER_ENTRY=$(getent passwd "$USER_NAME")
|
USER_ENTRY=$(getent passwd "$USER_NAME")
|
||||||
|
|
||||||
@ -24,12 +29,12 @@ cp /etc/passwd /etc/passwd.bak
|
|||||||
if grep -q "^$USER_NAME:" /etc/passwd; then
|
if grep -q "^$USER_NAME:" /etc/passwd; then
|
||||||
# Existierenden Eintrag aktualisieren
|
# Existierenden Eintrag aktualisieren
|
||||||
sed -i "/^$USER_NAME:/s|[^:]*$|/bin/zsh|" /etc/passwd
|
sed -i "/^$USER_NAME:/s|[^:]*$|/bin/zsh|" /etc/passwd
|
||||||
echo "Shell für $USER_NAME wurde auf zsh aktualisiert."
|
echo "ℹ️ Shell für $USER_NAME wurde auf zsh aktualisiert."
|
||||||
else
|
else
|
||||||
# Neuen Eintrag hinzufügen
|
# Neuen Eintrag hinzufügen
|
||||||
UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }')
|
UPDATED_ENTRY=$(echo "$USER_ENTRY" | awk -F: -v OFS=: '{ $NF="/bin/zsh"; print }')
|
||||||
echo "$UPDATED_ENTRY" >>/etc/passwd
|
echo "$UPDATED_ENTRY" >>/etc/passwd
|
||||||
echo "Eintrag für $USER_NAME wurde in /etc/passwd geschrieben mit zsh als Shell."
|
echo "ℹ️ Eintrag für $USER_NAME wurde in /etc/passwd geschrieben mit zsh als Shell."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Repository klonen
|
# Repository klonen
|
||||||
@ -84,5 +89,6 @@ if [[ -f "$ZSHRC_FILE" ]]; then
|
|||||||
else
|
else
|
||||||
echo "Die Datei $ZSHRC_FILE wurde nicht gefunden."
|
echo "Die Datei $ZSHRC_FILE wurde nicht gefunden."
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo "✅ Installation abgeschlossen!"
|
echo "✅ Shell wurde erfolgreich auf ZSH gesetzt! Zum Anwenden, neue Terminal-Sitzung öffnen."
|
||||||
|
|||||||
@ -2,13 +2,18 @@
|
|||||||
|
|
||||||
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
||||||
if [[ $EUID -ne 0 ]]; then
|
if [[ $EUID -ne 0 ]]; then
|
||||||
echo "Dieses Skript muss als root ausgeführt werden."
|
echo "❌ Dieses Skript muss als root ausgeführt werden."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
read -p "❓ Soll SDDM so konfiguriert werden, dass Domänenbenutzer angezeigt werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
# SDDM-Konfigurationsdatei in sddm.conf.d erstellen
|
# SDDM-Konfigurationsdatei in sddm.conf.d erstellen
|
||||||
SDDM_CONF_DIR="/etc/sddm.conf.d"
|
SDDM_CONF_DIR="/etc/sddm.conf.d"
|
||||||
SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/custom.conf"
|
SDDM_CUSTOM_CONF="$SDDM_CONF_DIR/ad_login.conf"
|
||||||
mkdir -p "$SDDM_CONF_DIR"
|
mkdir -p "$SDDM_CONF_DIR"
|
||||||
|
|
||||||
# Bestehende Konfiguration sichern und anpassen
|
# Bestehende Konfiguration sichern und anpassen
|
||||||
@ -16,13 +21,13 @@ if [[ -f "$SDDM_CUSTOM_CONF" ]]; then
|
|||||||
sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF"
|
sed -i '/MaximumUid/d' "$SDDM_CUSTOM_CONF"
|
||||||
sed -i '/MinimumUid/d' "$SDDM_CUSTOM_CONF"
|
sed -i '/MinimumUid/d' "$SDDM_CUSTOM_CONF"
|
||||||
sed -i '/HideShells/d' "$SDDM_CUSTOM_CONF"
|
sed -i '/HideShells/d' "$SDDM_CUSTOM_CONF"
|
||||||
echo "MaximumUid=9999999999" >>"$SDDM_CUSTOM_CONF"
|
echo "MaximumUid=99999999999999999999" >>"$SDDM_CUSTOM_CONF"
|
||||||
echo "MinimumUid=1000" >>"$SDDM_CUSTOM_CONF"
|
echo "MinimumUid=1000" >>"$SDDM_CUSTOM_CONF"
|
||||||
echo "HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin" >>"$SDDM_CUSTOM_CONF"
|
echo "HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin" >>"$SDDM_CUSTOM_CONF"
|
||||||
else
|
else
|
||||||
cat <<EOF >"$SDDM_CUSTOM_CONF"
|
cat <<EOF >"$SDDM_CUSTOM_CONF"
|
||||||
[Users]
|
[Users]
|
||||||
MaximumUid=9999999999
|
MaximumUid=999999999999999999
|
||||||
MinimumUid=1000
|
MinimumUid=1000
|
||||||
HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin
|
HideShells=/sbin/nologin,/bin/false,/usr/sbin/nologin
|
||||||
EOF
|
EOF
|
||||||
@ -43,5 +48,6 @@ fi
|
|||||||
# SSSD und SDDM neu starten
|
# SSSD und SDDM neu starten
|
||||||
systemctl restart sssd
|
systemctl restart sssd
|
||||||
systemctl restart sddm
|
systemctl restart sddm
|
||||||
|
fi
|
||||||
|
|
||||||
echo "SDDM wurde so konfiguriert, dass lokale und bereits angemeldete Domänenbenutzer angezeigt werden."
|
echo "✅ Konfiguration von SDDM und sssd abgeschlossen!"
|
||||||
60
6_Polish.sh
60
6_Polish.sh
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
set -e # Skript bricht bei Fehlern ab
|
set -e # Skript bricht bei Fehlern ab
|
||||||
|
|
||||||
# Sicherstellen, dass das Skript **nicht** als root ausgeführt wird
|
# Root-Rechte prüfen
|
||||||
if [[ $EUID -eq 0 ]]; then
|
if [ "$(id -u)" -eq 0 ]; then
|
||||||
echo "Bitte **nicht** als root oder mit sudo ausführen! Das Skript fordert sudo nur dort an, wo es benötigt wird."
|
echo "❌ Bitte nicht als root ausführen! Das Skript nutzt sudo, falls nötig."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -12,30 +12,57 @@ fi
|
|||||||
echo "🔄 System wird aktualisiert..."
|
echo "🔄 System wird aktualisiert..."
|
||||||
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
|
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
|
||||||
|
|
||||||
|
# Unnötige Pakete entfernen
|
||||||
|
read -p "❓ Sollen unnötige KDE-Pakete entfernt werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
echo "🔄 Entferne Pakete..."
|
echo "🔄 Entferne Pakete..."
|
||||||
|
sudo apt remove -y kmahjongg kmines kpat ksudoku nextcloud-desktop skanlite thunderbird virtualbox
|
||||||
|
fi
|
||||||
|
|
||||||
sudo apt remove -y firefox kmahjongg kmines kpat ksudoku nextcloud-desktop skanlite thunderbird virtualbox
|
echo "ℹ️ Firewall (ufw) wird installiert..."
|
||||||
|
sudo apt install -y ufw
|
||||||
|
sudo ufw
|
||||||
|
|
||||||
echo "🔄 Installiere Pakete..."
|
echo "ℹ️ Virenschutz (clamav) wird installiert..."
|
||||||
|
sudo apt install -y enable clamav clamav-freshclam clamav-docs clamav-daemon
|
||||||
|
|
||||||
sudo apt update && sudo apt install -y flatpak neovim ufw rfkill xdg-user-dirs rsync maliit-keyboard ffmpeg printer-driver-* clamav clamav-freshclam clamav-docs clamav-daemon bleachbit network-manager-gnome
|
echo "ℹ️ Installiere Flatpak..."
|
||||||
sudo ufw enable
|
sudo apt install -y flatpak
|
||||||
|
|
||||||
# Flatpak Flathub-Repo hinzufügen
|
|
||||||
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||||
|
|
||||||
|
echo "🔄 Installiere nützliche Pakete..."
|
||||||
|
sudo apt install -y neovim rfkill xdg-user-dirs rsync maliit-keyboard ffmpeg printer-driver-* bleachbit network-manager-gnome
|
||||||
|
|
||||||
# Portmaster installieren
|
# Portmaster installieren
|
||||||
|
read -p "❓ Soll Portmaster installiert werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
wget -O /tmp/portmaster-installer.deb https://updates.safing.io/latest/linux_amd64/packages/portmaster-installer.deb
|
wget -O /tmp/portmaster-installer.deb https://updates.safing.io/latest/linux_amd64/packages/portmaster-installer.deb
|
||||||
sudo apt install -y /tmp/portmaster-installer.deb
|
sudo apt install -y /tmp/portmaster-installer.deb
|
||||||
rm /tmp/portmaster-installer.deb
|
rm /tmp/portmaster-installer.deb
|
||||||
|
|
||||||
|
echo "✅ Portmaster wurde installiert!"
|
||||||
|
fi
|
||||||
|
|
||||||
# Waterfox-Installation
|
# Waterfox-Installation
|
||||||
|
read -p "❓ Soll Firefox durch Waterfox ersetzt werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
echo "🌍 Waterfox wird installiert..."
|
echo "🌍 Waterfox wird installiert..."
|
||||||
|
sudo apt remove -y firefox
|
||||||
sudo install -d -m 0755 /etc/apt/keyrings
|
sudo install -d -m 0755 /etc/apt/keyrings
|
||||||
echo 'deb http://download.opensuse.org/repositories/home:/hawkeye116477:/waterfox/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/home:hawkeye116477:waterfox.list
|
echo 'deb http://download.opensuse.org/repositories/home:/hawkeye116477:/waterfox/xUbuntu_24.04/ /' | sudo tee /etc/apt/sources.list.d/home:hawkeye116477:waterfox.list
|
||||||
curl -fsSL https://download.opensuse.org/repositories/home:hawkeye116477:waterfox/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_hawkeye116477_waterfox.gpg >/dev/null
|
curl -fsSL https://download.opensuse.org/repositories/home:hawkeye116477:waterfox/xUbuntu_24.04/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/home_hawkeye116477_waterfox.gpg >/dev/null
|
||||||
|
|
||||||
sudo apt update && sudo apt install -y waterfox
|
sudo apt update && sudo apt install -y waterfox
|
||||||
|
echo "✅ Waterfox wurde installiert!"
|
||||||
|
|
||||||
# Waterfox als Standardbrowser setzen
|
# Waterfox als Standardbrowser setzen
|
||||||
echo "🌍 Setze Waterfox als Standardbrowser..."
|
echo "🌍 Setze Waterfox als Standardbrowser..."
|
||||||
@ -51,7 +78,14 @@ if command -v xdg-settings >/dev/null 2>&1; then
|
|||||||
else
|
else
|
||||||
echo "❌ 'xdg-settings' ist nicht verfügbar. Bitte manuell den Standardbrowser setzen."
|
echo "❌ 'xdg-settings' ist nicht verfügbar. Bitte manuell den Standardbrowser setzen."
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Hyprland Anpassungen
|
||||||
|
read -p "❓ Sollen Anpassungen an den Hyprland-Configs vorgenomen werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
# Hyprland User Bindings
|
# Hyprland User Bindings
|
||||||
HYPR_CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
|
HYPR_CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
|
||||||
mkdir -p "$HYPR_CONFIG_DIR"
|
mkdir -p "$HYPR_CONFIG_DIR"
|
||||||
@ -93,6 +127,7 @@ if [ -f "$CONFIG_FILE" ]; then
|
|||||||
else
|
else
|
||||||
echo "Die Datei $CONFIG_FILE existiert nicht."
|
echo "Die Datei $CONFIG_FILE existiert nicht."
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Standardvorlagen ablegen
|
# Standardvorlagen ablegen
|
||||||
echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..."
|
echo "📂 Standardvorlagen werden im Vorlagen-Ordner erstellt..."
|
||||||
@ -124,6 +159,12 @@ TARGET_DIR="$HOME/.config/hypr/UserScripts"
|
|||||||
CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
|
CONFIG_DIR="$HOME/.config/hypr/UserConfigs"
|
||||||
USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" # Definition an der richtigen Stelle
|
USER_KEYBINDS_FILE="$CONFIG_DIR/UserKeybinds.conf" # Definition an der richtigen Stelle
|
||||||
|
|
||||||
|
read -p "❓ Sollen Anpassungen an den Users-Dirs in den Hyprland-Skripten vorgenommen werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
|
|
||||||
# Bereinige fälschlicherweise kopierte Dateien
|
# Bereinige fälschlicherweise kopierte Dateien
|
||||||
echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..."
|
echo "📂 Überprüfe und bereinige Dateien im Verzeichnis $TARGET_DIR..."
|
||||||
if [[ -d "$TARGET_DIR" ]]; then
|
if [[ -d "$TARGET_DIR" ]]; then
|
||||||
@ -228,5 +269,6 @@ if [ -d "$(xdg-user-dir)/Pictures" ]; then
|
|||||||
else
|
else
|
||||||
echo "📂 Der Ordner $(xdg-user-dir)/Pictures existiert nicht. Kein Verschieben notwendig."
|
echo "📂 Der Ordner $(xdg-user-dir)/Pictures existiert nicht. Kein Verschieben notwendig."
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
echo "✅ Skript erfolgreich ausgeführt!"
|
echo "✅ Skript erfolgreich ausgeführt!"
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird
|
||||||
if [[ $EUID -ne 0 ]]; then
|
if [[ $EUID -ne 0 ]]; then
|
||||||
echo "Dieses Skript muss als root ausgeführt werden."
|
echo "❌ Dieses Skript muss als root ausgeführt werden."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -10,10 +10,23 @@ fi
|
|||||||
apt update && apt upgrade -y
|
apt update && apt upgrade -y
|
||||||
|
|
||||||
# Steam-Installation
|
# Steam-Installation
|
||||||
|
read -p "❓ Soll Steam installiert werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
dpkg --add-architecture i386
|
dpkg --add-architecture i386
|
||||||
apt update
|
apt update
|
||||||
apt install -y wget curl
|
apt install -y steam
|
||||||
|
fi
|
||||||
|
|
||||||
apt install -y steam lutris
|
# Lutris-Installation
|
||||||
|
read -p "❓ Soll Lutris installiert werden? (j/n) [n]: " answer
|
||||||
|
answer=${answer,,} # In Kleinbuchstaben umwandeln
|
||||||
|
answer=${answer:-n} # Standardwert 'n', falls leer
|
||||||
|
|
||||||
echo "✅ Installation von Steam und Lutris abgeschlossen!"
|
if [[ "$answer" == "j" ]] || [[ "$answer" == "y" ]]; then
|
||||||
|
apt install -y lutris
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ Skript abgeschlossen!"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user