我知道默认命令如下所示:
sudo mount -t cifs -o username=YOUR_USERNAME,password=YOUR_PASSWORD,uid=YOUR_UBUNTU_USERNAME //networkNameOfRemoteComputer/path/to/my/folder /path/to/mounting/dir
但是我想挂载 samba 共享文件夹而不硬编码我的密码。如果密码可见,我认为这会有很大的安全风险。有人有主意吗?
(在此问题的先前版本中,我还要求在没有 sudo 权限的情况下进行挂载,但这似乎是不可能的:()
答案1
使用该mount.cifs
命令,因为它允许指定凭证文件,或者在未给出密码时提示输入密码。
安装
首先,通过发出以下命令检查您是否安装了所需的软件包:
sudo apt-get install cifs-utils
方法 1 - 使用凭证文件
根据手册http://manpages.ubuntu.com/manpages/raring/man8/mount.cifs.8.html:
OPTIONS
[...]
credentials=filename 指定一个包含用户名和/或密码以及可选的工作组名称的文件。该文件的格式为:用户名=值
密码=值
域=值
用法:
mount.cifs //<hostname_or_ip>/<cifs_share> <local_mountpoint> -o user=<user_to_connect_as>,rw,credentials=<path_to_the_credentials_file>
例子:
sudo mount.cifs //domain.com/share /mnt/domain_com -o user=admin,rw,credentials=/root/.credentials
值得注意的是,“name_of_the_user_to_connnect_as”还可以包含域或工作组:
user=workgroup/user
user=domain/user
(根据您的环境,您将需要更多或更少的选项)
就安全性而言,将凭证文件存储在 /root 目录中就足够了,但如果您想将其存储在其他地方,只需
- 使用以下命令将 root 用户设置为其所有者
sudo chown root <file>
- 使用“sudo chmod 600”设置仅限所有者的权限
方法 2 - 密码提示
如果如上所述,您根本不想让密码被看到,那么就不要在命令中提供“密码”选项mount.cifs
。
来自手册页http://manpages.ubuntu.com/manpages/hardy/man8/mount.cifs.8.html
密码=arg
specifies the CIFS password. If this option is not given then the environment variable PASSWD is used. If the password is not specified directly or indirectly via an argument to mount mount.cifs will prompt for a password, unless the guest option is specified. Note that a password which contains the delimiter character (i.e. a comma ’,’) will fail to be parsed correctly on the command line. However, the same password defined in the PASSWD environment variable or via a credentials file (see below) or entered at the password prompt will be read correctly.
因此,以下命令应提示输入密码:
mount.cifs //<hostname_or_ip>/<cifs_share> <local_mountpoint> -o user=<user_to_connect_as>,rw
经过测试并按预期运行: