Благодаря новым "исправлениям безопасности" в mount или mount.cifs (я не уверен, что) нормальные пользователи больше не могут монтировать что-либо, даже если им явно разрешено использование флагов user
, users
или owner
. По этой причине я изменил конфигурацию sudo, чтобы мой пользователь мог запускать определенные команды монтирования для общих сетевых ресурсов без пароля. Затем я создал скрипт в $HOME/bin
под названием mount
который содержит:
sudo /usr/bin/mount "$*"
Так что теперь я могу использовать монтирование, как раньше, без необходимости вводить пароль. Проблема в том, что я не могу подключить мои сетевые ресурсы с помощью Nautilus, что гораздо удобнее. Я использую флаг noauto
в fstab, потому что в противном случае монтирование произойдет до того, как я установлю соединение с беспроводной сетью, и сразу же потерпит неудачу.
Общие ресурсы отображаются в Nautilus как серые папки, и когда я щелкаю по папке, Nautilus пытается смонтировать общий ресурс с помощью следующей команды (я думаю):
/usr/bin/mount "/media/My Network Share"
Который терпит неудачу, потому что это не использует sudo
. Я пытался сделать:
PATH="$HOME/bin:$PATH" nautilus
Но ошибка все еще происходит, предположительно, потому что Наутилус использует абсолютный путь для mount
.
Итак, мой вопрос: есть ли способ обмануть Наутилуса с помощью sudo /usr/bin/mount
или даже просто mount
без абсолютного пути?
Мое последнее средство в основном - переместить двоичный файл mount
другое место и заменить его скриптом bash. Сценарий bash проверит, какой пользователь его выполняет, и, если это мой пользователь, он добавит sudo
перед командой. В противном случае он будет просто вызывать фактический исполняемый файл монтирования нормально. Я надеюсь избежать таких радикальных мер, так как я могу легко разрушить свою систему за пределами моей способности к ремонту.