Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+694новые вакансии за сутки·52 494вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 662
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python6 244
  • Облачные технологии4 749
  • QA вакансии1 736
  • Android1 148
  • Инженер данных800
  • Продакт-менеджер321

Разработка

  • iOS1 092
  • Backend вакансии1 046
  • Fullstack вакансии453
  • AI вакансии391
  • Frontend вакансии376
  • Mobile вакансии27

По стеку

  • Go3 590
  • Java2 153
  • Kotlin942
  • Node.js767
  • Rust544
  • .NET496
  • PHP267
  • C++220
  • C#198

DevOps и инфраструктура

  • Kubernetes2 686
  • Linux-инфраструктура2 117
  • DevOps вакансии1 960
  • Terraform / IaC1 615
  • CI/CD871
  • Мониторинг и Observability742
  • SRE228
  • Кибербезопасность47

Аналитика и данные

  • Аналитик данных495
  • Data Scientist449
  • Бизнес-аналитик351
  • Системный аналитик54

Другие направления

  • Проджект-менеджер109
  • UI/UX дизайн70
  • Ручное тестирование14

По регионам

  • Вакансии в США23 835
  • Вакансии в Европе9 341
  • Работа в России3 283
  • Вакансии в Канаде2 140

По формату

  • Удалённые вакансии41 311
  • Релокация в США23 835
  • Гибридная работа4 058
  • Офисная работа2 949

По уровню

  • Senior вакансии20 396
  • Middle вакансии11 620
  • Junior вакансии3 665

Сейчас нанимают

Все компании
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Wise139 вакансий
  • Grab134 вакансии
  • Infobip28 вакансий
  • Adyen23 вакансии
  • Darktrace17 вакансий
  • Spotify15 вакансий
  • Celonis11 вакансий
  • Razorpay9 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме DockerВсе вопросы
DockerSeniorТеория

Чем capabilities отличаются от full root? Какие capabilities обычно дропают?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Linux capabilities делят root на отдельные права (~40 штук). В контейнерах применяют cap_drop: ALL, затем добавляют минимально нужные. Обычно дропают SYS_ADMIN, NET_ADMIN, SYS_PTRACE, NET_RAW, DAC_OVERRIDE и другие неиспользуемые привилегии.

Что дропают в production

# docker-compose.yml
services:
  api:
    image: my-api:1.0.0
    cap_drop:
      - ALL
    cap_add:
      - NET_BIND_SERVICE  # только если нужен порт < 1024
    read_only: true
    user: "1000:1000"
# Kubernetes Pod spec
securityContext:
  runAsNonRoot: true
  runAsUser: 1000
  capabilities:
    drop:
      - ALL
    add:
      - NET_BIND_SERVICE
  readOnlyRootFilesystem: true
  allowPrivilegeEscalation: false

Наиболее опасные capabilities, которые дропают в первую очередь:

  • SYS_ADMIN — самый широкий, охватывает mount, namespace, device control. По сути почти весь root.
  • NET_ADMIN — управление сетевыми интерфейсами, iptables, routing. Нужен только сетевым утилитам.
  • SYS_PTRACE — introspection процессов, ptrace(). Нужен debugger'ам; в production не нужен.
  • SYS_MODULE — загрузка kernel modules. Почти никогда не нужен в контейнере.
  • DAC_OVERRIDE — обход ACL. Дропают если приложение правильно запускается под своим uid.
  • NET_RAW — raw sockets. Нужен для ping внутри контейнера, но web-сервисам не нужен.

Что такое Linux capabilities

Традиционная Unix модель: процесс либо root (всё), либо не root (почти ничего). Linux capabilities делят привилегии root на ~40 независимых прав. Процесс может иметь только нужный capability, не получая полный root. В Docker это — основа least privilege для контейнеров.

Default capabilities в Docker

Docker по умолчанию оставляет ограниченный набор (из docker/engine):

  • CHOWN — смена владельца файлов
  • DAC_OVERRIDE — обход file permission checks
  • FSETID — сохранение setuid/setgid битов
  • FOWNER — обход ownership checks для операций с файлами
  • MKNOD — создание device nodes
  • NET_RAW — raw sockets (нужен для ping, ARP, ICMP)
  • SETGID, SETUID — смена group/user ID
  • SETFCAP — установка capabilities на файлы
  • SETPCAP — передача capabilities
  • NET_BIND_SERVICE — bind на порты < 1024
  • SYS_CHROOT — chroot
  • KILL — посылка сигналов
  • AUDIT_WRITE — запись в audit log

Диагностика нужных capabilities

# Запустить с cap_drop: ALL и найти что именно нужно
docker run --rm --cap-drop ALL my-app 2>&1 | grep -i 'operation not permitted'

# Проверить capabilities процесса внутри контейнера
docker run --rm --cap-drop ALL --cap-add NET_BIND_SERVICE my-app \
  grep Cap /proc/1/status

# capsh decode
capsh --decode=00000000a80425fb

Подводные камни

  • Запуск как uid 0 с дефолтными capabilities — это не «безопасный root»: процесс имеет DAC_OVERRIDE и NET_RAW, что уже позволяет много лишнего.
  • Флаг --privileged даёт все capabilities и отключает seccomp/AppArmor — никогда не используйте в production.
  • Legacy приложения могут требовать SYS_ADMIN для mount-related операций — правильное решение переработать, а не дать capability.
  • Дропнуть SETUID/SETGID — правильно, но проверьте что entrypoint и init-скрипты не меняют uid (tini, gosu).
  • В Kubernetes capabilities задаются в securityContext на уровне pod и container; Pod Security Standards (Restricted) требует drop: ALL.
  • NET_BIND_SERVICE нужен только для портов < 1024; для web-сервисов проще использовать порт 8080 за reverse proxy.
  • Docker Compose не проверяет корректность capability names — опечатка в cap_drop молча игнорируется.
  • Capabilities в контейнере ограничены bounding set namespace: даже с cap_add: SYS_ADMIN некоторые операции недоступны без --privileged из-за user namespace ограничений.

Частые вопросы на собеседовании

  • Как ты организуешь tagging образов в проде? Почему latest в проде — плохо?
  • Чем named volume отличается от bind mount и от tmpfs? Когда что использовать?
  • Зачем контейнер должен писать логи в stdout/stderr, а не в файл?
  • Контейнер в Restarting бесконечно. Алгоритм действий?

Типичные ошибки

  • Считать non-root user единственным нужным security control.
  • Добавлять SYS_ADMIN как универсальный фикс.
  • Оставлять NET_RAW и SYS_PTRACE без причины в web-service container.

Что проверяет интервьюер

  • Объясняет capabilities как дробление root privileges.
  • Знает cap_drop ALL and targeted cap_add model.
  • Называет опасные capabilities and legitimate exceptions.

Как вы знаете этот вопрос?

Проверить себя по теме Docker →

Источники

  • https://docs.docker.com/engine/
  • https://github.com/opencontainers/runtime-spec

Связанные темы

Dockercontainer hardeningLinux capabilitiesRuntime Security

Вакансии с этим навыком

Docker вакансии
  • Web Application Engineer - EC First Party Development Department (ECFD)
  • Senior Software Engineer, Advertisement Optimization Group - Merchandising and Advertisement Department (MAD)
  • Senior Web Application Engineer, J.League Online Store - EC Expansion Development Department (ECEXD)
  • Software Engineer, Data Management Platform - Global Ad Technology Supervisory Department (GATD)
  • DX Solution Lead Engineer - Backoffice Business Support Section, Business Support Development Department (BSD)