Hi nochmal 😉
Hätte eine weiter Frage.. und zwar wollte ich ein Script ein bisschen erweitern. Nichts aufwendiges, aber zur Übung ganz gut 😉
Ich will, die Gruppen zu den/dem User(n) ausgeben, die aus der passwd Datei ausgelesen werden.
Bei mir habe ich z.B. mehrere Benutzer die ähnlich heißen. Wenn ich z.b.
con eingebe,werden mir alle benutzer in denen con enthalten ist angezeigt. in meinem Fall
constantin constanti
Jetzt will ich das Script erweitern, dass abfragen soll, von welchem User ich die Gruppen sehen will.
Angefangen habe ich so...
1 grep $SEARCH_USER /etc/passwd | cut -d: -f1 | cut -f1 > anzUsr #passwd wird nach String SEARCHUSER durchsucht, und nur die Benutzernamen werden ausgegeben. Die ausgegeben Zeilen werden in der Datei anzUsr gespeichert Nun will eine Abfrage an den User machen, für welchen Benutzer die Gruppen ausgegeben werden soll. Dafür zähle ich erstmal die Zeilen in der Datei anzUsr. Den Wert weise ich dann der variable anz zu.
anz=$(wc -l anzUsr)
Nun meine Frage wie ich weitermachen kann/soll.
Die einzelnen Usernamen hätte ich mit dem Befehl
grep XXX /etc/passwd | cut -d: -f1 | head -1l | cut -f1 aud der Datei ausgelesen.
Für XXX die Variable SEARCH_USER und die Zeilen mit head -xl wobei x für die jeweilige Zeile stehen soll.
Kann man mit einer while-Schleife, Variablen in der Höhe anz erstellen? und in den Variablen die Usernamen speichern, welche ich mit head -1,2,3,4,5,6,7,8,9,10-n l aus der Datei herausfiltere? Oder brauche ich dafür ein Array?
Hoffe ihr wisst was ich meine 😉
Freue mich über jeden Tipp!
Danke euch
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | read -p "Welcher User soll überprüft werden?:" SEARCH_USER ## User wird nach einer Eingabe gefragt, diese wird in der Variable SEARCH_USER gespeichert if [ -z $SEARCH_USER ] ## Wenn keine Eingabe(z.b. nur Enter) erfolgt ist, geht es in der while-Schleife weiter. Ansonsten bei der Variable zwischen. then while [ -z $SEARCH_USER ] ## Solange wie keine Eingabe erfolgt, soll nachfolgender Befehl durchgeführt werden. do read -p "Welcher User soll überprüft werden?:" SEARCH_USER ## User wird solange nach einer Eingabe gefragt bis diese eine Wert hat der nicht leer ist done fi zwischen=$(grep $SEARCH_USER /etc/passwd) ## in der Variable 'zwischen' soll die Ausgabe von grep $SEARCH_USER /etc/passwd gespeichert werden, damit diese später auf seine Richtigkeit ## ## geprüft werden kann. (Hier bin ich mir nicht sicher ob das eine vernünfige Lösung ist) if [ -z "$zwischen" ] ## Hier soll geprüft werden, ob der übergebene Wert an die Variable SEARCH_USER in der Datei passwd vorhanden ist. Wenn dies nicht der Fall ist then echo "User nicht vorhanden " ## wird dieses Echo ausgegeben. else echo "User ist mit folgenden Einträgen vorhanden: " ## Wenn der übergebene Wert an die Variable SEARCH_USER in der Datei passwd vorhanden ist, wird dieses echo ausgegeben mit Einträgen(zwischen) echo $zwischen f |
i