В моем файле sudoers есть следующее:

User_Alias DU=%domain\ users
DU ALL = NOPASSWD:NOEXEC: /sbin/mount.cifs \\\\* /home/* -o sec=krb5\,* ,/bin/umount -t cifs /home/*

Это работает, пользователи, которые находятся в нужной группе и имеют билет Kerberos, могут смонтировать свои ресурсы где-нибудь у себя дома.

Но сейчас любой пользователь может смонтировать общие папки cifs в любой каталог в /home (из-за /home/*) и, таким образом, раздражать своих коллег.

Было бы намного лучше, если бы я мог изменить это, например, на /home/$username , где $username - это имя вызывающего пользователя.

Есть ли способ сделать это в файле sudoers?

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

1 ответ1

0

Я искал тот же ответ, но ничего полезного не нашел. AFAIK это невозможно, потому что файл sudoers представляет собой простой текст и не интерпретируется никаким образом. Таким образом, $ -expansion для переменных является функцией оболочки, но для программы sudo это просто \$ username. Специального синтаксиса для объявления переменной в файле sudoers не существует, по крайней мере, я до сих пор не нашел его.

Обходной путь - поместить вашу команду монтирования в файл сценария и поместить этот сценарий в файл sudoers. Удалите права на запись для других пользователей (chmod ow scriptfile), и все будет хорошо.

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