![是否可以使用 NTLMv2/登录凭据在多用户 Ubuntu 20.04 桌面环境中的公共挂载点上自动挂载 SMB 共享?](https://linux22.com/image/938674/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%20NTLMv2%2F%E7%99%BB%E5%BD%95%E5%87%AD%E6%8D%AE%E5%9C%A8%E5%A4%9A%E7%94%A8%E6%88%B7%20Ubuntu%2020.04%20%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83%E4%B8%AD%E7%9A%84%E5%85%AC%E5%85%B1%E6%8C%82%E8%BD%BD%E7%82%B9%E4%B8%8A%E8%87%AA%E5%8A%A8%E6%8C%82%E8%BD%BD%20SMB%20%E5%85%B1%E4%BA%AB%EF%BC%9F.png)
我希望将 SMB 共享挂载在所有用户的公共挂载点上,并在访问时自动挂载它,就像在 Windows 环境中将网络驱动器映射到公共驱动器号时一样,它仅使用用户的登录凭据进行身份验证。
Kerberos 不可用,因此我只能使用 NTLM 进行身份验证,而且共享无法在启动期间挂载,必须按需挂载,因为网络连接在启动时并不总是可用的。
我认为我应该能够使用 cifscreds / pam_cifscreds 来存储 CIFS 凭据,但是在挂载共享时我仍然需要输入密码,即使使用 pam_cifscreds 手动存储凭据cifscreds add -u myuser myserver
或在登录期间使用 pam_cifscreds 存储凭据也是如此。
正如我所料,唯一真正起作用的是当用户 2 在用户 1 安装共享后访问该共享时,用户 2 只能看到它有权访问的内容(如果有凭据)。
这是我的系统目前的配置
/etc/fstab
//myserver/myshare$ /myshare cifs vers=3.0,sec=ntlmsspi,multiuser,cifsacl,noauto,nodev,nosuid,noserverino,user,x-gvfs-show 0 0
/etc/pam.d/common-auth
auth optional pam_cifscreds.so
/etc/pam.d/common-session
session required pam_keyinit.so
session optional pam_cifscreds.so host=myserver
问题 1:
当使用 从命令行挂载共享时mount /myshare
,系统会提示用户输入密码,即使在keyctl show
执行时用户的 CIFS 凭据可用。
这也使得从桌面挂载或自动挂载变得不可能。
问题 2:
启动桌面会话时,keyctl show
执行时没有可用的 CIFS 凭据。
但是当使用 SSH 登录时,keyctl show
执行时会显示 CIFS 凭据,因此启动桌面会话时 pam_cifscreds 似乎根本不起作用。
更新1:猜测这是可能的原因https://github.com/systemd/systemd/issues/1299