Answers:
在Windows上, 您 不能 将凭据放在UNC路径中。您必须使用它们 net use
, runas /netonly
,或者在Windows上询问时。 (如果您具备某些编程技能,则可以使用将“SMB密码”存储为“域凭据” CredWrite()
,这相当于检查Windows中的“记住密码”框。)
在Linux上, 这取决于程序。
GNOME的Gvfs接受了 user@host
语法,但似乎完全忽略了密码。 (但是,您可以事先将它存储在GNOME Keyring中。)
smbclient
使用与Windows相同的UNC语法;但它有一个 --authentication-file
可以从中读取凭据的选项。
以上两个程序都在使用 libsmbclient ,并且可以使用Kerberos身份验证而不是密码:运行 kinit user@YOUR.DOMAIN
并使用 smbclient -k //host/share
。这比密码验证更安全。
请注意,不建议将密码放入URI中,您不应该依赖它来支持它 随地 。
我认为在完成任何文件访问之前,必须首先将用户名和密码传递给服务器进行身份验证,因此处理SMB连接的代码必须能够解析并从URL中添加用户名和密码。您必须检查该代码是否支持此格式。
如果没有,您可以通过SAMBA安装该SMB共享,并指示您的程序使用该“本地”路径。你可以把装载进去 fstab
并使用SAMBA密码文件提供用户凭据。请记住为密码文件设置正确的权限,以便普通用户无法读取它。
请注意,在配置文件中以明文形式存储密码是不好的做法,因此即使您的程序可以在URL中处理密码,您也应该考虑已安装的共享方法。
fstab
不是“明文配置文件”?