Я прохожу курс “от 0 до Linux админа” вот здесь Learn Programming Online | Courses for Developers | YODO и столкнулся с проблемой: возможно ли предотвратить выполнение скриптов в файловой системе без установки флага ‘noexec’? Мы используем RHEL, и в целях соблюдения стандартов CIS у нас установлен флаг ‘noexec’ для /tmp на всех серверах. Одна из наших команд пытается внедрить программное обеспечение для автоматизации обновления сертификатов, которое, по крайней мере частично, создаёт несколько скриптов в /tmp и запускает их.
Очевидно, это не работает с установленным ‘noexec’. Нам сообщили, что изменить программу на использование другого расположения, кроме /tmp, “пока невозможно”. Для ограничения разрешений безопасности нам дали временное разрешение монтировать /tmp без ‘noexec’, пока поставщик программного обеспечения не изменит процесс. Однако нашим задачей является настройка системы так, чтобы только сервисный аккаунт, под которым работает приложение, мог выполнять файлы, и только те, которые необходимы для работы приложения.
Я рассматривал использование ACL для этого, но не думаю, что это реализуемо, если только мы не захотим по сути полностью запретить доступ всем остальным к /tmp. Если мы запретим пользователям выполнять файлы в /tmp, они не могут получить доступ к директории или её содержимому. Если запретим выполнение в /tmp/*, они могут получить доступ к /tmp, но не смогут выполнить ни один файл в нём, и нам постоянно придётся запускать команду setfacl, чтобы охватить новые файлы, в результате чего это станет бесполезным занятием.
Я готов сказать “простите, это невозможно; либо ‘включено’, либо ‘выключено’…”, но подумал, что лучше сначала спросить у более опытных коллег — может быть, я упускаю что-то очевидное.