Этот чеклист нужен администратору после развёртывания сервера, миграции или инцидента. Цель - найти места, где обычный пользователь может стать владельцем системы из-за неверной настройки.
Sudo и группы
sudo -l
getent group sudo
getent group docker
- Не выдавайте
NOPASSWD: ALLсервисным пользователям. - Группа
dockerпрактически равна root-доступу на хосте. - Разрешайте конкретные команды с полными путями, а не широкие shell-шаблоны.
SUID и capabilities
find / -perm -4000 -type f -not -path '/proc/*' 2>/dev/null
getcap -r / 2>/dev/null
Любой новый SUID-файл или capability вроде cap_setuid требует объяснения. Если объяснения нет, это технический долг или след инцидента.
Сервисы и writable-path
- Проверьте, от какого пользователя запущен systemd unit.
- Скрипты, которые запускаются от root, не должны лежать в writable-директориях.
- PATH в unit-файлах лучше не использовать для критичных команд: указывайте абсолютные пути.
- Секреты в
/home,/tmpи рабочих каталогах сервисов должны иметь минимальные права.
systemctl cat app.service
namei -l /opt/app/deploy.sh