Методы повышения прав доступа
Sudo: Основной инструмент повышения прав доступа
Понимание Sudo
Sudo (Superuser Do) позволяет авторизованным пользователям выполнять команды с повышенными привилегиями:
graph LR
A[Обычный пользователь] --> |sudo команда| B[Привилегии root]
Основное использование Sudo
## Выполнить одну команду с привилегиями root
$ sudo apt update
## Открыть сеанс оболочки root
$ sudo -i
Конфигурация Sudo
Управление файлом sudoers
Файл /etc/sudoers контролирует доступ к sudo:
## Безопасно редактировать файл sudoers
$ sudo visudo
Типы прав доступа Sudo
| Уровень прав доступа |
Описание |
| NOPASSWD |
Выполнять sudo без пароля |
| PASSWD |
Требовать пароля для sudo |
| Ограниченные команды |
Ограничивать выполнение определенных команд |
Альтернативные методы повышения прав доступа
su (Переключиться на пользователя)
## Переключиться на пользователя root
$ su -
## Переключиться на конкретного пользователя
$ su username
Методы Setuid и Setgid
graph TD
A[Исполняемый файл] --> B{Установлен бит Setuid?}
B -->|Да| C[Запускается с привилегиями владельца]
B -->|Нет| D[Запускается с привилегиями выполняющего пользователя]
Установка бита Setuid
## Добавить право Setuid
$ chmod u+s executable_file
Расширенные методы повышения прав доступа
Capabilities
Современные системы Linux используют capabilities для тонкой настройки управления привилегиями:
## Списать capabilities файла
$ getcap /path/to/binary
## Установить capability
$ sudo setcap cap_net_bind_service=+ep /path/to/binary
Лучшие практики в LabEx
- Минимизировать доступ к root
- Использовать принцип минимальных привилегий
- Регулярно проводить аудит конфигурации sudo
- Реализовать надежную аутентификацию
Логирование sudo
## Просмотреть логи команд sudo
$ sudo journalctl -u sudo
Безопасностные соображения
- Всегда осторожно использовать sudo
- Избегать выполнения ненужных команд с привилегиями root
- Разбираться с потенциальными рисками повышения привилегий