Wie liste ich auf einer Linux-Box alle Benutzer mit Root-Rechten auf (und noch besser, alle Benutzer im Allgemeinen sowie, ob sie Root haben oder nicht)?
Wie liste ich auf einer Linux-Box alle Benutzer mit Root-Rechten auf (und noch besser, alle Benutzer im Allgemeinen sowie, ob sie Root haben oder nicht)?
Antworten:
Vergessen Sie nicht, das root-Passwort zu ändern. Wenn ein Benutzer neben root die UID 0 hat, sollte dies nicht der Fall sein. Schlechte Idee. Überprüfen:
grep 'x:0:' /etc/passwd
Wiederum sollten Sie dies nicht tun, sondern prüfen, ob der Benutzer Mitglied der Stammgruppe ist:
grep root /etc/group
Um zu sehen, ob jemand Befehle als root ausführen kann, überprüfen Sie sudoers:
cat /etc/sudoers
So suchen Sie nach dem SUID-Bit, mit dem Programme mit Root-Rechten ausgeführt werden können:
find / -perm -04000
grep '[^:]*:[^:]*:0:' /etc/passwd
. +1 insbesondere für die Überprüfung auf SUID.
Um zu sehen, wer UID 0 ist:
getent passwd 0
Um zu sehen, wer in Gruppen root
ist wheel
adm
und admin
:
getent group root wheel adm admin
So listen Sie alle Benutzer und die Gruppen auf, denen sie angehören:
getent passwd | cut -d : -f 1 | xargs groups
getent passwd
, ist diese hier richtig. Vergiss nur nicht, / etc / sudoers zu überprüfen.
Reine root ist die Benutzer-ID "0".
Alle Benutzer im System befinden sich in der Datei / etc / passwd:
less /etc/passwd
Diejenigen, die root sind, haben "0" als Benutzer-ID, was die 3. Spalte ist. Diejenigen mit "0" als Gruppe (4. Spalte) können auch einige Root-Rechte haben.
Als Nächstes möchten Sie sich die Gruppen ansehen und sehen, wer ein zusätzliches Mitglied der Gruppen "root" oder "wheel" oder "admin" ist:
less /etc/group
Benutzer, die in diesen Gruppen aufgeführt sind, können über einige Root-Berechtigungen verfügen, insbesondere über den Befehl "sudo".
Das Letzte, was Sie überprüfen möchten, ist die "sudo" -Konfiguration, um zu sehen, wer die Berechtigung zum Ausführen dieses Befehls besitzt. Diese Datei selbst ist gut dokumentiert, daher werde ich sie hier nicht reproduzieren:
less /etc/sudoers
Dies deckt die Hauptbereiche ab, die Root-Zugriff haben könnten.
consolehelper
und PackageKit
.)
getent passwd
sollten jedoch alle Systembenutzer (einschließlich root) im passwd-Format aufgelistet werden, unabhängig von der Datenbank, in der sie definiert sind.
So drucken Sie alle Benutzer
perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
Um nur die Benutzer mit der UID 0 zu drucken, müssen die Benutzer mit impliziten Root-Rechten wie von anderen gesagt:
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
getent passwd
stattdessen. Versuchen Sie für Ihr erstes Beispiel "Alle Benutzer drucken" getent passwd | perl -naF: -e 'print "$F[0]\n"'
Um eine schnelle Liste aller Benutzer zu erhalten, drücken Sie zweimal die Tabulatortaste (zur automatischen Vervollständigung), nachdem Sie den passwd
Befehl gefolgt von einem Leerzeichen eingegeben haben. Dies funktioniert auch mit dem su
Befehl.
Muss als Benutzer mit Root-Rechten ausgeführt werden.