如何通过脚本设置密码变量以挂载CIF共享

时间:2018-09-30 18:26:06

标签: bash nas cifs

我有以下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变量? / p>

到目前为止,我甚至可以阅读一些东西而无需使用来回显屏幕

read -s PASSWD

但是我不确定如何将其合并到脚本中。

注1:mount参数-o password=password对我来说是不行的。我不希望在文本文件中使用硬编码的密码。

注2:同样,我也不想使用mount参数credentials=filename

1 个答案:

答案 0 :(得分:0)

最有可能在子进程中看不到该变量。您可以使用PASSWD

导出export
read -s PASSWD
export PASSWD

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

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