# Variables d'environnement Linux
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
## Variables globales
Les variables globales **seront** héritées par les **processus enfants**.
Vous pouvez créer une variable globale pour votre session actuelle en faisant :
```bash
export MYGLOBAL="hello world"
echo $MYGLOBAL #Prints: hello world
```
Cette variable sera accessible par vos sessions actuelles et ses processus enfants.
Vous pouvez **supprimer** une variable en faisant :
```bash
unset MYGLOBAL
```
## Variables locaux
Les **variables locales** ne peuvent être **accédées** que par le **shell/script courant**.
```bash
LOCAL="my local"
echo $LOCAL
unset LOCAL
```
## Liste des variables actuelles
```bash
set
env
printenv
cat /proc/$$/environ
cat /proc/`python -c "import os; print(os.getppid())"`/environ
```
## Variables d'environnement persistantes
#### **Fichiers qui affectent le comportement de chaque utilisateur :**
* _**/etc/bash.bashrc**_ : Ce fichier est lu chaque fois qu'un shell interactif est démarré (terminal normal) et toutes les commandes spécifiées ici sont exécutées.
* _**/etc/profile et /etc/profile.d/\***_**:** Ce fichier est lu chaque fois qu'un utilisateur se connecte. Ainsi, toutes les commandes exécutées ici ne seront exécutées qu'une seule fois au moment de la connexion de l'utilisateur.
* \*\*Exemple : \*\*
`/etc/profile.d/somescript.sh`
```bash
#!/bin/bash
TEST=$(cat /var/somefile)
export $TEST
```
#### **Fichiers qui affectent le comportement d'un utilisateur spécifique :**
* _**\~/.bashrc**_ : Ce fichier fonctionne de la même manière que le fichier _/etc/bash.bashrc_, mais il est exécuté uniquement pour un utilisateur spécifique. Si vous voulez créer un environnement pour vous-même, modifiez ou créez ce fichier dans votre répertoire personnel.
* _**\~/.profile, \~/.bash\_profile, \~/.bash\_login**_**:** Ces fichiers sont identiques à _/etc/profile_. La différence réside dans la manière dont il est exécuté. Ce fichier est exécuté uniquement lorsqu'un utilisateur dans le répertoire personnel duquel ce fichier existe se connecte.
**Extrait de :** [**ici**](https://codeburst.io/linux-environment-variables-53cea0245dc9) **et** [**ici**](https://www.gnu.org/software/bash/manual/html\_node/Bash-Startup-Files.html)
## Variables courantes
De : [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/)
* **DISPLAY** – l'affichage utilisé par **X**. Cette variable est généralement définie sur **:0.0**, ce qui signifie le premier affichage sur l'ordinateur actuel.
* **EDITOR** – l'éditeur de texte préféré de l'utilisateur.
* **HISTFILESIZE** – le nombre maximum de lignes contenues dans le fichier d'historique.
* \*\*HISTSIZE - \*\*Nombre de lignes ajoutées au fichier d'historique lorsque l'utilisateur termine sa session.
* **HOME** – votre répertoire personnel.
* **HOSTNAME** – le nom d'hôte de l'ordinateur.
* **LANG** – votre langue actuelle.
* **MAIL** – l'emplacement du spool de courrier de l'utilisateur. Généralement **/var/spool/mail/USER**.
* **MANPATH** – la liste des répertoires à rechercher pour les pages de manuel.
* **OSTYPE** – le type de système d'exploitation.
* **PS1** – l'invite par défaut dans bash.
* \*\*PATH - \*\*stocke le chemin de tous les répertoires qui contiennent des fichiers binaires que vous souhaitez exécuter simplement en spécifiant le nom du fichier et non le chemin relatif ou absolu.
* **PWD** – le répertoire de travail actuel.
* **SHELL** – le chemin vers le shell de commande actuel (par exemple, **/bin/bash**).
* **TERM** – le type de terminal actuel (par exemple, **xterm**).
* **TZ** – votre fuseau horaire.
* **USER** – votre nom d'utilisateur actuel.
## Variables intéressantes pour le piratage
### **HISTFILESIZE**
Modifiez la **valeur de cette variable à 0**, de sorte que lorsque vous **terminez votre session**, le **fichier d'historique** (\~/.bash\_history) **sera supprimé**.
```bash
export HISTFILESIZE=0
```
### **HISTSIZE**
Changez la **valeur de cette variable à 0**, ainsi lorsque vous **terminez votre session**, toute commande ne sera pas ajoutée au **fichier d'historique** (\~/.bash\_history).
```bash
export HISTSIZE=0
```
### http\_proxy & https\_proxy
Les processus utiliseront le **proxy** déclaré ici pour se connecter à Internet via **http ou https**.
```bash
export http_proxy="http://10.10.10.10:8080"
export https_proxy="http://10.10.10.10:8080"
```
### SSL\_CERT\_FILE & SSL\_CERT\_DIR
Les processus feront confiance aux certificats indiqués dans **ces variables d'environnement**.
```bash
export SSL_CERT_FILE=/path/to/ca-bundle.pem
export SSL_CERT_DIR=/path/to/ca-certificates
```
### PS1
Modifiez l'apparence de votre invite de commande.
J'ai créé [**celle-ci**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808) (basée sur une autre, lisez le code).
Root:
![](<../.gitbook/assets/image (87).png>)
Utilisateur régulier:
![](<../.gitbook/assets/image (88).png>)
Un, deux et trois travaux en arrière-plan:
![](<../.gitbook/assets/image (89).png>)
Un travail en arrière-plan, un arrêté et la dernière commande n'a pas fini correctement:
![](<../.gitbook/assets/image (90).png>)
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
* Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).