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

fxta -  
 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.
Configuration: Unix Aix

4 réponses

  1. loveparade Messages postés 515 Statut Membre 60
     
    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
    0
  2. fxta
     
    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 ?
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
    0
    1. fxta
       
      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.
      0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    si tu es root, pas besoin de password
    et si tu fais
    su -c set $user
    0
    1. fxta
       
      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ù....
      0
      1. fxta > fxta
         
        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.
        0