# Змінні середовища Linux {{#include ../banners/hacktricks-training.md}} ## Глобальні змінні Глобальні змінні **будуть** успадковані **дочірніми процесами**. Ви можете створити глобальну змінну для вашої поточної сесії, виконавши: ```bash export MYGLOBAL="hello world" echo $MYGLOBAL #Prints: hello world ``` Ця змінна буде доступна у ваших поточних сесіях та їх дочірніх процесах. Ви можете **видалити** змінну, виконавши: ```bash unset MYGLOBAL ``` ## Локальні змінні **Локальні змінні** можуть бути **доступні** лише **поточній оболонці/скрипту**. ```bash LOCAL="my local" echo $LOCAL unset LOCAL ``` ## Список поточних змінних ```bash set env printenv cat /proc/$$/environ cat /proc/`python -c "import os; print(os.getppid())"`/environ ``` ## Загальні змінні З: [https://geek-university.com/linux/common-environment-variables/](https://geek-university.com/linux/common-environment-variables/) - **DISPLAY** – дисплей, що використовується **X**. Ця змінна зазвичай встановлюється на **:0.0**, що означає перший дисплей на поточному комп'ютері. - **EDITOR** – улюблений текстовий редактор користувача. - **HISTFILESIZE** – максимальна кількість рядків, що містяться в файлі історії. - **HISTSIZE** – Кількість рядків, доданих до файлу історії, коли користувач завершує свою сесію. - **HOME** – ваш домашній каталог. - **HOSTNAME** – ім'я хоста комп'ютера. - **LANG** – ваша поточна мова. - **MAIL** – місце розташування поштового спулу користувача. Зазвичай **/var/spool/mail/USER**. - **MANPATH** – список каталогів для пошуку сторінок мануалу. - **OSTYPE** – тип операційної системи. - **PS1** – стандартний запит у bash. - **PATH** – зберігає шлях до всіх каталогів, які містять бінарні файли, які ви хочете виконати, просто вказавши ім'я файлу, а не відносний або абсолютний шлях. - **PWD** – поточний робочий каталог. - **SHELL** – шлях до поточної командної оболонки (наприклад, **/bin/bash**). - **TERM** – тип поточного терміналу (наприклад, **xterm**). - **TZ** – ваш часовий пояс. - **USER** – ваше поточне ім'я користувача. ## Цікаві змінні для хакінгу ### **HISTFILESIZE** Змініть **значення цієї змінної на 0**, щоб коли ви **завершите свою сесію**, **файл історії** (\~/.bash_history) **був видалений**. ```bash export HISTFILESIZE=0 ``` ### **HISTSIZE** Змініть **значення цієї змінної на 0**, щоб, коли ви **закінчите свою сесію**, будь-яка команда не додавалася до **файлу історії** (\~/.bash_history). ```bash export HISTSIZE=0 ``` ### http_proxy & https_proxy Процеси використовуватимуть **проксі**, оголошений тут, для підключення до Інтернету через **http або 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 Процеси довірятимуть сертифікатам, вказаним у **цих змінних середовища**. ```bash export SSL_CERT_FILE=/path/to/ca-bundle.pem export SSL_CERT_DIR=/path/to/ca-certificates ``` ### PS1 Змініть вигляд вашого запиту. [**Це приклад**](https://gist.github.com/carlospolop/43f7cd50f3deea972439af3222b68808) Root: ![](<../images/image (897).png>) Звичайний користувач: ![](<../images/image (740).png>) Одна, дві та три фонові задачі: ![](<../images/image (145).png>) Одна фонове завдання, одне зупинене і остання команда не завершилася правильно: ![](<../images/image (715).png>) {{#include ../banners/hacktricks-training.md}}