coolmec28 Posté(e) le 15 février 2004 Partager Posté(e) le 15 février 2004 Voilà j'aimerais connaitre le groupe d'un utilisateur, simplement en tapant son nom comme argument. Pour ce faire j'ai fait ceci dans un fichier sous vi que j'ai nommer test, je l'ai rendu excécutable, Puis je tape ceci : ./test nom_utilisateur Mais il me sort par moment plusieurs lignes de résultat. Je ne comprend pas trop pq, si quelqu'un pouvait m'aider ca serait cool Voici la syntaxe que j'ai mis dans mon fichier shell script : #!/bin/bash USER=`cat /etc/passwd | cut -d':' -f1,4 | grep "$1" | cut -d':' -f2` GROUP=`cat /etc/passwd | cut -d':' -f1,3 | grep "$USER" | cut -d':' -f1` echo "le nom du groupe de l'utilisateur est : $GROUP" Comme on peut le voir je compare l'argument 1 avec le champ 1 et 4, que je coupe ensuite en prenant juste le champ 2 qui est le num du groupe. Ensuite je vais comparé cette valeur avec le champ 3 dans /etc/group et je recoupe pour qu'il me renvoit juste le champ 1, ceci afin d'avoir le nom du groupe en question. Donc je ne comprend pas pq il sort plusieurs lignes de résultat pour certains utilisateurs. Voilà si quelqu'un pouvait m'aider, je l'en remercie d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
gauret Posté(e) le 15 février 2004 Partager Posté(e) le 15 février 2004 Le group ID de bin est 1 par exemple. Si tu lances ton script sur bin, tu vas récupérer les groupes 1, 10, 11, 12, 21, etc... tout ce qui contient 1 quoi. Loin de moi l'idée de te décourager d'apprendre le bash, mais il existe la commande "groups" qui fait ce que tu veux : $ groups bin bin : bin daemon sys A+ Gauret Lien vers le commentaire Partager sur d’autres sites More sharing options...
coolmec28 Posté(e) le 15 février 2004 Auteur Partager Posté(e) le 15 février 2004 Merci pour ta réponse m'aide beaucoup dans la compréhension du fonctionnement de ce que j'ai tapé ;-) Et effectivement la commande groups et largement bien plus rapide. Lien vers le commentaire Partager sur d’autres sites More sharing options...
gauret Posté(e) le 15 février 2004 Partager Posté(e) le 15 février 2004 Pour garder l'idée de ton script, tu peux remplacer le grep "$USER" par un grep "^$USER$" et voir si ça marche mieux. le "^" signifie "début de ligne" et le "$" signifie "fin de ligne" A+ Gauret Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.