使用 cifs-utils 安装 Windows 共享时权限被拒绝

使用 cifs-utils 安装 Windows 共享时权限被拒绝

我想从我的 vbox ubuntu 机器访问 Windows 共享(我已正确设置所有代理)。

问题是,当我尝试通过以下方式挂载时,出现权限被拒绝错误,且没有任何额外原因:

 mount -t cifs "//server/share" /windowsshare/myshare -o username=<activediruname>,password=<pass>,domain=<ADdomain>,ro

我收到此错误:

mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

我的$密码里有一个字符,但我不认为这是问题,因为我也尝试设置PASSWD环境变量并删除password=选项,但仍然出现权限被拒绝错误。

关于如何进一步调试信息的任何想法、线索或信息都将不胜感激。

答案1

一般来说,如果你在命令行上使用 unescape 或非单引号美元符号,则需要参数扩展,即用参数值代替参数名。假设您的密码是foo$bar。我使用echo显示实际执行的命令行:

$ echo mount -t cifs ... -o username=user1,password=foo$bar,domain=WIN,ro
mount -t cifs ../../ -o username=user1,password=foo,domain=WIN,ro
$ PASSWD=foo$bar
$ echo $PASSWD
foo

您可以看到该$bar部分被替换为空,因为在这个例子中没有bar设置参数。为了防止这种情况,使用单引号围绕$或整个学期:

$ echo mount -t cifs ... -o 'username=user1,password=foo$bar,domain=WIN,ro'
mount -t cifs ../../ -o username=user1,password=foo$bar,domain=WIN,ro
$ PASSWD='foo$bar'
$ echo $PASSWD
foo$bar

因此,错误的原因mount error(13): Permission denied是服务器拒绝您的密码,因为 shell 替换了其中的某些部分。

相关内容