Der Linux-Kernel unterstützt Setuid- und Setgid-Berechtigungen für ausführbare Binärdateien.
Ist es möglich, einen Kernel ohne diese Funktionen zu erstellen?
Ohne diese sind Administratoren die einzigen Benutzer, die das System manipulieren können.
Antwort1
Es ist wahrscheinlich möglich, diese Funktion aus dem Kernel zu entfernen, und es ist auch möglich, Dateisysteme ohne Suid zu mounten, indem man diese nosuid
Option verwendet. Das erscheint mir einfacher und würde dasselbe bewirken.
Aber es bricht einvielvon Funktionen. Dies ist eine Liste von Befehlen in /usr/
und `/bin/, die unter Ubuntu 18.04 als setuid festgelegt sind:
$ find /usr /bin -perm -4000
/usr/bin/pkexec
/usr/bin/gpasswd
/usr/bin/traceroute6.iputils
/usr/bin/newgrp
/usr/bin/arping
/usr/bin/chfn
/usr/bin/chsh
/usr/bin/passwd
/usr/bin/sudo
/usr/lib/xorg/Xorg.wrap
/usr/lib/eject/dmcrypt-get-device
/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
/usr/lib/s-nail/s-nail-privsep
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/sbin/pppd
/bin/ping
/bin/mount
/bin/umount
/bin/su
/bin/fusermount
Benutzer können ihre eigenen Passwörter nicht mehr ändern. Sie können keine USB-Geräte mounten. Sie können ihre Privilegien nicht erhöhen. Sie können keine Pings mehr an entfernte Hosts senden. Und wahrscheinlich noch mehr unbeabsichtigte Konsequenzen.
Kurz gesagt, wenn es Ihr Ziel ist, Ihr System zu sichern, dann sind Sie wahrscheinlich bei den falschen drei. Ein besserer Ansatz ist wahrscheinlich, sich AppArmomur oder SELinux anzuschauen, die versuchen, Benutzerberechtigungen strenger durchzusetzen als der Standard-Linux-Kernel. Das hat allerdings seinen Preis: eine erhöhte Komplexität.
Wenn Sie dies mit einem Vanilla Ubuntu-System tun, werden Sie wahrscheinlich alle Arten voninteressantVerhalten.