当 Linux 机器加入域时,会在 Active Directory 中创建一个计算机帐户。
该帐户可以用来挂载带有 cifs 和 Kerberos 的网络共享吗?
答案1
确保根(uid 0) 具有机器帐户的 Kerberos 票证缓存 - 可以使用系统密钥表获取票证,例如使用kinit -k
。但是,要自动维护和更新它们,您可能需要运行启动作为系统守护进程。(仅在启动时调用 kinit 是不够的,因为每次连接丢失并重新建立时都需要有效的票证,例如,如果 SMB 服务器重新启动。)
[Service]
Type=forking
ExecStart=/usr/bin/k5start -f /etc/krb5.keytab -U -k /tmp/krb5cc_0 -o root -b -K 60 -v -L
哦,确保系统确实有其机器帐户的 Kerberos 密钥表。(用于klist -k
检查密钥表的内容。)SSSD/adcli 加入将始终在 /etc/krb5.keytab 中有一个密钥表,但使用 Samba 加入可能不会默认生成密钥表。
一旦 root 拥有票证缓存,您就应该能够使用 挂载 SMB -o sec=krb5,multiuser
,当 root 执行挂载时,其票证将被使用。这应该同样可以从 /etc/fstab 工作,只要您确保“kstart”服务在尝试 SMB 挂载之前完成其工作,例如通过使用 fstab 选项x-systemd.requires=kstart.service
。