Ответ
sudo (substitute user do) — это программа, которая позволяет разрешенному пользователю выполнить команду с привилегиями другого пользователя, по умолчанию — суперпользователя (root). В отличие от прямого входа под root, sudo обеспечивает аудит и гибкое управление правами.
Ключевые принципы и использование:
- Аутентификация:
sudoзапрашивает пароль текущего пользователя, а не root. - Конфигурация: Правила доступа настраиваются в файле
/etc/sudoersс помощью утилитыvisudo. Это предотвращает синтаксические ошибки. - Логирование: Все команды, выполненные через
sudo, логируются (обычно в/var/log/auth.logили/var/log/secure), что критически важно для безопасности и аудита.
Примеры команд:
# Обновить список пакетов с правами root
sudo apt update
# Выполнить команду от имени другого пользователя (например, www-data)
sudo -u www-data cat /var/log/nginx/error.log
# Открыть интерактивную root-сессию в текущем каталоге
sudo -i
Пример записи в /etc/sudoers для DevOps:
# Разрешить пользователю `deploy` перезапускать службы без пароля
deploy ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx, /bin/systemctl restart myapp
Использование sudo в скриптах автоматизации должно быть тщательно продумано, часто предпочтительнее использовать ограниченные права через sudoers, чем запускать весь скрипт от root.