У меня есть несколько серверов, на которых некоторым пользователям для работы требуется быть sudoers. Проблема в том, что когда sudoers могут запускать команду sudo su
и войдите как пользователь root
. Запускать эту команду кажется очень рискованным.
Я пробовал использовать псевдоним команды в файле / etc / sudoers, но это не сработало. Есть ли способ, которым они являются sudoers, но не запускают команду sudo su
?
% sudo ALL = (ВСЕ) NOPASSWD: ALL
Вы фактически предоставили пользователям в группе sudo полный неограниченный контроль над вашей системой. Пытаться отказать им в доступе к su
binary, как отметили другие, бесполезен, поскольку у них уже есть привилегия root через sudo и членство в группе.
Вы должны проанализировать рабочий процесс пользователей в группе sudo, чтобы определить, какие команды они необходимость для запуска от имени root и использовать sudo, чтобы предоставить им привилегированный доступ только к этим командам. При необходимости напишите сценарии и предоставьте группе sudo доступ для запуска сценария (убедитесь, что у них нет доступа на запись к нему), а не отдельным командам внутри него.
Например, вы можете определить, что ваши пользователи должны иметь возможность использовать kill
и все команды в каталоге /usr/local/sudocmds
(где живут ваши локальные скрипты), чтобы вы дали им доступ к sudo вот так
%sudo ALL=NOPASSWD: /usr/bin/kill, /usr/local/sudocmds
Вы также можете использовать псевдонимы команд
Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump
%sudo ALL=NOPASSWD: PRINTING, DUMPS, /usr/bin/kill, /usr/local/sudocmds
Что добавляет команды в PRINTING
и DUMPS
Cmnd_Alias в список команд, которые может выполнять группа sudo.
Взгляните на sudoers справочную страницу для получения дополнительной информации и примеров.
Чтобы правильно этого избежать, вы должны использовать другой подход.
Если вы запретите sudo su
Я все еще могу бежать sudo -u root /bin/sh
если вы запретите это, я напишу небольшой сценарий оболочки и выполню это ...
Единственный способ решить эту проблему - разрешить только необходимые команды.