GNU/Linux >> Tutoriels Linux >  >> Linux

Existe-t-il un moyen de modifier les variables d'environnement d'un autre processus sous Unix ?

Substantiellement, non. Si vous aviez des privilèges suffisants (root, ou à peu près) et que vous avez fouillé /dev/kmem (mémoire du noyau), et que vous avez apporté des modifications à l'environnement du processus, et si le processus a en fait référencé la variable d'environnement par la suite (c'est-à-dire que le processus n'avait pas déjà pris une copie de l'env var et n'utilisait pas uniquement cette copie), alors peut-être, si vous étiez chanceux et intelligent, et que le vent soufflait dans la bonne direction, et que la phase de la lune était correcte, peut-être, vous pourriez réaliser quelque chose.


Vous pouvez probablement le faire techniquement (voir les autres réponses), mais cela pourrait ne pas vous aider.

La plupart des programmes s'attendront à ce que les vars env ne puissent pas être modifiés de l'extérieur après le démarrage, donc la plupart liront probablement les vars qui les intéressent au démarrage et s'initialiseront en fonction de cela. Donc, les changer par la suite ne fera aucune différence, puisque le programme ne les relira jamais.

Si vous avez posté cela comme un problème concret, vous devriez probablement adopter une approche différente. Si c'était juste par curiosité :Bonne question :-).


Via gdb :

(gdb) attach process_id

(gdb) call putenv ("env_var_name=env_var_value")

(gdb) detach

C'est un piratage assez désagréable et ne devrait être fait que dans le contexte d'un scénario de débogage, bien sûr.


Linux
  1. Quelle est la meilleure façon Distro/shell-agnostic pour définir des variables d'environnement ?

  2. Changer la police de la console en mode texte ?

  3. Changer l'environnement d'un processus en cours ?

  4. Manière de récupérer le nom de l'environnement de bureau ? ?

  5. La méthode portable (posix) pour réaliser la substitution de processus ?

Comment changer la priorité d'un processus sous Linux

UNIX / Linux :Comment changer la gentillesse (priorité) d'un processus

Utilisation des variables d'environnement dans la commande cURL - Unix

Quelle est la portée des variables shell exportées dans Unix ?

Quelle est la meilleure façon d'apprendre SELinux ?

Variables d'environnement d'un processus en cours d'exécution sous Unix ?