jan*_*öhr 17 mount 11.10 pam kerberos
我们的主目录通过 kerberized nfs 导出,因此用户需要有效的 kerberos 票证才能安装其主目录。此设置适用于我们现有的客户端和服务器。
现在我们要添加一些 11.10 客户端,从而将 ldap 和 kerberos 与 pam_mount 一起设置。ldap 认证有效,用户可以通过 ssh 登录,但是他们的家不能挂载。
当 pam_mount 配置为以 root 身份挂载时,gssd 找不到有效的 kerberos 票证并且挂载失败。
Nov 22 17:34:26 zelda rpc.gssd[929]: handle_gssd_upcall: 'mech=krb5 uid=0 enctypes=18,17,16,23,3,1,2 '
Nov 22 17:34:26 zelda rpc.gssd[929]: handling krb5 upcall (/var/lib/nfs/rpc_pipefs/nfs/clnt2)
Nov 22 17:34:26 zelda rpc.gssd[929]: process_krb5_upcall: service is '<null>'
Nov 22 17:34:26 zelda rpc.gssd[929]: getting credentials for client with uid 0 for server purple.physcip.uni-stuttgart.de
Nov 22 17:34:26 zelda rpc.gssd[929]: CC file '/tmp/krb5cc_65678_Ku2226' being considered, with preferred realm 'PURPLE.PHYSCIP.UNI-STUTTGART.DE'
Nov 22 17:34:26 zelda rpc.gssd[929]: CC file '/tmp/krb5cc_65678_Ku2226' owned by 65678, not 0
Nov 22 17:34:26 zelda rpc.gssd[929]: WARNING: Failed to create krb5 context for user with uid 0 for server purple.physcip.uni-stuttgart.de
Nov 22 17:34:26 zelda rpc.gssd[929]: doing error downfall
Run Code Online (Sandbox Code Playgroud)
另一方面,当 pam_mount 配置了 noroot=1 选项时,它根本无法挂载卷。
Nov 22 17:33:58 zelda sshd[2226]: pam_krb5(sshd:auth): user phy65678 authenticated as phy65678@PURPLE.PHYSCIP.UNI-STUTTGART.DE
Nov 22 17:33:58 zelda sshd[2226]: Accepted password for phy65678 from 129.69.74.20 port 51875 ssh2
Nov 22 17:33:58 zelda sshd[2226]: pam_unix(sshd:session): session opened for user phy65678 by (uid=0)
Nov 22 17:33:58 zelda sshd[2226]: pam_mount(mount.c:69): Messages from underlying mount program:
Nov 22 17:33:58 zelda sshd[2226]: pam_mount(mount.c:73): mount: only root can do that
Nov 22 17:33:58 zelda sshd[2226]: pam_mount(pam_mount.c:521): mount of /Volumes/home/phy65678 failed
Run Code Online (Sandbox Code Playgroud)
那么我们如何允许特定组的用户执行 nfs 挂载呢?如果这不起作用,我们可以让 pam_mount 使用 root 但传递正确的 uid 吗?
小智 2
请参阅此线程:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=190267
如果 fstab 中没有“用户”选项,则只有 root 可以挂载卷。mount.c 中有一些关于使 mount 命令可由任何用户执行的注释,但被维护者拒绝了(该注释提到了一些有关安全问题的内容,但不是更具体)。
与原始上游相比,Debian 版本的 libpam-mount 使用用户uid(而不是 root)执行挂载命令。以 root 身份执行用户指定的安装是一个安全漏洞。然后,任何用户都可以在登录时将卷安装到 /usr 或 /tmp,或者在注销时卸载任何其他卷。
或者换句话说,libpam-mount 只能做用户可以做的事情,仅此而已。
那么,有什么建议吗?
将用户条目放入 fstab 中即可完成。请告诉我这是如何运作的。请注意,其他文件系统(ncp、smb)具有用户可调用的安装二进制文件,例如 smbmount 或 ncpmount。环回安装似乎没有这样的事情:/