我有一个安装驱动器,通常使用它来安装
sudo cifs -o "username=myshareddrive_username,uid=$(id -u),gid=$(id -g)" //server-address/folder /mount/path/on/ubuntu
现在,我有一些 Linux 机器可供一些用户访问。每台机器上只有一个用户帐户供所有用户登录机器。我想知道如何让用户使用他们的共享驱动器网络凭据挂载共享驱动器,而不必打开终端并运行命令,因为其中一些用户在技术方面不太擅长?注意每个用户在共享驱动器上都有他自己的唯一网络凭据(用户名和密码)。
答案1
尝试这个:
sudo cifs -o "username=$(>&2 echo -n "Enter remote username: "; read u; echo $u),uid=$(id -u),gid=$(id -g)" //server-address/folder /mount/path/on/ubuntu
解释:
$(>&2 echo -n "Enter remote username: "; read u; echo $u)
这将打开一个子 shell,并将其输出 ( stdout
) 添加到您的命令中。它基本上等同于$(id -u)
,只是您使用它read
来请求用户输入。嵌套的子 shell 将始终首先执行。
该行Enter remote username:
需要发送到stderr
( >&2
),因为它不是添加到命令的输出的一部分。
答案2
您是否尝试过在 /etc/fstab 中使用用户选项定义共享,但不使用用户名和 uid?在这种情况下,任何用户都可以安装驱动器,并且它会要求提供凭据。
使用 GUI 可能会有一些差异。我在 Ubuntu Mate 中尝试过。如果 /etc/fstab 中未定义共享,我可以使用文件管理器导航到服务器,它会向我显示共享,当我单击共享时,它会要求输入用户名和密码