Herausfinden, ob User bestimmter Gruppe angehört?

D

don_corleone

Hallo,

mit "groups user_name" kann ich mir ja anzeigen lassen welchen Gruppen ein User angehört.

Aber wie kann ich in einem Script prüfen, ob der User "jim" wirklich der Gruppe "beam" angehört und daraufhin eine bestimmte Meldung ausgeben lassen (wenn dies der Fall ist)?

Wäre für eure Hilfe wieder sehr dankbar!
 
Fuer bash (vermutlich allgemein POSIX konforme Interpreter:
Code:
if ( groups jim | grep beam > /dev/null ); then 
echo "Gehoert der Gruppe and;
else "Gehoert nicht der Gruppe an";
fi
 
Danke für diese rasend schnelle Antwort, aber wenn es jetzt auch eine Gruppe "beam2" oder "xxxbeamxxx" geben würde und jim nur einer dieser Gruppen angehört, aber nicht der Gruppe "beam" selbst, würde mit diesem Beispiel doch eine falsche Meldung ausgegeben werden, oder?
 
Hallo
Dann benutze egrep und verfeinere den regulären Ausdruck!
Dieser sollte aber möglichst immer gequotet werden.

Gruß Wolfgang
 
Bin da leider nicht so gut drauf, kann mir bitte jemand dabei helfen?
 
Hallo
Welche *nixshell hast du eigentlich?
Bitte gewöhn dir doch mal an, das gleich mitzusagen.
Nicht jeder kennt deine Bedingungen und es ist einfach ein Gebot der Höflichkeit, deine Hilfesuche für die Helfenden so leicht wie möglich zu machen.

Ganz grob POSIX-conform kannst du ein Wort (Sonderzeichen darin mal außen vor gelassen) durch Nicht Char gefolgt von Charpattern deiner Wahl gefolgt von Nicht Char ausdrücken.
Wenn du Tab oder Leerzeichen als Wortgrenze verwenden kannst, bist du fein raus.
Code:
 "[[:space:]]Pattern[[:space:]]"
Das dann noch auf das Gematchte Wort in grep reduziert, und du hast schon gewonnen. ;)
Gruß Wolfgang
PS Immer daran denken, cygwin ist keine *nix shell und bestimmt nicht POSIX-kompatible und hier OT.
 
Danke für den Tipp "grep -w". Das hat geholfen!

Vielleicht weiß noch jemand, wie man feststellen kann, wieviele Sekunden das Script braucht, bis es fertig abgearbeitet ist?

PS: Korn Shell
 
Code:
time shellscript

ist das, was Du suchst.

Gruss, Xanti
 
Hallo

Versuchs mal mit 'time' kenne allerdings die Syntax für 'time' in der korn shell nicht...
In der bash siehts so aus:
Code:
adminjfu@hsg09017-d:~$ time { du . > /dev/null; }

real    0m2.669s
user    0m0.024s
sys     0m0.180s
adminjfu@hsg09017-d:~$
'man time' wird dir weiterhelfen...

Gruss
d22
//edit:
zu spät.... ;)
 

Ähnliche Themen

FTP-server frage - mount-nullfs

Solaris Login mit Active Directory User

CentOS 7: Falsche Metric bei regelbasiertem Routing nach Server-Reboot

Nach nicht existierender Datei suchen

AWK Tip gesucht

Zurück
Oben