Найти в Дзене

Как защитить сервер прода от себя


Чтобы не стать героем байки про "как я случайно удалил базу на проде", вот несколько способов, которые помогут избежать человеческого фактора при ручных действиях.

1. Приветственное сообщение в терминале с указанием окружения:

```bash
echo -e "
\033[41m\033[5mWARNING\033[m
\033[1;34mThis is a production server\033[m
"
```

2. Настройка PS1 (prompt string) с подсветкой окружения и имени хоста:

```bash
PS1="\@ \[\033[38;5;196m\]PROD\[$(tput sgr0)\]\n[\[$(tput sgr0)\]\[\033[38;5;75m\]\u\[$(tput sgr0)\]@\[$(tput sgr0)\]\[\033[38;5;196m\]\h\[$(tput sgr0)\] \W]\\$ \[$(tput sgr0)\]"
```

В своей практике я применяю эти методы, размещая настройки в системном каталоге `/etc/profile.d/` или пользовательских файлах `.profile` для Debian и `.bash_profile` для Red Hat-дистрибутивов (если нет прав на запись в `/etc`).

Дополнительные предохранители:

3. sudo с паролем - отсутствие NOPASSWD в sudoers на проде будет напоминанием, что вы не в тестовом окружении.

4. Подтверждение sudo команд - можно создать функцию, которая будет запрашивать подтверждение перед выполнением команд с sudo:

```bash
sudo() {
read -rp "⚠️ WARNING: Running a command with superuser privileges! Continue? (y/N): " response
case "$response" in
[yY][eE][sS]|[yY])
command sudo "$@"
;;
*)
echo "The execution of the command has been canceled."
return 1
;;
esac
}
```

Поделитесь своим опытом: какие меры защиты от случайных команд на продакшене вы считаете наиболее эффективными?
Как защитить сервер прода от себя  Чтобы не стать героем байки про "как я случайно удалил базу на проде", вот несколько способов, которые помогут избежать человеческого фактора при ручных действиях.
1 минута