Sudo deinstallieren

Inhalt
Ziel & Hintergrund
Auswirkungen & Trade-offs
Vorbereitung (Root & Backup)
sudo entfernen (Paket oder manuell)
Bereinigen von Gruppen & Resten
Verifikation & Funktionstests
Warum das der Sicherheit hilft
Zusätzliche Härtung (Best Practices)
Rollback (sudo wiederherstellen)
Anhang: Ein-Befehl-Variante
1) Ziel & Hintergrund
Auf Systemen wie Kali/Debian existiert immer ein Root-Account. 
sudo ist ein Komfort- und Kontrollwerkzeug, um Root-Rechte selektiv an normale Benutzer zu delegieren. Diese Anleitung stellt um auf das klassische Modell: kein 
sudo, Adminzugriff nur über 
su - mit Root-Passwort.
2) Auswirkungen & Trade-offs
Aspekt
Mit 
sudo
Mit 
su - (ohne 
sudo)
Berechtigungen
Feingranular delegierbar
Alles oder nichts über Root-Passwort
Nachvollziehbarkeit
Pro-User-Logging möglich
Weniger granular; Fokus auf Auth-Logs
Komfort
Befehlsweise Elevation
Bewusster Wechsel in Root-Shell
Angriffsfläche
Zusätzliche Binary & Policy
Weniger Komponenten, ein Geheimnis (Root-PW)
Merke: Wer bereits Root-Rechte hat, kann immer das Root-Passwort ändern – unabhängig davon, ob 
sudo installiert ist. Sicherheit entsteht hier primär durch Zugriffskontrolle, Härtung und Auditing.
3) Vorbereitung (Root & Backup)
Sicherstellen, dass Root aktiviert ist und ein Passwort hat:
# falls aktuell noch sudo vorhanden ist:
sudo passwd root
# ab dann:
su -
        
Backups der sudo-Konfiguration:
mkdir -p /root/backup-sudo-files
cp -a /etc/sudoers /root/backup-sudo-files/ 2>/dev/null || true
cp -a /etc/sudoers.d /root/backup-sudo-files/ 2>/dev/null || true
        
4) 
sudo entfernen (Paket oder manuell)
4.1 Paketzuordnung prüfen
which sudo
ls -l /usr/bin/sudo
dpkg -S /usr/bin/sudo 2>/dev/null || echo "Kein dpkg-Eintrag (manuell installiert)"
4.2 Falls als Paket installiert
apt update
apt purge -y sudo sudo:arm64 || true
apt autoremove -y
4.3 Falls nicht paketverwaltet (manuell installiert)
Vorsicht: Nur löschen, wenn sichergestellt ist, dass 
sudo nicht von dpkg verwaltet wird.
cp -a /usr/bin/sudo /root/backup-sudo      # Sicherung
rm -v /usr/bin/sudo                         # Entfernen
# optional: visudo entfernen, falls vorhanden
[ -e /usr/bin/visudo ] && rm -v /usr/bin/visudo
5) Bereinigen von Gruppen & Resten
# Benutzer aus sudo-Gruppe entfernen (Beispiel: jj)
deluser jj sudo
# sudo-Gruppe ggf. ganz entfernen
getent group sudo && delgroup sudo || true
Optional: 
su auf bestimmte Gruppe beschränken (
pam_wheel)
Damit nur Mitglieder einer bestimmten Gruppe (z. B. 
wheel) 
su benutzen dürfen:
groupadd wheel 2>/dev/null || true
gpasswd -a deinadmin wheel
# PAM anpassen (Zeile aktivieren):
sed -i 's|^#\s*auth\s\+required\s\+pam_wheel.so\s\+use_uid|auth required pam_wheel.so use_uid|' /etc/pam.d/su
Damit ist nicht jeder lokale User zu 
su berechtigt.
6) Verifikation & Funktionstests
# Existenz prüfen
command -v sudo || echo "sudo nicht gefunden (erwartet)"
# als normaler Benutzer: sudo sollte scheitern
sudo id || echo "OK: sudo nicht verfügbar"
# Rootwechsel via su -
su - -c 'id && whoami'
Tipp: Prüfe die Logs: 
/var/log/auth.log (oder Journal) sollte 
su-Events zeigen.
7) Warum das der Sicherheit hilft
Reduzierte Angriffsfläche: Entfernt eine zusätzliche, setuid-fähige Binary (
/usr/bin/sudo) und deren Policy/Parser.
Einheitliches Geheimnis: Nur das Root-Passwort erlaubt Privilege Escalation. Kein Nebeneingang über falsch konfigurierte 
sudoers-Regeln.
Bewusster Admin-Kontext: Klare Trennung: normale Arbeit als User, gezielter Wechsel in eine Root-Login-Shell.
Trade-off: Du verlierst feingranulare Delegation und pro-User-Audit auf Befehlsebene. Das kompensierst du mit Auth- und 
su-Logging und ggf. 
pam_wheel (siehe nächster Abschnitt).
8) Zusätzliche Härtung (Best Practices)
8.1 SSH
# /etc/ssh/sshd_config anpassen:
PermitRootLogin prohibit-password   # Root nur per Key; oder 'no' wenn du Root-SSH ganz verbietest
PasswordAuthentication no           # globale Passwort-Logins aus (nur Keys)
PubkeyAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
# danach:
systemctl restart ssh
Wenn du Root-SSH doch per Passwort brauchst
Dann setze 
PermitRootLogin yes und erzwinge starke Passwörter + Fail2Ban. Besser ist dennoch: SSH-Keys + ggf. 2FA (PAM/Google Authenticator).
8.2 Passwortrichtlinien
# Beispiel: libpam-pwquality nutzen
apt install -y libpam-pwquality
# /etc/security/pwquality.conf anpassen (Minimallänge, Klassen, etc.)
8.3 Auditing & Log-Monitoring
apt install -y auditd
auditctl -l | cat
# su/Passwort-Events erscheinen in /var/log/auth.log bzw. journalctl -u ssh -u systemd-logind
8.4 Brute-Force-Schutz
apt install -y fail2ban
# jail.local anpassen, insbesondere für sshd; dann:
systemctl enable --now fail2ban
8.5 
su einschränken (PAM Wheel)
Siehe Abschnitt 5: Nur Mitglieder von 
wheel dürfen 
su verwenden.
9) Rollback (sudo wiederherstellen)
Neuinstallation:
apt update
apt install -y sudo
Benutzer berechtigen:
usermod -aG sudo 
# neue Gruppenmitgliedschaft gilt nach neuem Login
Konfiguration prüfen:
visudo   # Syntaxcheck & Policy anpassen
10) Anhang: Ein-Befehl-Variante (vorsichtig!)
Führt Backup, Entfernung (Paket oder manuell) und Gruppenbereinigung in einem Rutsch aus. Vorher lesen!
bash -c '
set -euo pipefail
echo ">>> Backup"; mkdir -p /root/backup-sudo-files;
cp -a /etc/sudoers /root/backup-sudo-files/ 2>/dev/null || true;
cp -a /etc/sudoers.d /root/backup-sudo-files/ 2>/dev/null || true;
SUDO_BIN="$(command -v sudo || true)";
if [ -n "$SUDO_BIN" ]; then
  echo ">>> Gefunden: $SUDO_BIN";
  dpkg -S "$SUDO_BIN" &>/dev/null && {
    echo ">>> Paketverwaltet: apt purge";
    apt update;
    apt purge -y sudo sudo:arm64 || true;
    apt autoremove -y;
  } || {
    echo ">>> Nicht paketverwaltet: manuell entfernen";
    cp -a "$SUDO_BIN" /root/backup-sudo-files/;
    rm -v "$SUDO_BIN";
    [ -e /usr/bin/visudo ] && rm -v /usr/bin/visudo || true;
  };
else
  echo ">>> sudo nicht im PATH";
fi
# Beispielbenutzer anpassen:
if getent group sudo &>/dev/null; then
  deluser jj sudo || true;
  delgroup sudo || true;
fi
echo ">>> Fertig."
'
Achtung: Passe den Benutzernamen 
jj im Script an deine Umgebung an.