Подстановочные знаки в правиле sudoers

Aquí hay un selector que estoy usando para dispositivos USB -conectados:

DEVPATH=="/devices/*.usb/usb1/1-1/1-1.[1-4]/dvb/dvb[0-9]*.*[0-8]"

3
11.08.2019, 13:38
2 ответа

Синтаксис sudoers не дает выхода, и я мог бы предложить написать сценарий-оболочку (, скажем, игнорировать все, кроме первого аргумента, и канонизировать его, используяrealpath)и друзей ), но это было бы все равно бесполезно:

sudo cat /var/log/messages/../../../etc/shadow

Не зная вашего фактического варианта использования, я могу только прокомментировать пример со страницы руководства, и для этого я бы сказал, что фактическое решение — вообще не использовать sudo, а использовать ACL. Используйте ACL, чтобы предоставить пользователю доступ ко всему в каталоге, а файловая система позаботится об ограничении их доступа.

1
27.01.2020, 21:21

В вашем случае, я думаю, самое близкое, что вы можете получить, это что-то вроде:

%operator ALL = /bin/cat /var/log/messages*, !/bin/cat /var/log/messages*\ *

, который сначала разрешает /bin/cat только если у него есть какая-либо "строка аргумента", начинающаяся с /var/log/messages, а затем запрещает ту же самую "строку аргумента", если в любой точке есть пробел.

Это практически запрещает множественные аргументы для cat, но, будучи основанным на "целой строке", не позволяет sudo cat /var/log/messages /var/log/messages.1настолько, насколько не позволяет sudo cat /var/log/messages /etc/shadow. Кроме того, это не позволяет допустимому имени файла иметь пробел, например. гипотетический файл /var/log/messages-with-' '-space.

2
27.01.2020, 21:21

Теги

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