Как указать пароль при монтировании общего ресурса smb с gio?

Я работаю над программным обеспечением, которое должно автоматически смонтировать общий ресурс smb/cifs.

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

Я уже пытался позвонить

gio mount smb://<user>:<password>@<server>/<share>/

но он просто игнорирует пароль и запрашивает его в терминале. (Плохая) документация не показывает способ указать пароль. Является ли ожидание запроса пароля и "эмуляция" ввода единственным способом его установки?

Использование mount -t cifs не вариант, так как для него требуется root / sudo, а программное обеспечение, над которым я работаю, не требует повышенных привилегий.

1 ответ

Создайте файл в вашем домашнем каталоге. Например, в /home/morbius/.servercreds

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

<username>
<workgroup>
<password>

Тогда ваша команда gio будет выглядеть так:

gio mount smb://<server>/<share> < /home/morbius/.servercreds

Чтобы избежать создания нового файла, вы можете направить ввод в gio.

echo -e "USERNAME\nWORKGROUP\nPASSWORD\n" | gio mount smb://<server>/<share>

echo -e говорит echo чтобы разрешить специальные символы, и \n после каждого поля похоже на нажатие клавиши ввода.

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