Linux ищет команды, например `ls` или `python`, в каталогах из переменной `PATH` слева направо и запускает первый найденный файл.
Риск возникает, если в `PATH` есть каталог, доступный для записи другому пользователю. В него можно поместить поддельный `backup-tool`, и скрипт администратора, вызывающий команду без полного пути, запустит именно его. При повышенных привилегиях подмена может выполняться с правами процесса.
Проверить порядок поиска можно командами:
`echo «$PATH»`
`type -a backup-tool`
`command -v backup-tool`
Для привилегированных скриптов рекомендуется задавать безопасный `PATH`:
`PATH=/usr/sbin:/usr/bin:/sbin:/bin`
Критически важные утилиты следует вызывать по абсолютному пути, например `/usr/bin/id`, а каталоги из `PATH` — проверять на запись непривилегированными пользователями. Пустой элемент (`:/usr/bin`) добавляет поиск в текущем каталоге и также создаёт риск.
Подпишись, тут про технолоджии.
P.S. Меня зовут Бедняков Артем, я разрабатываю backend-решения на Python любой сложности:
- REST API и микросервисы;
- агентные системы и AI-интеграции;
- Telegram-боты и Mini Apps;
- парсеры и автоматизация;
- интеграции с внешними сервисами и API;
- тестирование и CI/CD;
- DevOps и развёртывание;
- аудит и проверки безопасности.
Если вам нужна разработка или есть вопросы по реализации проекта — пишите мне в Telegram
Всегда рад обсудить задачу и помочь найти решение.
Также подписывайтесь на мой Telegram-канал IT POLICE, где я пишу о Python, backend-разработке, технологиях и кибербезопасности.