geist_der_foren Geschrieben 24. Februar 2004 Teilen Geschrieben 24. Februar 2004 Hi @all, ich hab folgendes kleine Skript:GROUP_PFAD=/etc/group i=700 for USER in `awk -F: '{print $1}' /etc/passwd` do GROUP=`grep $USER $GROUP_PFAD | awk -F: '$3>=100 {print $1}'` echo "groupadd -g $i $GROUP" i=`expr $i + 1` done Wie man sehen kann, holt sich das Skript die user aus der /etc/passwd und gibt mir dann die grouppen aus, in denen sich einer mindest einer dieser user befindet. Dann generiert er mir ein groupadd befehl. Jetzt habe ich 2 Probleme. 1. Er gibt mir ein paar Gruppen aus, in denen keine User sind (siehe unten) 2. Es kommt folgende ausgabe:groupadd -g 700 groupadd -g 701 groupadd -g 702 groupadd -g 703 groupadd -g 704 groupadd -g 705 groupadd -g 706 groupadd -g 707 groupadd -g 708 groupadd -g 709 groupadd -g 710 groupadd -g 711 groupadd -g 712 groupadd -g 713 nobody ---> Hier sind keine USER drin nogroup ------------------------> Warum bring er das auch raus ? groupadd -g 714 groupadd -g 715 groupadd -g 716 groupadd -g 717 groupadd -g 718 groupadd -g 719 radiusd ---> Hier sind keine USER drin groupadd -g 720 groupadd -g 721 privoxy ---> Hier sind keine USER drin groupadd -g 722 groupadd -g 723 groupadd -g 724 grouptest An sich sollte er mir nur folgendes ausgeben:groupadd -g 700 grouptestDen grouptest ist die einzigste gruppe die einen User auf der passwd hat und deren gID größer 100 ist. Kann mir jemand weiter helfen ? Blick das nicht so ganz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Nachtgeist Geschrieben 25. Februar 2004 Teilen Geschrieben 25. Februar 2004 Hi! Dein Problem ist, dass der Username auch im gruppennamen vorkommen kann. (Denke ich - hab mich da jetzt nciht so reingesteigert ) Original geschrieben von geist_der_foren GROUP=`grep $USER $GROUP_PFAD | awk -F: '$3>=100 {print $1}'` ersetze mal das grep $USER durch: egrep '[:,]'$USER HTH Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geist_der_foren Geschrieben 25. Februar 2004 Autor Teilen Geschrieben 25. Februar 2004 Danke ... du hast mich auf die Idee gebracht hier ist der code, falls es mal jemand braucht:#!/bin/bash GROUP_PFAD=/etc/group i=700 for USER in `awk -F: '{print $1}' /etc/passwd` do for USERB in `grep :$USER $GROUP_PFAD` do GROUP=`echo $USERB | awk -F: '$3>=100 {print $1}'` GROUP_USER=`echo $USERB | awk -F: '$3>=100 {print $4}' | sed 's/,/ /g'` if [[ $GROUP && $GROUP_USER ]] then echo "groupadd -g $i $GROUP" echo "gpasswd -a $GROUP_USER" i=`expr $i + 1` fi done done Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.