目标
我正在 CentOS 8.2 下的 Active Directory 环境中设置多用户 CIFS 挂载。存储服务器支持 SMB3.1.1 协议。
先决条件
我可以轻松地将系统集成到 Active Directory,并且我已经编辑了 SSSD(/etc/sssd/sssd.conf)和realm
配置以匹配偏好和需求。
结果:
- Active Directory 用户可以登录
我还创建了一个专用用户,我将在这篇文章中将其命名为“蒙托里诺“。蒙托里诺具有挂载 CIFS 共享所需的共享权限 (RO) 和 NTFS 权限(遍历根文件夹)。标识信息存储在文件中/root/cifs.cred
。
场景 A:NTLM
multiuser
使用和选项安装 CIFS 共享ntlmsspi
:
//<server>/<share> /mnt/<mount point> cifs auto,_netdev,rw,noexec,nodev,nosuid,noperm,cache=strict,hard,vers=3.1.1,multiuser,sec=ntlmsspi,credentials=/root/cifs.cred 0 0
结果:
- 只要我从最终用户上下文运行命令,它就可以
cifscreds add --username <user> <server>
工作 cifscreds add --username <user> --domain <domain>
如果我运行命令,它不起作用
场景 B:Kerberos
multiuser
使用、krb5i
和选项挂载 CIFS 共享cruid
:
//<server>/<share> /mnt/<mount point> cifs auto,_netdev,rw,noexec,nodev,nosuid,noperm,cache=strict,hard,vers=3.1.1,multiuser,sec=krb5i,cruid=0,credentials=/root/cifs.cred 0 0
结果:
- 只要我以 root 身份运行
kinit mounterino@<DOMAIN>
命令,它就可以工作
问题:
- 使用 NTLM,为什么
cifscreds add --username <user> --domain <domain>
不起作用?用户、服务器和客户端都是同一个 Windows 域的成员! - 更重要的是,有了 Kerberos,我怎样才能让 root 获得 Kerberos 票证前自动挂载 fstab 条目会发生什么?我理解通过生成文件
keytab
,我不需要输入毛托里诺运行时输入密码kinit
,这样可以自动kinit
使用。但是如何确保kinit
在自动挂载之前运行?PAM?systemd 单元?
来源
- https://computingforgeeks.com/join-centos-rhel-system-to-active-directory-domain/
- https://access.redhat.com/articles/3023821
- https://superuser.com/questions/1498295/how-can-i-write-to-dfs-share-with-different-users-other-than-mount-user-on-the-l
- FSTAB CIFS Kerberos
谨致问候,MauvaisJoueur