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é
Benutzer & Gruppen anzeigen
Re: Benutzer & Gruppen anzeigen
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>
<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>
Re: Benutzer & Gruppen anzeigen
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.
<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.
Re: Benutzer & Gruppen anzeigen
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...
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...
Re: Benutzer & Gruppen anzeigen
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.
<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.
Re: Benutzer & Gruppen anzeigen
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
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
Re: Benutzer & Gruppen anzeigen
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
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
Re: Benutzer & Gruppen anzeigen
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
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
Re: Benutzer & Gruppen anzeigen
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
"fourftp101:fourmart,attila,mum,gast"
/etc/passwd:
"data506:101::/home/pub:/bin/bash"
Andre
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
"fourftp101:fourmart,attila,mum,gast"
/etc/passwd:
"data506:101::/home/pub:/bin/bash"
Andre
Re: Benutzer & Gruppen anzeigen
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
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