Benutzer & Gruppen anzeigen

Post Reply
Message
Author
Andre

Benutzer & Gruppen anzeigen

#1 Post by Andre »

Hi,
ich brauche in der Konsole eine möglichkeit global Benutzer & Gruppen übersichtlich darzustellen:
1. Welche user befinden sich in der Gruppe XYZ?
2. Welche Gruppen beinhalten den user XYZ?
3. Welche Gruppen existieren generell (mit PIDs)?
4. Welche User existieren generell (mit PIDs, home-Verzeichnis, wenn machbar mit passwd)?


Danke André

Jochen

Re: Benutzer & Gruppen anzeigen

#2 Post by Jochen »

1.

<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#!/bin/sh
awk -v gruppe="$1" -F: '
$1 == gruppe {
split ($4,user,",")
for (i in user) {
print user[<!--no-->i<!--no-->]
}
}' /etc/group
</font><hr></pre></blockquote>

Jochen

Re: Benutzer & Gruppen anzeigen

#3 Post by Jochen »

2.
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
awk -v user="$1" -F: '
{
anz = split ($4,mitglied,",")
for (i = 1; i <= anz ; i++) {
if (mitglied[<!--no-->i<!--no-->] == user) {
print $1
next
}
}
}' /etc/group
</font><hr></pre></blockquote>
Das gibt allerdings nicht Login-Gruppe des Users aus, da er in dieser nicht explizit eingetragen sein muss.

Jochen

Re: Benutzer & Gruppen anzeigen

#4 Post by Jochen »

3.
Ich denke mal, Du meinst GIDs...
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
awk -F: '{printf ("Gruppe: %s, GID: %d\<!--no-->n", $1, $3) }' /etc/group | less
</font><hr></pre></blockquote>
Aber ein 'vi /etc/group' wäre m.E. auch nicht unübersichtlicher...

Jochen

Re: Benutzer & Gruppen anzeigen

#5 Post by Jochen »

4. User haben UIDs, die meinst Du doch, oder?
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
awk -F: '{printf ("USer: %s, UID: %d, Home: %s\<!--no-->n",$1,$2,$6)}' /etc/passwd | less
</font><hr></pre></blockquote>
Passwort kann nicht unverschlüsselt angezeigt werden, und die verschlüsselte Version dürfte Dir nicht helfen.

Jochen

Re: Benutzer & Gruppen anzeigen

#6 Post by Jochen »

Und zu guter Letzt: Erst mal sorry wegen der Barrage von Postings, aber der [<!--no-->code<!--no-->]...[<!--no-->/code<!--no-->]-Block kann nur einmal sinnvoll pro Posting verwendet werden.

Und ich halte die Dinger für sinnlos. <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle"> (Nummer 2 könnte einen Sinn haben.)

Ernsthaft: Ein "vi /etc/passwd" bzw. "vi /etc/group" sagt Dir das gleiche, und unleserlicher sind sie nicht unbedingt.

Jochen

Andre

Re: Benutzer & Gruppen anzeigen

#7 Post by Andre »

Hi,
zuerst mal meinen Dank
In dem ersten vondir beschriebenem Script wir leider nicht JEDER user einer Gruppe angezeigt....
"./userAtGroup fourftp
gast
fourmart
attila
mum"
"groups data
data: fourftp, z000z"

Der user data is also auch in der Gruppe "fourftp"

Und jetzt noch eine weitere Frage...
Ist es machbar, das ich die Ergebnisse der Scripte 3/4 Spaltenweise ausgeben kann?
Ausserdem wäre es noch super wenn man beiden usern nur die ausgibt die eine UID >=500 haben, und beiden Gruppen
nur diejenigen die einen GID-Wert >=1000 haben....
also zb:
USER:.........blabla......500......../home/blabla
USER:.........bluble......501......../home/bluble
usw...

GRUPPE:.......fourftp.....1000
GRUPPE:.......blabla......1001
usw...

THNXS,
Andre

Jochen

Re: Benutzer & Gruppen anzeigen

#8 Post by Jochen »

Nanü? Poste mal die Zeile aus der /etc/group, die mit "fourftp:" beginnt, und die Zeile aus der /etc/passwd, die mit "data:" beginnt.

Zum Thema Formatierung: Sorry, dazu habe ich keine Lust - wie gesagt, ich halte die Skriptchen nicht für sinnvoll. Wenn Du magst, kannst Du mittels "\t" Tabs in der Ausgabe einbauen oder aber ein " | paste - - -" an die SKripte dransetzen (anstelle "| less"), vielleicht macht es dann ja, was Du willst. Sonst hilft nur awk lernen. <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Was die GID/UID-Beschränkungen anbetrifft: Bau ein "if ($3 >= 1000) { ... }" um die Aktion herum, wo es sich um die GID aus der /etc/group dreht, und ein "if ($3 >= 500) { ... }", wo es sich um die UID aus der /etc/passwd handelt.

OK?

Jochen

Andre

Re: Benutzer & Gruppen anzeigen

#9 Post by Andre »

Hi,
Es klappt - danke nochmal...
Ich werdmir dann doch noch mal inden nächesten Wochen die Bash-Programmierung näher anschaun... <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">

Hier jetzt noch fix der auszug aus der /etc/group
"fourftp:x:101:fourmart,attila,mum,gast"
/etc/passwd:
"data:x:506:101::/home/pub:/bin/bash"


Andre

Jochen

Re: Benutzer & Gruppen anzeigen

#10 Post by Jochen »

Die Gruppe fourftp hat die an vierter Stelle aufgelisteten User als Mitglieder, plus aller User, die diese Gruppe als Login-Gruppe habe. Insofern ist das erste Skript korrekt, weil es nur ausgibt, was in der /etc/group direkt steht.

Weshalb nun groups (das 2. Skript?) sagt, dass data auch in der ftpfour sei, weiss ich nicht. Doppelter Eintrag in der /etc/group? Vielleicht ein Tapp-Fehler? Die Skripte solltest Du mit Copy'n'Paste übernehmen können, so habe ich sie in den Browser auch reingesetzt.

Jochen

Post Reply