是否可以使用 NTLMv2/登录凭据在多用户 Ubuntu 20.04 桌面环境中的公共挂载点上自动挂载 SMB 共享?

是否可以使用 NTLMv2/登录凭据在多用户 Ubuntu 20.04 桌面环境中的公共挂载点上自动挂载 SMB 共享?

我希望将 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

相关内容