Как защитить сервер прода от себя Чтобы не стать героем байки про "как я случайно удалил базу на проде", вот несколько способов, которые помогут избежать человеческого фактора при ручных действиях. 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 неделю назад