我正在尝试安装受密码保护的 samba 共享。
当我在 nautilus 中通过 smb://server/share 访问共享时,没有密码/用户提示,似乎我以访客身份登录,我可以浏览文件夹,但无法访问我的文件(这些文件位于以下子文件夹中)看起来是空的)。
当我使用 nautilus GUI“连接到服务器”提示时,我得到“请验证您的用户详细信息”,尽管我绝对确定它们是正确的。
请注意,我可以通过以下方式毫无问题地访问共享和我的文件
smbclient -U user //server/share
另外,使用 MacOS 机器我也可以毫无问题地安装共享。
所以我尝试通过命令行挂载共享:
sudo mount -t cifs -o user=user //server/share /mnt/sth
产生
mount error(22): Invalid argument
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
这似乎是一个与内核相关的错误:https://bugzilla.redhat.com/show_bug.cgi?id=832741。
所以我的问题是:解决这个问题最简单的方法是什么?有人经历过类似的事情吗?内核更新是否解决了这个问题(在 redheat 论坛上,它似乎对某些人有效,但对其他人无效)。难道我做错了什么?
我使用linux mint xcfe 13,我的内核版本是3.4.0。
编辑:2013 年 2 月 20 日,我仍然没有解决方案,感谢任何帮助。
答案1
尝试添加sec=ntlm
到安装选项标志中,例如sudo mount -t cifs -o user=user,sec=ntlm //server/share /mnt/sth
。为我解决了同样的问题。
答案2
尝试vers
在挂载上添加选项。例如:
sudo mount -t cifs -o user=user,vers=1.0 //server/share /mnt/sth
这对我使用 4.13.4-1-ARCH 有用
答案3
对于你的问题,有一件事让我感到困惑。 Mint 基于 Ubuntu,而 Ubuntu 又基于 Debian。那么你为什么要关注 Redhat bug呢?
如果您想以访客身份连接,请mount
通过传递选项guest
ie来告知mount -o guest ...
。否则它会假设需要凭据。
如果您绝对必须在命令行上提供密码,请记住转义任何特殊字符,例如\
或$
,否则您最终会得到与服务器期望的密码不同的密码。
但是,我不建议使用其他答案中提出的方法,原因只有一个:fstab
通常是世界可读的。因此你会泄露你的凭据。更好的方法是使用下面的方法:
- 添加
fstab
一行包含credentials=/etc/share-credentials.txt
选项部分。例如//server/share /mnt/point cifs iocharset=utf8,rw,credentials=/etc/share-credentials.txt,file_mode=0660,dir_mode=0770 0 0
- 为凭据创建一个文件,如下所示:
touch /etc/share-credentials.txt && chmod u=rw,g=r,o= /etc/share-credentials.txt
然后对其进行编辑。 - 文件需要
password
和username
共享。
凭据文件的格式如下所示:
username=johndoe
password=sekrit
domain=foobar
该domain
值是可选的。
答案4
在我的例子中,树莓派仍然出现了非常老的问题。
使用 UNC 将默认为 IPv6 并且会失败,因此使用 IPv4 地址而不是 UNC 解决了该问题。
任何一个
mount.cifs //IPv4_ADDRESS/服务名称 mount_directory
或者
mount.cifs -o ip=IPv4_ADDRESS //NETBIOS_name/service_name mount_directory
在 /etc/samba/ 中创建 lmhosts (man lmhosts) 文件应该可以解决这个问题,但在我的情况下什么也没做。
另外:请确保您输入 ntlm 而不是 nltm .......