Как установить переменную пароля через скрипт для монтирования общего ресурса cifs - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть следующий скрипт bash для монтирования пары общих каталогов на диске NAS:

sudo mount -t cifs //server/dir1 /mnt/nas/dir1 -o username=raf
sudo mount -t cifs //server/dir2 /mnt/nas/dir2 -o username=raf
sudo mount -t cifs //server/dir3 /mnt/nas/dir3 -o username=raf

Каждая из этих команд монтирования запросит пароль.Я хочу избежать необходимости вводить один и тот же пароль несколько раз.

Из руководства mount.cifs написано, что он может использовать переменную PASSWD для пароля.

Вот где мой bashнавыки меня подводят: как я могу обновить скрипт, чтобы задать и установить переменную PASSWD, вызвать команды mount и, наконец, сбросить переменную PASSWD?

До сих пор я мог идти так далеко, какчитать что-то, не возвращаясь к экрану, используя

read -s PASSWD

Но я не уверен, как включить это в скрипт.

Примечание 1. Аргумент mount -o password=password являетсяне ходи за мной.Я не хочу жестко закодированные пароли в текстовом файле.

Примечание 2: аналогично, я бы предпочел не использовать аргумент mount credentials=filename

1 Ответ

0 голосов
/ 30 сентября 2018

Скорее всего, переменная не видна дочернему процессу.Вы можете экспортировать PASSWD, используя export

read -s PASSWD
export PASSWD

Примечание. Это делает его доступным для всех дочерних процессов.Для ваших целей вам просто нужно экспортировать переменную только в соответствующий дочерний процесс.

sudo PASSWD="$PASSWD" mount -t cifs //server/dir3 /mnt/nas/dir3 -o username=raf
...