use*_*001 5 authentication mount fstab
我遇到了一个问题,即在没有 fstab 条目的情况下挂载远程 CIFS 服务器有效,但通过 fstab 挂载不行。
以下命令有效:
$ sudo mount -t cifs //w.x.y.z/Home$ /mnt/dir -o domain=A,username=B,password='C',sec=ntlmssp,file_mode=0700,dir_mode=0700
Run Code Online (Sandbox Code Playgroud)
但是,如果我改为将以下行添加到 /etc/fstab 并尝试通过mount命令(例如mount -a或mount /mnt/dir)进行挂载,则会收到下面列出的错误:
$ tail -n 1 /etc/fstab
//w.x.y.z/Home$ /mnt/dir cifs domain=A,username=B,password='C',sec=ntlmssp,file_mode=0700,dir_mode=0700
Run Code Online (Sandbox Code Playgroud)
错误:
$ sudo mount /mnt/csif
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
Run Code Online (Sandbox Code Playgroud)
将 dump 和 fsck pass order 显式设置为 0 没有帮助。两个命令似乎都在做同样的事情
避免将密码直接放入/etc/fstab(通常是世界可读的)是一种很好的做法。相反,将它们放入一个文件中,并像这样引用该文件:
//w.x.y.z/Home$ /mnt/dir cifs credentials=/home/username/cifs.creds,sec=ntlmssp,file_mode=0700,dir_mode=0700
Run Code Online (Sandbox Code Playgroud)
/home/username/cifs.creds由合适的用户(root 或与拥有 SMB 共享的 SMB 用户对应的用户)拥有,并且chmod og-rwx. 它包含格式的凭据
domain=A
username=B
password=C
Run Code Online (Sandbox Code Playgroud)
A,B和C上面必须是文字-没有壳状报价或反斜杠的解析。
当您键入 mount 命令时,该部分password='C'首先由 shell 处理,并password=C在它到达 mount 命令之前变为。这不是使用 fstab 条目完成的,因此您必须删除单引号。如果您的密码包含特殊字符,您可以用它们的八进制代码替换它们,尤其\040是空格。
| 归档时间: |
|
| 查看次数: |
27028 次 |
| 最近记录: |