hacktricks/src/linux-hardening/linux-environment-variables.md

109 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Змінні середовища 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}}