Gibt es eine Möglichkeit, die Anzahl der einem Benutzer in Linux zugewiesenen Gruppen herauszufinden?
as of right now i have:
foo : foo bar apple users
Eine App, die ich verwende, hat einem Benutzer möglicherweise eine Gruppe von "Apple-Benutzern" zugewiesen, aber ich kann es nicht sagen, und wann ich ausgeführt habe
groups foo | awk {print $6}
ich erhielt
users
Ich weiß nicht, wie ich herausfinden kann, wie viele Benutzer ich habe
Antwort1
Da groups
eine Liste der Gruppen zurückgegeben wird, denen Ihr Konto angehört, können Sie Folgendes verwenden:
groups | wc -w
Es wc -w
wird die Anzahl der von zurückgegebenen Wörter gezählt groups
.
Antwort2
Der Befehl „groups“ berücksichtigt in seiner Ausgabe keine Gruppen mit Leerzeichen. Eine Gruppe mit einem Leerzeichen im Namen wird also genauso ausgegeben wie zwei separate Gruppen.
Ich würde es so machen:
grep "apple users" /etc/group
Das Ergebnis sollte ungefähr so aussehen:
apple users:x:1010:fred,barney,dino
Antwort3
Methode 1:
foo: foo Bar Apple-Benutzer (Benutzername -> foo)
ausführen => lid foo | wc -l
Ausgabe: 4
Methode 2:
ausführen => Gruppenbenutzername
Ausgabe: Benutzername: Benutzername Gruppe1 Gruppe2
=> Gruppenbenutzername | wc -w | xargs -I % expr % - 2
Ausgabe: 3 (Anzahl der Gruppen, zu denen ein Benutzer gehört)
foo: Foo Bar Apple-Benutzer
ausführen => Gruppen foo | wc -w | xargs -I % expr % - 2
Ausgabe: 4
Zählen Sie die Anzahl der Wörter, die die Gruppen zurückgeben, und ziehen Sie 2 ab, da wir in der erhaltenen Anzahl zu viele „Benutzernamen“ und „:“ haben. Schließlich erhalten wir die Gesamtzahl der Gruppen, zu denen ein Benutzer gehört!