[Perl/Unix]Récup var d'env != users [Fermé]

Signaler
-
 fxta -
Salut,
pour commencer je m'excuse du nom du post mais il devait être explicite tout en respectant le nombre de lettres maxi....

Objet : Je souhaiterai récupérer différentes variables d'environnement de chaques utilisateurs sous Unix.

Bases : les utilisateurs et mots de passe utilisateurs peuvent etre récupéré facilement dans des variables.

Contraintes : récupérer certaines variables d'environnements sans que le script ne s'arrete a chaque changement d'utilisateur.

J'ai pensé à un truc dans le style qui ne fonctionne, bien évidemment, pas du tout :

my $su= `su - $login $pass`; my $env= $ENV{'HOME'};


Mais sur le principe, c est ca. Apres entre la théorie et la pratique......

Bonne journée.

4 réponses

Messages postés
506
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
14 mai 2011
59
Regardes les fichiers /proc/<uid>/environ (en changeant bien sur uid avec un existant)

Exemple en sh: cat /proc/self/environ
retourne les vars environnantes de la session
J'ai bien trouvé /proc/<uid>. Je n'ai pas le /enviro malheureusement.
Merci pour se renseignement.

1er problème : lorsque je recupere mon uid avec la commande id, celui ci n'est pas listé dans le répertoire proc.

2eme probleme : comment connaitre l'id d'un environnement sans se connecter ni le démarrer ?
Messages postés
18241
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
31 mai 2021
5 302
hello
l'environnement est local à une tâche, avec
my $su= `su - $login $pass`; my $env= $ENV{'HOME'};
tu ne récupères que l'environnement du shell qui a lancé le su
oui, je fais mon su donc je switch de user, je recup les variables d env puis je reswitch de user etc.... et je boucle tout ca. Le pb c est que j'y arrive pas.
Messages postés
18241
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
31 mai 2021
5 302
si tu es root, pas besoin de password
et si tu fais
su -c set $user
Nan mais en ligne de commande a la main en dur j'arrive tres facilement a recuperer les variables d'environnement qui m'interessse:
>su - LOGIN
>PASS
>echo $VAR_D'ENV


Le probleme c est de recuperer ca avec un script perl en dynamique.

L'autre solution serait de récuperer la source des informations d'unix pour les variables :
il doit bien exister un endroit ou toutes les variables de tous les environnements sont stockés.

Unix est bien obligé de garder une trace des variables d'environnements propres a chaque user...le probleme c est de savoir où....
Bon j'ai trouvé, dans chaque environnement il y a un fichier caché .profile. C est ce fichier qui contient toutes les variables propres a l'environnement.

Bonne journée.