如何通过脚本设置密码变量以安装 cifs 共享

How to set a password variable via a script for mounting a cifs share

我有以下 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

很可能该变量未被子进程看到。您可以使用 export

导出 PASSWD
read -s PASSWD
export PASSWD

注意:这使得它对所有子进程可用。出于您的目的,您需要的只是将变量仅导出到相关的子进程。

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