我已经在 CentOS 上使用/etc/auto.mymount
. 像这样的东西:
mymount -fstype=cifs,rw,noperm,credentials=/etc/auto.creds.svc_account ://winserver.domain.local/SharedFolder
Run Code Online (Sandbox Code Playgroud)
这一直在工作,并且仍然适用于某些坐骑。但是,用于连接到 Windows 服务器的帐户的密码已更改,并且现在包含各种特殊字符。我的凭证文件/etc/auto.creds.svc_account
看起来有点像这样:
username=svc_account
password=AbCd@a;abc{`B"[C\\~/fg9w(G':4##abC}d3.H}v,2]f+c
Run Code Online (Sandbox Code Playgroud)
显然我已经更改了上面的密码,但它确实包含真实密码中的各种非字母数字字符。
查看/var/log/messages,我看到以下内容:
Status code returned 0xc000006d NT_STATUS_LOGON_FAILURE
CIFS VFS: Send error in SessSetup = -13
CIFS VFS: cifs_mount failed w/return code = -13
Run Code Online (Sandbox Code Playgroud)
鉴于唯一改变的是密码,我猜测那里有需要以某种方式转义的特殊字符。
现在我知道,如果我将该密码放入命令行,那么命令将由于各种特殊字符而失败,可以通过在每个特殊字符前加上反斜杠来处理。例如:
password=AbCd@a\;abc{\`B\"[C\\\\~/fg9w\(G\':4##abC}d3.H}v,2]f+c
Run Code Online (Sandbox Code Playgroud)
但这不起作用,所以很明显我错过了一些东西。有人能够解释需要在凭据文件中转义哪些字符以及转义它们的正确方法吗?