
Мы используем 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, который правильно обрабатывает псевдонимы команд.
С этим псевдонимом все работает так, как и ожидалось.