Смонтируйте общий ресурс samba при входе в систему, используя скрипт запуска (не fstab)

Предпосылки

Я пытаюсь автоматически выполнить команду, которая монтирует защищенный паролем общий ресурс Samba, когда мой пользователь входит в систему. Суть в том, что я делюсь своим ноутбуком с другим пользователем, и я не хочу, чтобы общий ресурс Samba был подключен при входе в систему. Я хочу, чтобы он был подключен только при входе в систему . Это исключает редактирование моего файла fstab, потому что я хочу, чтобы это было специфичным для пользователя.

Предыдущие исследования

Я искал и просматривал множество вопросов и ответов, связанных с монтированием общих ресурсов Samba, в том числе « Монтирование общих ресурсов Samba при загрузке / входе в систему и использовании скрипта "и" Правильная запись в fstab для монтирования общего ресурса samba при загрузке , "но большинство ответов связано с редактированием fstab, который отлично работает для большинства людей, но это не то, что я ищу здесь.

Что я сделал до сих пор

Я могу вручную смонтировать общий ресурс Samba из командной строки, выполнив следующее:

sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

Проблема Statement

Предыдущая команда прекрасно работает, когда я выполняю ее из командной строки - она ​​запрашивает у меня пароль для получения разрешения sudo, я ввожу его, и команда запускается. Проблема заключается в том, что когда я добавляю ту же самую команду в поле «Команда» в «Параметры запуска приложений»> «Редактировать программу запуска», сохраняю свои изменения, перезагружаюсь и снова регистрируюсь, общий ресурс Samba не монтируется, как я ожидал. Я подозреваю, что это потому, что мне нужно разрешение root для запуска от имени sudo, и со сценарием в Настройках автозагрузки я не могу его ввести, поэтому сценарий просто завершается неудачей.

Как я могу обойти это?

3
задан 13 April 2017 в 15:24

2 ответа

Хорошо, мне удалось решить это самостоятельно (с помощью других). Основной проблемой, как я и подозревал, был тот факт, что я пытался запустить команду, требующую привилегий суперпользователя без указания пароля. Я решил эту проблему, следуя инструкциям в теме « Как мне выполнить команду в скрипте без запроса пароля ». Короче говоря, я создал сценарий оболочки с именем «script-mount-samba-share.sh», который не содержит ничего, кроме одной строки с командой mount, которую я хочу запустить:

mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,credentials=/home/scott/.smbcredentials,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

Затем я изменил владельца файла на root: root и изменил его права доступа на 700. Затем я настроил sudo, чтобы разрешить запуск этого сценария без ввода пароля, а затем я изменил поле «Команда» в Предпочтения запуска приложений> Отредактируйте программу запуска в "sudo /home/scott/script-mount-samba-share.sh" (без кавычек) и вуаля. В следующий раз, когда я перезагрузил компьютер и вошел в систему с моим пользователем, общий ресурс Samba смонтирован без моего поднятия пальца. Я также проверил, что при перезагрузке и входе в систему с другим пользователем общий ресурс Samba не монтируется, чего я и хочу.

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

0
ответ дан 13 April 2017 в 15:24

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

sudo mount -t cifs //centaroo.local/Me /media/Me -o uid=scott,gid=scott,user=,password=,iocharset=utf8,sec=ntlm,file_mode=0600,dir_mode=0700

конечно со всеми изменениями в / etc / sudoers

0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

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