![如何在 /etc/fstab 中使用 CIFS 的凭证文件?](https://linux22.com/image/1164170/%E5%A6%82%E4%BD%95%E5%9C%A8%20%2Fetc%2Ffstab%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20CIFS%20%E7%9A%84%E5%87%AD%E8%AF%81%E6%96%87%E4%BB%B6%EF%BC%9F.png)
我在 Server 18.04 上使用 fstab 时遇到问题。我尝试挂载多个 Windows Server 网络共享。如果我将用户名和密码放入 fstab 的每一行并执行sudo mount -a
,它就可以正常工作。但是,当我尝试使用“凭据”文件时,一切都变得一团糟。
所以这:
//server/share /mount/point cifs ro,auto,user=user,password=password 0 0
…工作正常。
但是,如果我尝试这样做:
//server/share /mount/point cifs ro,auto,credentials=/etc/.smbcredentials 0 0
….smbcredentials
包含以下内容:
user=username
password=password
domain=domain
…这不起作用。sudo mount -a -v
输出以下内容:
/ : ignored
/boot/efi : already mounted
none : ignored
domain=mydomain
,prefixpath=Projects/XYZ,pass=********.168.1.10,unc=\server\share,user=username
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
168.1.10
是我想要挂载的共享所在的服务器的部分 IP 地址。看来密码被连接到了服务器的 IP 上。
那么,我做错了什么?任何帮助都将不胜感激。
答案1
我的工作凭证文件位于我的〜文件夹中,如下所示
username=[username]
password=[password]
它的权限是-rw-------
并且它归我的用户所有。
相应的 fstab 行是
//[URL]/[sharename] /media/[mountpoint] cifs vers=3.0,credentials=/home/[username]/.sharelogin,iocharset=utf8,file_mode=0777,dir_mode=0777,uid=[username],gid=[username],nofail 0 0
我不使用“域”,但这并不意味着您不需要它。
答案2
遇到同样的问题,使用以下命令检查错误:
tail -f /var/log/kern.log
---> 内核:[7917.935203] CIFS VFS:未指定用户名
$ sudo apt install cifs-utils
帮我修好了..
答案3
我在使用凭证文件在 Ubuntu 18.04 上安装 QNAP NAS Samba 共享时遇到了麻烦。经过几个月的反复尝试,以下方法终于奏效了。
- 找到您的 Ubuntu 用户名,并在您的 QNAP nas 上创建一个同名用户,使用您选择的密码,并对您的共享文件夹拥有适当的 R/W 权限。所以我的 Ubuntu 用户名是,
username
所以我在 QNAP 上创建了一个名为的用户username
,并使用 LastPass 生成了一个随机密码。 - 创建一个文件来保存 Samba 登录凭据:
nano ~/.samba_credentials
- 添加以下行:
username=your_shared_linx_and_qnap_username
password=the_qnap_user_password_you_chose
domain=WORKGROUP
下面是我的样子:
username=username
password=last_pass_password
domain=WORKGROUP
域选项可能是可选的,但 Windows 10 默认工作组是可选的,WORKGROUP
因此只要您不更改它,它就应该可以工作。如果您确实更改了它,您可能知道什么是工作组以及您将其更改为什么值。
- 创建您的共享将本地安装的文件夹。
mkdir /media/username/storage
- 然后编辑
/etc/fstab
文件以通过 CIFS 自动挂载 QNAP Samba 共享: //nas1da09d.local/files /media/username/storage cifs credentials=/home/username/.samba_credentials,uid=username,noperm,rw 0 0
答案4
使用相同凭据挂载多个 smb 驱动器时,您必须为每个挂载创建一个凭据文件。换句话说,您不能将一个凭据文件用于多个挂载。
为每个安装创建一个新文件
sudo nano /etc/.smbcredentials1
sudo nano /etc/.smbcredentials2
sudo nano /etc/.smbcredentials3
将您的凭据添加到每个文件
username=username
password=password
domain=WORKGROUP
然后对文件进行 chmod 以进行保护
sudo chmod 0600 .smbcredentials1 .smbcredentials2 .smbcredentials3
然后将每个文件用作每个挂载的凭证 sudo nano /etc/fstab
//server/share /mount/point cifs ro,auto,credentials=/etc/.smbcredentials1 0 0
//server/share /mount/point cifs ro,auto,credentials=/etc/.smbcredentials2 0 0
//server/share /mount/point cifs ro,auto,credentials=/etc/.smbcredentials3 0 0
然后挂载
sudo mount -a -v
这可能会解决你的问题。