Как запретить выполнение команд с -EXEC в Sudoers и предотвратить их поиск

Как Заблокировать Определённые Команды в Sudoers: Полное Руководство

Когда речь заходит о безопасности систем Linux, управление правами пользователей — ключевая задача. Одним из важных элементов этого управления является файл sudoers, который определяет, какие команды могут выполнять пользователи с повышенными привилегиями. В этой статье мы обсудим, как правильно настроить разрешения для команды find, чтобы запретить её использование с определёнными опциями, такими как -exec и -delete.

Проблема с Командой find

Ситуация, с которой вы можете столкнуться, заключается в том, что команда find может быть использована пользователем с правами sudo, даже когда вы предполагаете, что она должна быть запрещена. Например, вы можете попытаться заблокировать использование следующих команд:

find ... -exec rm 
find ... -delete

Однако, в результате неудачной конфигурации вы можете заметить, что команда работает, как показано в следующем примере:

$ sudo su - myUser
$ sudo find var/www/html/ ! -type d -exec ls -l {} +

Анализ Конфигурации sudoers

Чтобы понять, почему команда разрешается, необходимо проанализировать настройки в файле /etc/sudoers.d/myUser. Например, следующие строки:

myUser ALL=!/usr/bin/find * -exec *
myUser ALL=!/usr/bin/find * -delete *
myUser ALL=/usr/bin/find *

удаляют ограничения для myUser, когда используется команда find без дополнительных условий.

Изменение Порядка Записей

Так как в файле sudoers применяются записи по порядку, последняя соответствующая команда имеет приоритет. Это означает, что:

myUser ALL=/usr/bin/find *

разрешает использование find в любых контекстах, предшествующих записям, запрещающим использование опций -exec и -delete. Чтобы это исправить, следует изменить порядок записей:

myUser ALL=/usr/bin/find *
myUser ALL=!/usr/bin/find * -exec *
myUser ALL=!/usr/bin/find * -delete *

Дополнительные Ограничения

Если вы хотите внедрить еще более строгие ограничения, возможно, вам потребуется запретить и другие опции, такие как -ok и другие производные от -exec. Для этого добавьте соответствующие строки:

myUser ALL=!/usr/bin/find -exec *
myUser ALL=!/usr/bin/find -delete *

Также стоит учитывать, что различные реализации find могут поддерживать дополнительные аргументы, такие как -execdir и -okdir, которые также нужно будет заблокировать, если они представляют для вас опасность.

Заключение

Управление правами доступа в Linux с помощью файла sudoers — это мощный инструмент, который требует тщательного подхода к конфигурации. С помощью правильного порядка записей и тщательного выбора запрещённых опций, вы можете существенно повысить безопасность вашей системы. Регулярно проверяйте и обновляйте конфигурацию sudoers в зависимости от изменяющейся угрозы и потребностей вашей среды.

Следуя данным рекомендациям, вы сможете эффективно управлять доступом пользователей и защитить свою систему от нежелательных изменений.

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *