linux – 来自AD PDC的kerberos cifs多用户安装

我正在尝试使用 Windows DC的多用户支持在ubuntu服务器上安装cifs文件夹.

我可以在服务器上以root身份获取用户kerberos票证,并使用kerberos安装目录而不会出现任何问题.但我不希望以用户身份挂载目录,它应该作为多用户挂载,并且可供服务器上的所有用户访问.

也许这只是一个关于理解的一般性问题,也许你可以纠正我这里的错误.

>多用户安装服务器需要来自DC的密钥表(cts / samba.domain的ktpass导出)
> Samba使用此密钥表安装DC共享多用户
> Winbind / kerberos针对DC对用户进行身份验证并发出票证
>用户可以使用他的票证访问共享

我在DC上导出了一个keytab文件,并将其作为全局keytab文件/etc/krb5.keytab

root@remote:/etc# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   3 cifs/remote.mbeya.domain@MBEYA.domain (des-cbc-md5)

但我仍然无法挂载目录,因为密钥不可用
mount error(126):必需的密钥不可用

syslog告诉我这个:

May 17 11:37:22 remote cifs.upcall: key description: cifs.spnego;0;0;3f000000;ver=0x2;host=nina.mbeya.domain.org;ip4=10.10.10.17;sec=krb5;uid=0x0;creduid=0x0;user=root;pid=0x599b
May 17 11:37:22 remote cifs.upcall: ver=2
May 17 11:37:22 remote cifs.upcall: host=nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: ip=10.10.10.17
May 17 11:37:22 remote cifs.upcall: sec=1
May 17 11:37:22 remote cifs.upcall: uid=0
May 17 11:37:22 remote cifs.upcall: creduid=0
May 17 11:37:22 remote cifs.upcall: user=root
May 17 11:37:22 remote cifs.upcall: pid=22939
May 17 11:37:22 remote cifs.upcall: find_krb5_cc: considering /tmp/krb5cc_1000
May 17 11:37:22 remote cifs.upcall: find_krb5_cc: /tmp/krb5cc_1000 is owned by 1000,not 0
May 17 11:37:22 remote cifs.upcall: krb5_get_init_creds_keytab: -1765328378
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: getting service ticket for cifs/nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: cifs_krb5_get_req: unable to resolve (null) to ccache
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328245)
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: getting service ticket for host/nina.mbeya.domain.org
May 17 11:37:22 remote cifs.upcall: cifs_krb5_get_req: unable to resolve (null) to ccache
May 17 11:37:22 remote cifs.upcall: handle_krb5_mech: failed to obtain service ticket (-1765328245)

我很感激对此的任何意见.

谢谢

解决方法

您注意到您可以获得“root用户Kerberos票证”,但您有“密钥不可用”错误.
find_krb5_cc: /tmp/krb5cc_1000 is owned by 1000,not 0

此错误意味着mount.cifs无权访问Kerberos票证,因为它不归root(userid:0)所有,后者调用mount.cifs.我假设使用用户密码获取的Kerberos票证根目录仅供该用户使用.

现在为什么mount希望该票由root拥有?
第一行的这一部分:

uid=0x0;creduid=0x0;user=root;

可能是原因. Mount.cifs正在以root身份执行.您可能想尝试将uid和creduid更改为用户的useruid.

我不知道你在哪里调用mount.cifs,所以如果这有点模糊,我很抱歉.你能给你正在运行的mount.cifs命令及其选项吗?

至于“可供服务器上的所有用户访问”的共享:
我在用户登录并使用他们的用户名,密码和他们的Kerberos票证挂载共享后运行pam_mount,所以我没有使用keytab.
这是我正在调用的mount命令:

mount -t cifs //<SERVER>/<VOLUME> <MOUNTPOINT> -o username=%(USER),sec=krb5,domain=<DOMAIN>,cruid=%(USERUID),uid=%(USERUID),gid=%(USERGID),rw

将授权用户添加到单个组.还要将file_mode =和dir_mode =设置为该组具有对文件的读/写访问权限的正确权限,如770.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format=&#39;{{.LogPath}}&#39; &lt;container_name&gt; 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户