sudo & /etc/sudoers

Тема дорожной карты · Linux & Unix Fundamentals

sudo — это важный инструмент управления доступом в Linux, который позволяет пользователям временно получить права администратора для выполнения команд. Конфигурация sudo хранится в файле /etc/sudoers, где определяются правила доступа для каждого пользователя или группы. Редактирование этого файла следует выполнять через специальную утилиту visudo, чтобы избежать синтаксических ошибок и потери доступа к системе. Вместо использования универсального ALL=(ALL) NOPASSWD: ALL, рекомендуется использовать точечные правила (Cmnd_Alias, NOPASSWD, Defaults requiretty, secure_path), которые обеспечивают более строгий контроль доступа.

Как это работает

sudo является ключевым элементом системы управления доступом в Linux. Он позволяет пользователям выполнять команды с повышенными привилегиями, что особенно важно при работе с системными файлами и конфигурациями. Файлы /etc/passwd и /etc/shadow содержат информацию о пользователях и их паролях, а /etc/group — о группах и их членах. Каждый процесс запускается под определенным пользователем (UID) и группой (GID), что позволяет системе контролировать доступ к ресурсам на уровне пользователя и группы. Системные пользователи, имеющие UID менее 1000, обычно используются для запуска демонов и служб, в то время как обычные пользователи имеют UID выше этого порога. Утилиты useradd, usermod, и userdel используются для создания, изменения и удаления пользователей, а groupadd, groupmod, и groupdel — для работы с группами.

Когда применять

sudo особенно полезен при работе с системными командами и конфигурациями, где требуется повышение привилегий. Для каждого долгого сервиса рекомендуется создать выделенного непривилегированного пользователя, чтобы минимизировать риск. Например, можно использовать команду useradd -r -s /usr/sbin/nologin myapp для создания пользователя myapp без возможности логина. Это позволяет запускать сервисы под этим пользователем, что уменьшает угрозу компрометации системы. Важно настроить sudo так, чтобы он требовал ввода пароля при выполнении команд с повышенными привилегиями, а также логировал действия для аудита. Это обеспечивает дополнительный уровень безопасности и позволяет отслеживать действия пользователей.

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

Одной из распространенных ошибок при работе с sudo и /etc/sudoers является редактирование файла /etc/sudoers без использования visudo. Это может привести к синтаксическим ошибкам, которые могут сделать файл недействительным и привести к потере доступа к системе. Другой ошибкой является создание общего аккаунта для разработчиков, что затрудняет отслеживание действий каждого инженера. Также важно избегать назначения пользователей к группам wheel или sudo без предварительного обдумывания. Это может привести к ситуации, когда ушедший инженер оставит свои SSH-ключи в системе, что создает угрозу безопасности. Централизация управления пользователями и группами через LDAP, FreeIPA или SSO становится необходимой после достижения определенного числа серверов и пользователей.

Связанные понятия

Полезные ресурсы