Есть ли способ ограничить следующие команды sudo -i или sudo -s в файле sudoers ?

Когда я добавлю !/usr/bin/sudo -i или !/usr/bin/sudo -s , sudo прежнему позволяет пользователям запускать команду.

2 ответа2

-1

Я знаю, что это не очень хороший ответ, так как я не могу напрямую ответить на ваш вопрос, но в man sudoers есть раздел под названием « Предотвращение побега оболочки», который, я думаю, может вас заинтересовать:

Когда sudo выполняет программу, она может делать все, что пожелает, в том числе запускать другие программы. Это может быть проблемой безопасности, поскольку программа нередко разрешает экранирование оболочки, что позволяет пользователю обходить контроль доступа и ведение журнала sudo. К распространенным программам, разрешающим экранирование оболочки, относятся оболочки (очевидно), редакторы, paginators, почта и терминальные программы.

Есть два основных подхода к этой проблеме:

   restrict  Avoid giving users access to commands that allow the user to
             run arbitrary commands.  Many editors have a restricted mode
             where shell escapes are disabled, though sudoedit is a better
             solution to running editors via sudo.  Due to the large
             number of programs that offer shell escapes, restricting
             users to the set of programs that do not is often unworkable.

   noexec    Many systems that support shared libraries have the ability
             to override default library functions by pointing an
             environment variable (usually LD_PRELOAD) to an alternate
             shared library.  On such systems, sudo's noexec functionality
             can be used to prevent a program run by sudo from executing
             any other programs.  Note, however, that this applies only to
             native dynamically-linked executables.  Statically-linked
             executables and foreign executables running under binary
             emulation are not affected.
-1

Черный список в sudoers - почти наверняка пустая трата времени. Есть слишком много обходных путей.

Для реализации каких-либо ограничений единственный практический подход - белый список. Даже в этом случае будьте осторожны с разрешениями для любых команд, включенных в белый список (для этого потребуется регулярный аудит), любых команд, которые могут разрешать экранирование оболочки, и любых команд, которые могут записывать новые / существующие файлы.

Так, например, это плохие идеи:

  • разрешение доступа sudo для выполнения скрипта, принадлежащего пользователю
  • предоставляя sudo доступ к "меньше"
  • предоставление sudo доступа к "cp"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .