我无法在XenServer(5.6 FP1)上安装共享。 从命令行我尝试:
mount.cifs //server/share /mnt/share -o credentials=credfile
credfile的内容是:
username=Administrator password=What@zR\!p3s
当我运行上面的安装命令,我得到“访问被拒绝”。 但是,如果我运行以下命令它的工作原理:
mount.cifs //server/share /mnt/share -o username=Administrator,password=What@zR\!p3s
请注意“\”是为了逃避砰的一声,我已经在证书文件中试过这个和没有它。 有什么build议么?
我有同样的问题,因为我的密码包含逗号符号(即“通过,字”):
$ sudo mount -t cifs -o domain=mydomain,username=myuser,password=PASS,WORD //server/share localfolder mount error(22): Invalid argument Refer to the mount.cifs(8) manual page (eg man mount.cifs)
首先,您应该尝试启用详细模式(–verbose选项):
$ sudo mount -t cifs -o domain=mydomain,username=myuser,password=PASS,WORD //server/share localfolder --verbose mount.cifs kernel mount options: ip=172.30.91.137,unc=\\server\share,WORD,user=myuser,,domain=mydomain,pass=********
在这里我看到我的问题。 逗号打破所有的东西。 解决scheme是使用凭据文件。 什么是写在人mount.cifs:
credentials = filename指定一个文件,其中包含用户名和/或密码以及可选的工作组名称。 该文件的格式是:
username=value password=value domain=value
这比在共享文件中使用明文forms的密码更好,比如/ etc / fstab。 请确保正确保护任何凭据文件。
以任何你喜欢的方式创build这个文件:
$ cat > cifs.credo username=myuser password=PASS,WORD domain=mydomain
并使用(–verbose可以省略)
$ sudo mount -t cifs -o credentials=path/to/cifs.credo //server/share localfolder --verbose mount.cifs kernel mount options: ip=172.30.91.137,unc=\\server\share,user=myuser,,domain=mydomain,pass=********
没有密码的问题。
旧版本的mount.cifs的一个常见问题是文件末尾的换行符被保存为密码的一部分。
所以你不需要转义,而应该试着重写这个文件而不用换行符。
要在vim中这样做,请使用:set noeol binary
在保存前:set noeol binary
。 您可以使用xxd credfile
检查是否没有尾随换行符,并确认它没有以0a
结束。
如果这不起作用,我将不得不检查确切的代码库。 cifs-utils
使用哪个包(发行版,版本和发行版)或源(存档名称)?
另一个要尝试的是键入特殊字符两次…我有一个$的密码,并不得不用$$replace它。 但是,我目前有胡萝卜问题:'^'
对于mount.cifs版本4.5,以下工作适用于我:凭证按域,用户名,密码,密码后不换行,不转义特殊字符或引号。
尝试引用它。
也就是说,
password="What@zR!p3s"
我希望这不是你的密码。 如果是这样,你现在需要改变它。
你有没有尝试删除斜杠? 彻底? 我不相信凭证文件应该需要逃脱。 它需要在shell上转义,因为shell正在解释字符,而不是mount.cifs命令。