N-PN White-Hat Project
[BASH] Connaitre les utilisateurs avec un le nom suivant - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages interprétés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=27)
+--- Sujet : [BASH] Connaitre les utilisateurs avec un le nom suivant (/showthread.php?tid=3567)



[BASH] Connaitre les utilisateurs avec un le nom suivant - InFamouZz - 27-01-2014

Bonjours a tous Smile
depuis ce matin je bloque sur un script bash
j'essaye dans un script bash d'afficher tous les utilisateurs qui portent le nom contenue dans ma variable $user de mon script
concrètement dans le fichier /etc/passwd la 5eme colonne contient les nom des utilisateurs, je voudra afficher les lignes qui contiennent $user en 5eme colonne.
J'ai réussi a afficher tous les noms d'utilisateurs du fichier /etc/passwd mais je n'arrive pas a implémenter la condition Sad


RE: [BASH] Connaitre les utilisateurs avec un le nom suivant - notfound - 27-01-2014

Salut InFamouZz, perso je passe par awk :

Code BASH :

awk -F':' -v u="$user" '$1 ~ u' /etc/passwd
 



Btw la 5e colonne ce sont des commentaires, pas les noms des users Wink
login:passwd:uid:gid:comment:homeConfusedhell


RE: [BASH] Connaitre les utilisateurs avec un le nom suivant - gruik - 27-01-2014

Code BASH :
awk -F':' -vnom=$USER '$5 ~ nom {print $1}' /etc/passwd

Code PERL :
perl -F':' -lane 'print $F[0] if $F[4] =~ $ENV{"USER"}' /etc/passwd

Code PYTHON :
python -c "print '\n'.join([i.split(':')[0] for i in open('/etc/passwd').readlines() if '$USER' in i.split(':')[4]])"



RE: [BASH] Connaitre les utilisateurs avec un le nom suivant - InFamouZz - 27-01-2014

(27-01-2014, 02h07)notfound a écrit : Salut InFamouZz, perso je passe par awk :

Code BASH :

awk -F':' -v u="$user" '$1 ~ u' /etc/passwd
 



Btw la 5e colonne ce sont des commentaires, pas les noms des users Wink
login:passwd:uid:gid:comment:homeConfusedhell

enfaite j'était pas sur pour la 5eme colonne ^^ car sur ce site : http://www.loligrub.be/contrib/tlepoint/BASE.1/node111.html il disent nom complet donc c'est pas grave commentaire m'arrange Smile
merci de la reponce


RE: [BASH] Connaitre les utilisateurs avec un le nom suivant - notfound - 27-01-2014

(27-01-2014, 02h31)InFamouZz a écrit : enfaite j'était pas sur pour la 5eme colonne ^^ car sur ce site : http://www.loligrub.be/contrib/tlepoint/BASE.1/node111.html il disent nom complet

Et bien change de site, c'est de la merde. Moi en général j'ai pas de commentaire, donc la colonne 5 est vide !

J'viens de penser que ce code serait encore mieux :
Code BASH :

awk -F':' -v u="$user" '$1 == u' /etc/passwd
 


Car si $user = toto et que tu as un autre qui s'appelle totonumber2, ma première réponse va matcher les deux... Ce n'est pas forcément ce que tu veux je crois.

@gruik : c'est bien de tout déballer, mais y'en a aucune qui marchent telle quelle pour le coup ... ;)


RE: [BASH] Connaitre les utilisateurs avec un le nom suivant - supersnail - 27-01-2014

@notfound: Le site n'a pas tout à fait tort, la plupart des gestionnaires de bureau modernes (Gnome 3, Unity, sûrement KDE aussi et peut-être Mate aussi) se servent du champ "commentaire" pour renseigner le nom complet de l'utilisateur (ainsi que d'autres infos) et s'en servir ensuite pour afficher ces infos dans un indicateur/menu spécial (ainsi que dans le display manager, pour se connecter à la session)


RE: [BASH] Connaitre les utilisateurs avec un le nom suivant - notfound - 27-01-2014

Tout à fait oui, mais le site fait passer ça comme un acquis. Or, il peut y avoir de tout dedans, le nom complet (ok) mais pas obligatoirement. Donc affirmer que y'a le nom complet ici, c'est FAUX.

Donc quitte à faire des recherches sur google, autant tomber sur des vrais sites pas remplis de connerie :]


RE: [BASH] Connaitre les utilisateurs avec un le nom suivant - gruik - 27-01-2014

(27-01-2014, 10h31)notfound a écrit : @gruik : c'est bien de tout déballer, mais y'en a aucune qui marchent telle quelle pour le coup ... Wink

comme dit supersnail t'as des managers qui utilisent le champs commentaire pour mettre le nom complet du user genre "Sebastien Ucemoi" pour le user "sucemoi", ce que j'ai compris c'est qu'il voulait par exemple récup tous les users dont le prénom est Sebastien, le tout en utilisant une variable shell, l'un dans l'autre j'ai pris la variable $USER qui induit peut-être en confusion j'admets, vu qu'elle correspond au champs $1 et qu'on la compare au champs $5, bref.
quant à tout déballer c'est que j'me faisais tellement chier, alors quand j'ai vu que ça causait technique sur npn tu penses j'me suis jeté dessus comme un chat sur sa paté, bref², on est pas des manches et sur une question aussi noob c'est facile de rectifier/d'adapter, la base est valide


RE: [BASH] Connaitre les utilisateurs avec un le nom suivant - notfound - 27-01-2014

(27-01-2014, 13h40)gruik a écrit : comme dit supersnail t'as des managers qui utilisent le champs commentaire pour mettre le nom complet

cf. juste au dessus, j'vais pas me répéter. Au besoin lire deux fois.

(27-01-2014, 13h40)gruik a écrit : genre "Sebastien Ucemoi" pour le user "sucemoi"

*clap clap*

(27-01-2014, 13h40)gruik a écrit : j'ai pris la variable $USER

Il a plusieurs noms user à mettre, autant ne pas écraser la variable d'environnement qui pourrait servir plus tard.

Pour le reste je relèverai pas, c'est du réchauffé avarié.

Sujet clos pour ma part Rolleyes