Как указать пароль при монтировании общего ресурса 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 после каждого поля похоже на нажатие клавиши ввода.