Невозможно ограничить команды, которые пользователь может запустить как root в оболочке с поддержкой devtoolset-3

Невозможно ограничить команды, которые пользователь может запустить как root в оболочке с поддержкой devtoolset-3

Мы используем devtoolset-3 на RHEL6.6. Пользователи запускают scl enable devtoolset-3 bash, чтобы получить доступ к среде со всеми инструментами devtoolset-3.

Я хотел бы разрешить пользователям запускать подмножество команд как root. Обычный способ сделать это — использовать sudo с файлом sudoers, содержащим псевдоним команды со списком команд, которые вы хотите, чтобы пользователь мог выполнять как root.

Я пробовала разные комбинации, но так и не смогла придумать правильный рецепт.

Ниже приведены некоторые из вещей, которые я попробовал:

Попытка 1:

Я создаю псевдоним команды:

Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/pkill <process name>

а затем разрешить членам myGroup выполнять эти команды без пароля

%myGroup  ALL=(ALL) NOPASSWD:SETENT: ALLOWEDCOMMANDS

При такой настройке, если я попытаюсь запустить sudo pkill, я получу:

Извините, пользователю не разрешено выполнять '/usr/bin/scl enable devtoolset-3 'pkill' ''' как root

Попытка 2:

Я изменил файл sudoers, чтобы в нем была полная команда:

Cmnd_Alias ALLOWEDCOMMANDS=/usr/bin/scl enable devtoolset-3 pkill <some_process_name>

но я все еще получаю ту же ошибку.

Попытка 3:

Если я укажу /usr/bin/sclразрешенную команду, то пользователю будет разрешено выполнять любую команду от имени root в среде с включенным scl.

Может ли кто-нибудь придумать надежный способ разрешить пользователям запускать определенный список команд в оболочке с включенным scl?

решение1

На всякий случай, если кто-то еще столкнется с этой проблемой, я решил опубликовать здесь ответ, который я получил от службы поддержки Red Hat.

Оказывается, версия sudo devtoolset-3 не очень хорошо воспроизводит формат псевдонимов команд, которые вы можете указать в /etc/sudoers.

В вашей оболочке с поддержкой devtoolset-3 вы можете использовать alias sudo=/usr/bin/sudo. Тогда ваши пользователи будут запускать стандартный sudo, который правильно обрабатывает псевдонимы команд.

С этим псевдонимом все работает так, как и ожидалось.

Связанный контент