Liste alle user in einer Gruppe

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von CptRick, 04.09.2008.

  1. #1 CptRick, 04.09.2008
    CptRick

    CptRick Mitglied

    Dabei seit:
    17.05.2008
    Beiträge:
    26
    Zustimmungen:
    0
    hiho,

    ich versuche mir ein skript zu schreiben, dass für jeden user in der Gruppe "guests" ein Kommando ausführt.
    Das Auslesen der Zeile in /etc/group bekomm ich noch hin, aber bei dem Listen der Usernamen in ein array per sed, grep oder awk hören meine bash Kenntnisse auf.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 04.09.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Aber warum so umständlich?
    Das kannst du doch direkt an dein command verfüttern.

    Code:
    grep "pattern" input|while read U;
    do 
       command "$U"
    done
    
    Andererseits ist die Verwendung von Array sehr abhängig von der verwendeten Shell.

    In der bash:
    Code:
    MYARRAY=( $(command))
    
    Gruß Wolfgang
     
  4. #3 Gott_in_schwarz, 04.09.2008
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    Mit
    Code:
    grep ^guests /etc/group|cut -d: -f4|tr , ' '
    solltest du eine durch Leerzeichen getrennte Auflistung der user in der Gruppe guests erhalten. Diese kannst du entweder direkt in einer for-Schleife verwenden oder auch in ein array packen.
    Das "^" bei grep meint nur "am Anfang der Zeile", cut zeigt nur das vierte Feld an (wobei Felder durch ":" getrennt sind) und tr "übersetzt" Kommata in Leerzeichen.
    Mit
    Code:
    ... | tr , '\n'
    könntest du auch gleich in eine while(-read) Schleife pipen. (Siehe Wolfgangs Vorschlag.)
     
  5. #4 CptRick, 04.09.2008
    CptRick

    CptRick Mitglied

    Dabei seit:
    17.05.2008
    Beiträge:
    26
    Zustimmungen:
    0
    Danke!

    Ich habe es jetzt so gelöst:
    Code:
    array=($(grep ^guests /etc/group | cut -d: -f4 | tr , ' '))
    
    for USER in ${array[*]}
    do
    
               mount --bind /mnt/media/audio /home/chroot/ssh/home/$USER/audio
               mount --bind /mnt/media/video /home/chroot/ssh/home/$USER/video
               mount --bind /mnt/media/image /home/chroot/ssh/home/$USER/image
    
    done
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Liste alle user in einer Gruppe

Die Seite wird geladen...

Liste alle user in einer Gruppe - Ähnliche Themen

  1. KRandR listet nicht alle auflösungen

    KRandR listet nicht alle auflösungen: Hallo liebe Leute ! Folgendes Problem: Ich habe einen TFT der ne optimale auflösung von 1440x900 hat, kann diese auflösung aber nicht in meinem...
  2. Wie alle installierten Pakete als Liste bekommen?

    Wie alle installierten Pakete als Liste bekommen?: Hallo zusammen, ich hatte mich schon öfters gefragt wie man es hinbekommt, dass man alle installierten Pakete in einer Liste erhält. dpkg...
  3. mplayer listet nicht alle sound-driver

    mplayer listet nicht alle sound-driver: hi, hab hier den alsa driver installiert, und zwar mit EMU10K1 unterstützung für meine SB Live!, unter xmms funzt der sound einandfrei und sehr...
  4. Liste aller Betriebssysteme

    Liste aller Betriebssysteme: Kennt jemand eine gute Seite in der moeglichst viele Betriebssysteme (nicht nur PC) aufgelistet sind. Mit google hab ich wenig gefunden.
  5. Hundertserver sucht Dich: Linux Spezialisten in Berlin.

    Hundertserver sucht Dich: Linux Spezialisten in Berlin.: Hundertserver sucht einen Linuxspezialiten in Berlin Hundertserver über sich: "Hundertserver bietet Unternehmen die Möglichkeit, digitale...