🤔 Как мы можем поменять последовательное выполнение таски плейбука на машинах в параллельное?
По умолчанию Ansible выполняет задачи последовательно, но можно ускорить выполнение с помощью параметра
🚩Увеличение параллельных подключений (`forks`)
Установить
🚩Асинхронное выполнение (`async` + `poll`)
Если задача выполняется долго, ее можно запустить асинхронно и не ждать завершения.
Пример асинхронного выполнения установки пакета
Проверить статус запущенных задач:
🚩Использование `&` в Shell-командах (`shell` + `nohup`)
Пример запуска задачи в фоновом режиме
Ставь 👍 и забирай 📚 Базу знаний
По умолчанию Ansible выполняет задачи последовательно, но можно ускорить выполнение с помощью параметра
forks или асинхронных задач (async). 🚩Увеличение параллельных подключений (`forks`)
forks – это количество серверов, на которых Ansible выполняет задачи одновременно. ansible-playbook -i inventory.ini playbook.yml --forks=10
Установить
forks в ansible.cfg: [defaults]
forks = 10
🚩Асинхронное выполнение (`async` + `poll`)
Если задача выполняется долго, ее можно запустить асинхронно и не ждать завершения.
Пример асинхронного выполнения установки пакета
- name: Установить nginx параллельно
apt:
name: nginx
state: present
async: 300
poll: 0
async: 300 – запускает задачу и дает ей 300 секунд на выполнение poll: 0 – не ждет завершения, сразу переходит к следующей Проверить статус запущенных задач:
ansible all -m async_status -a "jid=1234567890" -i inventory.ini
🚩Использование `&` в Shell-командах (`shell` + `nohup`)
Пример запуска задачи в фоновом режиме
- name: Запустить долгий процесс
shell: "nohup long_script.sh &"
Ставь 👍 и забирай 📚 Базу знаний
👍4
🤔 Что такое маска подсетей и зачем она нужна?
Маска подсети определяет, какая часть IP-адреса — это сеть, а какая — узел (host).
Например, маска255.255.255.0 говорит: первые 3 октета — сеть, последний — устройства в ней.
Используется для разделения сети на подсети, маршрутизации и управления доступом.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Маска подсети определяет, какая часть IP-адреса — это сеть, а какая — узел (host).
Например, маска
Используется для разделения сети на подсети, маршрутизации и управления доступом.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍7🤔2
🤔 В каком файле по дефолту будет хранится инормация об ОС, версии в линуксе?
В Linux информация о версии дистрибутива и ядра хранится в нескольких файлах.
🟠Основной файл — `/etc/os-release`
Этот файл есть во всех современных дистрибутивах (Debian, Ubuntu, RHEL, CentOS, Fedora).
Пример содержимого
🟠Альтернативный файл — `/etc/issue`
Некоторые дистрибутивы используют
Вывод
🟠Информация о ядре — `/proc/version`
Этот файл содержит версию ядра и информацию о компиляции.
Вывод
🟠Команды для проверки версии ОС
Проверить версию через
Вывод
Проверить ядро через
Вывод
Можно также вывести полную информацию:
Ставь 👍 и забирай 📚 Базу знаний
В Linux информация о версии дистрибутива и ядра хранится в нескольких файлах.
🟠Основной файл — `/etc/os-release`
Этот файл есть во всех современных дистрибутивах (Debian, Ubuntu, RHEL, CentOS, Fedora).
cat /etc/os-release
Пример содержимого
/etc/os-release NAME="Ubuntu"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
ID=ubuntu
PRETTY_NAME="Ubuntu 22.04.3 LTS"
VERSION_ID="22.04"
HOME_URL="https://www.ubuntu.com/"
🟠Альтернативный файл — `/etc/issue`
Некоторые дистрибутивы используют
/etc/issue. cat /etc/issue
Вывод
Ubuntu 22.04.3 LTS \n \l
🟠Информация о ядре — `/proc/version`
Этот файл содержит версию ядра и информацию о компиляции.
cat /proc/version
Вывод
Linux version 5.15.0-84-generic (buildd@lcy02-amd64-016) (gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0) #93-Ubuntu SMP
🟠Команды для проверки версии ОС
Проверить версию через
lsb_release lsb_release -a
Вывод
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
Проверить ядро через
unameuname -r
Вывод
5.15.0-84-generic
Можно также вывести полную информацию:
uname -a
Ставь 👍 и забирай 📚 Базу знаний
👍2
🤔 Как остановить контейнер?
1. Обычное завершение – docker stop <container_id> (мягкий SIGTERM).
2. Принудительное завершение – docker kill <container_id> (SIGKILL).
3. Через Compose – docker-compose stop или docker-compose down.
4. Удаление контейнера – docker rm -f <container_id>.
5. Если завис в zombie state – kill -9 $(docker inspect --format '{{.State.Pid}}' <container_id>).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
1. Обычное завершение – docker stop <container_id> (мягкий SIGTERM).
2. Принудительное завершение – docker kill <container_id> (SIGKILL).
3. Через Compose – docker-compose stop или docker-compose down.
4. Удаление контейнера – docker rm -f <container_id>.
5. Если завис в zombie state – kill -9 $(docker inspect --format '{{.State.Pid}}' <container_id>).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔4💊1
🤔 Какие метрики стоит снимать с докер контейнеров?
Чтобы мониторить Docker-контейнеры, нужно отслеживать ключевые метрики, которые помогут определить нагрузку, утечки памяти, падения контейнеров и проблемы с сетью.
CPU (Нагрузка на процессор)
Memory (Использование памяти)
Network (Сетевой трафик)
Disk I/O (Диск и файловая система)
Container Lifecycle (Состояние контейнеров)
🟠CPU (Загрузка процессора)
Метрика в Prometheus (cadvisor)
🟠Memory (Использование памяти)
Метрика в Prometheus
🟠Network (Сетевой трафик)
Метрика в Prometheus
🟠Disk I/O (Чтение/запись на диск)
Метрика в Prometheus
🟠Container Lifecycle (Состояние контейнеров)
Метрика в Prometheus
Ставь 👍 и забирай 📚 Базу знаний
Чтобы мониторить Docker-контейнеры, нужно отслеживать ключевые метрики, которые помогут определить нагрузку, утечки памяти, падения контейнеров и проблемы с сетью.
CPU (Нагрузка на процессор)
Memory (Использование памяти)
Network (Сетевой трафик)
Disk I/O (Диск и файловая система)
Container Lifecycle (Состояние контейнеров)
🟠CPU (Загрузка процессора)
% использования CPU контейнером % CPU в системе и пользователе Throttling (ограничение CPU) docker stats --format "table {{.Name}}\t{{.CPUPerc}}"Метрика в Prometheus (cadvisor)
rate(container_cpu_usage_seconds_total{name="my-container"}[5m]) * 100🟠Memory (Использование памяти)
RSS (реальная память, используемая процессами) Cache (используемая кэшированная память) OOM (Out of Memory kills) docker stats --format "table {{.Name}}\t{{.MemUsage}}"Метрика в Prometheus
container_memory_usage_bytes{name="my-container"}🟠Network (Сетевой трафик)
Rx/Tx Bytes (входящий и исходящий трафик) Количество соединений docker stats --format "table {{.Name}}\t{{.NetIO}}"Метрика в Prometheus
rate(container_network_transmit_bytes_total{name="my-container"}[5m])🟠Disk I/O (Чтение/запись на диск)
Количество операций чтения/записи Объем данных, записанных/прочитанных контейнером docker stats --format "table {{.Name}}\t{{.BlockIO}}"Метрика в Prometheus
rate(container_fs_writes_bytes_total{name="my-container"}[5m])🟠Container Lifecycle (Состояние контейнеров)
Перезапуски контейнера (Restart Count) Состояние контейнера (Running, Exited, Dead) docker ps -a --format "table {{.Names}}\t{{.Status}}\t{{.Restarts}}"Метрика в Prometheus
container_start_time_seconds{name="my-container"}Ставь 👍 и забирай 📚 Базу знаний
🔥4
🤔 Какие методы HTTP есть?
- GET — получить данные.
- POST — отправить (создать) данные.
- PUT — заменить данные.
- PATCH — частичное обновление.
- DELETE — удалить.
- HEAD, OPTIONS, TRACE — вспомогательные методы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- GET — получить данные.
- POST — отправить (создать) данные.
- PUT — заменить данные.
- PATCH — частичное обновление.
- DELETE — удалить.
- HEAD, OPTIONS, TRACE — вспомогательные методы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍4🔥2💊1
🤔 Удалил файлы, но место не очищается, в чем дело?
Если вы удалили файлы, но место на диске не освободилось, это может происходить по нескольким причинам.
🚩Файл все еще используется процессом
Если файл удален, но он открыт каким-либо процессом, его содержимое остается в памяти или файловой системе до завершения работы этого процесса. Это называется "удаление с дескриптором".
🟠Как проверить:
Используйте команду
🟠Как исправить
Перезапустите процесс или завершите его с помощью
🚩Файл удален, но он находился в другом файловом пространстве
Например:
- Файл был удален внутри Docker-контейнера, но место занято в образе.
- Файл находился на смонтированном диске, и удаление произошло в другом контексте.
🟠Как проверить
Убедитесь, что вы работаете в правильной файловой системе:
🟠Как исправить
Убедитесь, что удаление происходит в нужной директории или файловой системе.
🚩Файл был удален из директории, но находится в другой ссылке (hard link)
Если файл имеет несколько жестких ссылок, удаление одного из них не освободит место до тех пор, пока не удалены все ссылки.
🟠Как проверить
Используйте команду
🟠Как исправить
Удалите все ссылки на файл.
🚩Файл был удален, но находился в файловой системе с квотой
Если используется файловая система с ограничением (например, квоты пользователей или групп), возможно, квота пользователя исчерпана, и это мешает очистке.
🟠Как проверить
Проверьте квоты:
🟠Как исправить
Убедитесь, что квоты настроены правильно, или освободите больше места.
🚩Кэшированные данные или временные файлы
Иногда удаленные файлы остаются в виде кэша, временных данных или не удаляются из корзины.
🟠Как проверить
Очистите кэш или проверьте корзину. Например, для очистки временных файлов
🟠Как исправить
Удалите временные файлы, очистите кэш:
Ставь 👍 и забирай 📚 Базу знаний
Если вы удалили файлы, но место на диске не освободилось, это может происходить по нескольким причинам.
🚩Файл все еще используется процессом
Если файл удален, но он открыт каким-либо процессом, его содержимое остается в памяти или файловой системе до завершения работы этого процесса. Это называется "удаление с дескриптором".
🟠Как проверить:
Используйте команду
lsof (list open files), чтобы найти процессы, удерживающие файлlsof | grep deleted
🟠Как исправить
Перезапустите процесс или завершите его с помощью
kill:kill -9 <PID>
🚩Файл удален, но он находился в другом файловом пространстве
Например:
- Файл был удален внутри Docker-контейнера, но место занято в образе.
- Файл находился на смонтированном диске, и удаление произошло в другом контексте.
🟠Как проверить
Убедитесь, что вы работаете в правильной файловой системе:
df -h
🟠Как исправить
Убедитесь, что удаление происходит в нужной директории или файловой системе.
🚩Файл был удален из директории, но находится в другой ссылке (hard link)
Если файл имеет несколько жестких ссылок, удаление одного из них не освободит место до тех пор, пока не удалены все ссылки.
🟠Как проверить
Используйте команду
find, чтобы найти оставшиеся ссылки:find / -samefile <имя_файла>
🟠Как исправить
Удалите все ссылки на файл.
🚩Файл был удален, но находился в файловой системе с квотой
Если используется файловая система с ограничением (например, квоты пользователей или групп), возможно, квота пользователя исчерпана, и это мешает очистке.
🟠Как проверить
Проверьте квоты:
quota -u <username>
🟠Как исправить
Убедитесь, что квоты настроены правильно, или освободите больше места.
🚩Кэшированные данные или временные файлы
Иногда удаленные файлы остаются в виде кэша, временных данных или не удаляются из корзины.
🟠Как проверить
Очистите кэш или проверьте корзину. Например, для очистки временных файлов
sudo du -sh /tmp
sudo rm -rf /tmp/*
🟠Как исправить
Удалите временные файлы, очистите кэш:
sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches
Ставь 👍 и забирай 📚 Базу знаний
🔥2
🤔 Как и где посмотреть логи какого-нибудь сервиса?
1. Если сервис использует systemd, логи можно посмотреть через journalctl -u <имя_сервиса>.
2. Для Nginx, Apache и других приложений логи находятся в /var/log/ или в директории, указанной в конфигурации сервиса.
3. Используйте команды tail, less или cat для просмотра логов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
2. Для Nginx, Apache и других приложений логи находятся в /var/log/ или в директории, указанной в конфигурации сервиса.
3. Используйте команды tail, less или cat для просмотра логов.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍5🔥2🤔1
🤔 Как примонтировать диск?
Чтобы использовать новый диск в Linux, его нужно разметить, создать файловую систему и примонтировать.
🚩Разметить диск (`fdisk`)
Запустить
🚩Создать файловую систему (`mkfs`)
Форматировать раздел в
Если нужен
🚩Автоматическое монтирование при загрузке (`/etc/fstab`)
Найти
Вывод
Добавить в
Применить изменения
Ставь 👍 и забирай 📚 Базу знаний
Чтобы использовать новый диск в Linux, его нужно разметить, создать файловую систему и примонтировать.
🚩Разметить диск (`fdisk`)
Запустить
fdisk для диска sdb sudo fdisk /dev/sdb
🚩Создать файловую систему (`mkfs`)
Форматировать раздел в
ext4sudo mkfs.ext4 /dev/sdb1
Если нужен
xfssudo mkfs.xfs /dev/sdb1
🚩Автоматическое монтирование при загрузке (`/etc/fstab`)
Найти
UUID дискаblkid /dev/sdb1
Вывод
/dev/sdb1: UUID="12345678-abcd-1234-efgh-56789abcdef0" TYPE="ext4"
Добавить в
/etc/fstab echo 'UUID=12345678-abcd-1234-efgh-56789abcdef0 /mnt/data ext4 defaults 0 2' | sudo tee -a /etc/fstab
Применить изменения
sudo mount -a
Ставь 👍 и забирай 📚 Базу знаний
👍6
🤔 Как готовиться к собеседованию?
- Пройтись по теории (OS, сети, DevOps-инструменты);
- Подготовить краткое описание опыта и проектов;
- Решить технические задачи (CI/CD, Terraform, Docker);
- Прогнать вопросы по soft skills и кейсы;
- Отдохнуть перед интервью и не бояться признать, если что-то не знаешь.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Пройтись по теории (OS, сети, DevOps-инструменты);
- Подготовить краткое описание опыта и проектов;
- Решить технические задачи (CI/CD, Terraform, Docker);
- Прогнать вопросы по soft skills и кейсы;
- Отдохнуть перед интервью и не бояться признать, если что-то не знаешь.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍6
🤔 Что означают DNS records?
DNS Records – это записи, которые управляют маршрутизацией домена в интернете. Они определяют, куда направлять запросы, какие IP-адреса использовать и какие сервисы подключены к домену.
🚩Примеры использования
A-запись (IP-адрес домена)
CNAME-запись (псевдоним)
MX-запись (почтовый сервер)
TXT-запись (SPF, верификация)
Ставь 👍 и забирай 📚 Базу знаний
DNS Records – это записи, которые управляют маршрутизацией домена в интернете. Они определяют, куда направлять запросы, какие IP-адреса использовать и какие сервисы подключены к домену.
🚩Примеры использования
A-запись (IP-адрес домена)
example.com. IN A 192.168.1.1
CNAME-запись (псевдоним)
www.example.com. IN CNAME example.com.
MX-запись (почтовый сервер)
example.com. IN MX 10 mail.example.com.
TXT-запись (SPF, верификация)
example.com. IN TXT "v=spf1 include:_spf.google.com ~all"
Ставь 👍 и забирай 📚 Базу знаний
🔥2
🤔 Как CloudFront помогает сэкономить бюджет?
- Кэширование статического контента снижает нагрузку на S3 или серверы приложений.
- Близость к пользователю уменьшает задержки и число дорогостоящих запросов в центральный регион.
- Реже вызываются лямбды, API и базы, значит — меньше оплата за вызовы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Кэширование статического контента снижает нагрузку на S3 или серверы приложений.
- Близость к пользователю уменьшает задержки и число дорогостоящих запросов в центральный регион.
- Реже вызываются лямбды, API и базы, значит — меньше оплата за вызовы.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🤔2
🤔 Что такое debezium?
Она позволяет отслеживать изменения в базах данных (INSERT, UPDATE, DELETE) в реальном времени и передавать их в Kafka, Elasticsearch, MongoDB и другие системы.
🚩Как работает Debezium?
Подключается к базе данных
(PostgreSQL, MySQL, MongoDB, Oracle и др.).
Слушает лог изменений (binlog, WAL, oplog и т. д.)
Формирует события в формате JSON
Передаёт их в Kafka или другую шину данных.
🚩Где используется?
Синхронизация данных между базами
Репликация данных в реальном времени
Отправка изменений в аналитические системы (Elasticsearch, ClickHouse)
Аудит и логирование изменений
🟠Пример работы с Kafka
Запускаем Debezium Connector для PostgreSQL*
При изменении данных в таблице, Kafka получит событие:
Ставь 👍 и забирай 📚 Базу знаний
Она позволяет отслеживать изменения в базах данных (INSERT, UPDATE, DELETE) в реальном времени и передавать их в Kafka, Elasticsearch, MongoDB и другие системы.
🚩Как работает Debezium?
Подключается к базе данных
(PostgreSQL, MySQL, MongoDB, Oracle и др.).
Слушает лог изменений (binlog, WAL, oplog и т. д.)
Формирует события в формате JSON
Передаёт их в Kafka или другую шину данных.
🚩Где используется?
Синхронизация данных между базами
Репликация данных в реальном времени
Отправка изменений в аналитические системы (Elasticsearch, ClickHouse)
Аудит и логирование изменений
🟠Пример работы с Kafka
Запускаем Debezium Connector для PostgreSQL*
{
"name": "inventory-connector",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"database.hostname": "localhost",
"database.port": "5432",
"database.user": "debezium",
"database.password": "dbz",
"database.dbname": "inventory",
"database.server.name": "dbserver1"
}
}При изменении данных в таблице, Kafka получит событие:
{
"schema": { ... },
"payload": {
"before": { "id": 1, "name": "Old Name" },
"after": { "id": 1, "name": "New Name" },
"op": "u" // Update
}
}Ставь 👍 и забирай 📚 Базу знаний
👍8
🤔 Когда ты разворачиваешь стандартный кластер Kubernetes, что делает твой namespace?
При развёртывании кластера создаются стандартные namespaces: default для объектов по умолчанию, kube-system для компонентов Kubernetes, kube-public для общедоступных ресурсов и kube-node-lease для управления состоянием узлов. Они помогают разделить ресурсы и организовать кластер.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
💊6🔥2
🤔 Зачем нужен стейт в Terraform?
Файл
🟠Отслеживание ресурсов
Terraform использует
В коде создаем виртуальную машину
Запускаем
В
При следующем
🟠Управление зависимостями
Когда ресурсы связаны (например, сервер и security group), Terraform понимает связи через
🟠Работа в команде (`remote state`)
Когда несколько разработчиков работают с Terraform,
- S3 + DynamoDB (AWS)
- Terraform Cloud
- GCS + Firestore (GCP)
- Azure Storage + CosmosDB (Azure)
Ставь 👍 и забирай 📚 Базу знаний
Файл
terraform.tfstate хранит текущее состояние инфраструктуры. Он нужен, чтобы Terraform знал, какие ресурсы уже существуют, и мог правильно управлять изменениями. 🟠Отслеживание ресурсов
Terraform использует
tfstate, чтобы сопоставлять код с реальными ресурсами. В коде создаем виртуальную машину
hcl
resource "aws_instance" "example" {
ami = "ami-123456"
instance_type = "t2.micro"
}
Запускаем
terraform apply, создается сервер в AWS В
terraform.tfstate записывается информация об этом ресурсе При следующем
terraform apply Terraform сверяет tfstate с реальными ресурсами и вносит только изменения 🟠Управление зависимостями
Когда ресурсы связаны (например, сервер и security group), Terraform понимает связи через
tfstate и удаляет ресурсы в правильном порядке 🟠Работа в команде (`remote state`)
Когда несколько разработчиков работают с Terraform,
tfstate должен храниться в общем месте, например - S3 + DynamoDB (AWS)
- Terraform Cloud
- GCS + Firestore (GCP)
- Azure Storage + CosmosDB (Azure)
hcl
terraform {
backend "s3" {
bucket = "my-terraform-state"
key = "prod/terraform.tfstate"
region = "us-east-1"
encrypt = true
dynamodb_table = "terraform-lock"
}
}
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Какие утилиты для редактирования текста "на лету"?
"На лету" — это значит без открытия интерактивного редактора. Вот популярные утилиты:
- sed — потоковый редактор, отлично подходит для замены, удаления строк и подстановки.
- awk — обработка и изменение строк и столбцов в текстах.
- perl -p -i — редактирование файлов прямо в командной строке.
- ed — минималистичный текстовый редактор, работает через команды.
- ex — командный режим vi.
- Также echo, cut, tr, paste — для простых трансформаций.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
"На лету" — это значит без открытия интерактивного редактора. Вот популярные утилиты:
- sed — потоковый редактор, отлично подходит для замены, удаления строк и подстановки.
- awk — обработка и изменение строк и столбцов в текстах.
- perl -p -i — редактирование файлов прямо в командной строке.
- ed — минималистичный текстовый редактор, работает через команды.
- ex — командный режим vi.
- Также echo, cut, tr, paste — для простых трансформаций.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥1
🤔 Как происходит секьюрити тест какой алгоритм под капотом?
Security-тестирование – это процесс проверки системы на уязвимости, угрозы и риски атак. Оно помогает защитить данные и сервисы от хакеров.
🚩Сканеры уязвимостей (Nessus, OpenVAS)
- Загружают базу известных уязвимостей (CVE).
- Проверяют систему на наличие этих уязвимостей.
- Используют сигнатурный анализ (по шаблонам) и эвристический анализ (поведенческий).
🚩SQL-инъекции (SQLmap, Burp Suite)
- Автоматически подставляют вредоносные SQL-запросы (
- Проверяют, есть ли доступ к базе данных.
- Выполняют дамп данных, если нашли уязвимость.
🚩Поиск XSS-уязвимостей (DOM-XSS, Stored-XSS, Reflected-XSS)
- Вставляют вредоносный JavaScript-код в форму ввода.
- Если скрипт исполняется в браузере – уязвимость найдена.
🚩Подбор паролей (Brute Force, Dictionary Attack)
- Пробуют тысячи вариантов паролей (
- Используют
🚩Анализ трафика (MITM, Sniffing, Packet Analysis)
Захватывают пакеты сети (
Ищут передаваемые пароли, сессии, токены.
Ставь 👍 и забирай 📚 Базу знаний
Security-тестирование – это процесс проверки системы на уязвимости, угрозы и риски атак. Оно помогает защитить данные и сервисы от хакеров.
🚩Сканеры уязвимостей (Nessus, OpenVAS)
- Загружают базу известных уязвимостей (CVE).
- Проверяют систему на наличие этих уязвимостей.
- Используют сигнатурный анализ (по шаблонам) и эвристический анализ (поведенческий).
🚩SQL-инъекции (SQLmap, Burp Suite)
- Автоматически подставляют вредоносные SQL-запросы (
' OR 1=1 --). - Проверяют, есть ли доступ к базе данных.
- Выполняют дамп данных, если нашли уязвимость.
SELECT * FROM users WHERE username = 'admin' --' AND password = 'password'
🚩Поиск XSS-уязвимостей (DOM-XSS, Stored-XSS, Reflected-XSS)
- Вставляют вредоносный JavaScript-код в форму ввода.
- Если скрипт исполняется в браузере – уязвимость найдена.
<script>alert('XSS!')</script>🚩Подбор паролей (Brute Force, Dictionary Attack)
- Пробуют тысячи вариантов паролей (
rockyou.txt). - Используют
John the Ripper, Hydra, Hashcat. hydra -l admin -P passwords.txt 192.168.1.1 ssh
🚩Анализ трафика (MITM, Sniffing, Packet Analysis)
Захватывают пакеты сети (
tcpdump, Wireshark). Ищут передаваемые пароли, сессии, токены.
Ставь 👍 и забирай 📚 Базу знаний
🤔 Как организовать полный цикл CI/CD для 3 команд?
- Разделить пайплайны по проектам/компонентам;
- Использовать общие stages: build → test → scan → deploy;
- Настроить изолированные среды (dev/test/prod);
- Внедрить обратную связь (slack, email);
- Хранить все артефакты централизованно;
- Назначить ответственность за релиз каждой команды или централизованно через релиз-менеджера.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- Разделить пайплайны по проектам/компонентам;
- Использовать общие stages: build → test → scan → deploy;
- Настроить изолированные среды (dev/test/prod);
- Внедрить обратную связь (slack, email);
- Хранить все артефакты централизованно;
- Назначить ответственность за релиз каждой команды или централизованно через релиз-менеджера.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍1💊1
🤔 Когда вы создаёте файл какие права создаются по умолчанию?
Права доступа по умолчанию зависят от базовых прав доступа и значения
🟠Файлы: 666 (rw-rw-rw-)
Это означает, что по умолчанию все пользователи могут читать и записывать в файл.
🟠Каталоги: 777 (rwxrwxrwx)
Это означает, что по умолчанию все пользователи могут читать, записывать и выполнять (заходить) в каталог.
🚩Значение umask: 022
Это маска, которая определяет, какие права будут отключены при создании нового файла или каталога. Значение
🟠Создание файла
Базовые права доступа: 666
Значение
Окончательные права доступа: 666 - 022 = 644 (rw-r--r--)
🟠Создание каталога
Базовые права доступа: 777
Значение
Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x)
🚩Создание файла с umask 0022
1⃣Установка umask
2⃣Создание файла
3⃣Проверка прав доступа
Вывод
Права доступа: 644 (rw-r--r--)
🚩Создание каталога с umask 0027
1⃣Установка umask
2⃣Создание каталога
3⃣Проверка прав доступа
Вывод
Права доступа: 750 (rwxr-x---)
🚩Дополнительные замечания
🟠umask в скриптах
Вы можете установить umask в скрипте для задания прав доступа по умолчанию для всех создаваемых файлов и каталогов.
🟠Проверка прав доступа в разных ситуациях
Для файлов: По умолчанию права доступа 666 минус umask.
Для каталогов: По умолчанию права доступа 777 минус umask.
Ставь 👍 и забирай 📚 Базу знаний
Права доступа по умолчанию зависят от базовых прав доступа и значения
umask. Базовые права доступа — это значения, которые система использует для определения разрешений перед применением маски umask.🟠Файлы: 666 (rw-rw-rw-)
Это означает, что по умолчанию все пользователи могут читать и записывать в файл.
🟠Каталоги: 777 (rwxrwxrwx)
Это означает, что по умолчанию все пользователи могут читать, записывать и выполнять (заходить) в каталог.
🚩Значение umask: 022
Это маска, которая определяет, какие права будут отключены при создании нового файла или каталога. Значение
umask указывается в восьмеричной системе счисления. 🟠Создание файла
Базовые права доступа: 666
Значение
umask: 022Окончательные права доступа: 666 - 022 = 644 (rw-r--r--)
🟠Создание каталога
Базовые права доступа: 777
Значение
umask: 022Окончательные права доступа: 777 - 022 = 755 (rwxr-xr-x)
🚩Создание файла с umask 0022
1⃣Установка umask
umask 0022
2⃣Создание файла
touch myfile
3⃣Проверка прав доступа
ls -l myfile
Вывод
Права доступа: 644 (rw-r--r--)
-rw-r--r-- 1 user user 0 Jul 26 12:00 myfile
🚩Создание каталога с umask 0027
1⃣Установка umask
umask 0027
2⃣Создание каталога
mkdir mydir
3⃣Проверка прав доступа
ls -ld mydir
Вывод
Права доступа: 750 (rwxr-x---)
drwxr-x--- 2 user user 4096 Jul 26 12:00 mydir
🚩Дополнительные замечания
🟠umask в скриптах
Вы можете установить umask в скрипте для задания прав доступа по умолчанию для всех создаваемых файлов и каталогов.
#!/bin/bash
umask 027
touch file1
mkdir dir1
🟠Проверка прав доступа в разных ситуациях
Для файлов: По умолчанию права доступа 666 минус umask.
Для каталогов: По умолчанию права доступа 777 минус umask.
Ставь 👍 и забирай 📚 Базу знаний
🔥3
Пожизненная PRO подписка на easyoffer по цене одного года.
Акция до 20 февраля. Покупаешь сейчас один раз – пользуешься всю жизнь без лимита, включая все будущие функции.
Запланированные новые фичи на ближайшие пол года:
1. Агрегатор вакансий
2. Улучшение резюме, чтобы проходить ATS системы
3. Генерация уникального резюме и сопроводительного письма под вакансию
Покупай на https://easyoffer.ru/
Акция до 20 февраля. Покупаешь сейчас один раз – пользуешься всю жизнь без лимита, включая все будущие функции.
Запланированные новые фичи на ближайшие пол года:
1. Агрегатор вакансий
2. Улучшение резюме, чтобы проходить ATS системы
3. Генерация уникального резюме и сопроводительного письма под вакансию
Покупай на https://easyoffer.ru/
🤔1💊1
🤔 Что такое декларативный подход?
Декларативный подход — это способ описания желаемого конечного состояния, а не шагов, как до него добраться. Например, мы говорим, что "пакет nginx должен быть установлен", а не "скачай и установи nginx".
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍6