Ограничить команды sudo -i или sudo -s из файла sudoers

575
alisacworld

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

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

0
А как насчет `sudo / bin / bash` или` sudo / bin / zsh` или `sudo / some / renamed / bash`? Если вы хотите ограничить пользователей, вы должны * разрешить * белый список разрешенных команд. Daniel B 7 лет назад 1
Вы говорите, что я должен белый список вместо того, чтобы иметь черный список? alisacworld 7 лет назад 0

2 ответа на вопрос

-1
niglesias

I know this is not a good answer, as I can't directly reply to your question, but in man sudoers there's a section called Preventing Shell Escapes which I think may be of interest to you:

Once sudo executes a program, that program is free to do whatever it pleases, including run other programs. This can be a security issue since it is not uncommon for a program to allow shell escapes, which lets a user bypass sudo's access control and logging. Common programs that permit shell escapes include shells (obviously), editors, paginators, mail and terminal programs.

There are two basic approaches to this problem:

 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
Matt P

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

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

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

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

Похожие вопросы