Trennen Sie Systembenutzer und Dienstbenutzer

8

Wir alle wissen, dass wir Systembenutzer und Dienstbenutzer haben. Ich suche nach einer Möglichkeit, sie als Systembenutzer und Dienstbenutzerliste zu trennen.

Gibt es irgendeinen Weg ?

rɑːdʒɑ
quelle

Antworten:

7

Basierend auf gidkönnen Systembenutzer und Dienstbenutzer wie folgt getrennt werden:

/etc/passwdenthält eine Liste für alle Benutzer sowie einige andere Informationen. Dienstnutzer oder echte Benutzer haben gidmehr als oder gleich 1000. Eine Liste von echten Benutzern kann also erhalten werden als:

awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

Auch eine Liste der Systembenutzer ( gid<1000) kann extrahiert werden als:

awk -F: '($3<1000){print $1}' /etc/passwd

Wie es funktioniert

Der Inhalt von /etc/passwdist wie,

    root:x:0:0:root:/root:/bin/bash
    ...
    souravc:x:1001:1001:Souravc:/home/souravc:/bin/bash

Bei der Verwendung von awkmit -F:ihm teilt die Inhalte einer Zeile in mehrere Felder Behandlung :als Feldtrennzeichen . Das erste Feld enthält den Benutzernamen und das dritte Feld den gid.

Um echte Benutzer zu extrahieren, awküberprüfen Sie einfach, ob der Wert des dritten Felds größer als 1000 ist, und es ist nicht niemand Benutzer und druckt das erste Feld, dh den Benutzernamen.

Um alle Systembenutzer aufzulisten, werden nur gidweniger als 1000 überprüft und der Benutzername gedruckt.

Bearbeiten

Wie Sie rootin der realen Benutzerliste auflisten möchten (gid = 0). Holen Sie sich echte Benutzer als,

awk -F: '($3==0)||($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd

Holen Sie sich Systembenutzer als,

awk -F: '($3<1000)&&($1!="root"){print $1}' /etc/passwd

Hinweis Ich ignoriere immer nobodyBenutzer.

Souravc
quelle
Wie kann es sich um Root-Benutzer kümmern?
rɑːdʒɑ
Hast du deinen Standpunkt nicht verstanden? Sie erhalten root als Systembenutzer. Möchten Sie root in die Liste der echten Benutzer aufnehmen?
Souravc
ja weil er auch benutzer ist.
rɑːdʒɑ
@rajagenupula ist es jetzt ok?
Souravc
Ich möchte Root-Benutzer in der Liste der echten Benutzer @S
rɑːdʒɑ
2

Lokale (Systembenutzer) auflisten, die sich anmelden können und Homedir und GID unter 1000 haben

 cat /etc/passwd | cut -d: -f 1,3,6 | grep "[1-9][0-9][0-9][0-9]" | grep "/home" | cut -d: -f1

So listen Sie alle anderen Benutzer auf: (hauptsächlich Systembenutzer mit einer GID von weniger als 1000):

cat /etc/passwd | cut -d: -f 1,3,6 | grep -v "[1-9][0-9][0-9][0-9]"  | cut -d: -f1
Kamil
quelle
1
Die Gruppen-ID des Root-Benutzers und die ID des Benutzers sind weniger als 1000 richtig. Vielen Dank für die Antwort
rɑːdʒɑ
@rajagenupula ja sicher. Nur root ist die Ausnahme. und in Ubuntu kann sich root im Allgemeinen nicht standardmäßig anmelden.
Kamil