Можно ли как-то запретить пользователям создавать новые экземпляры оболочки через файл sudoers? также отключить их, чтобы установить какие-либо переменные среды?

Я хотел бы написать строку в файле sudoers что-то вроде:

someuser ALL=(ALL) NOPASSWD: ALL, NOTSETENVVARS: ALL, NONEWSHELLINSTANCES: ALL

где: NOTSETENVVARS означает, что инструкция не устанавливать новые env vars NONEWSHELLINSTANCES означает, что нет новых экземпляров оболочки

заранее спасибо

2 ответа2

1

Я бы не стал совмещать это со ALL . Если вы пытаетесь ограничить пользователя, сначала внесите его в черный список, а затем осторожно добавьте в белый список.

Ограничьте экранирование оболочки с помощью NOEXEC: подробности смотрите на странице руководства: https://www.sudo.ws/man/1.8.16/sudoers.man.html#Preventing_shell_escapes

Ограничить переменные среды (не полностью отключить, насколько мне известно) с творческим использованием env_reset и secure_path .

Пример:

Defaults     env_reset
Defaults     secure_path
someuser ALL=(root) NOPASSWD: SOMESPECIFICCOMMANDS
someuser ALL=(root) NOEXEC: /usr/bin/vim

Кроме того, купите книгу Майкла У. Лукаса Sudo Mastery. Это просто супер! (У него есть несколько лучших примеров, но я подумал, что лучше не заниматься их плагиатом.)

0

Нет.

Подобные элементы управления не существуют, потому что они могут быть тривиально обойдены пользователем, устанавливающим / выполняющим свою собственную программу оболочки без ограничений или с исправленными ограничениями.

Нет способа узнать, является ли программа оболочкой или нет.

Более того, файл sudoers контролирует только утилиту sudo , а не все, что пользователь выполняет перед запуском sudo или после его повышения.

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