我有两个域——一个用于开发,一个用于公司。
由于可传递林信任,我可以将 Windows 计算机加入 dev 域并以 corp 用户身份登录。我可以将 Linux 计算机加入开发域(使用领域加入或 adcli 加入),但无法使用 corp 用户帐户使用 ssh 或控制台登录。是否有解决方案,无需加入(使用领域/adcli)公司领域?他们不希望公司广告服务器上有开发计算机对象。
echo "password" | realm join --user=user --computer-ou='OU=Linux_Servers,DC=dev,DC=domain,DC=com' --os-name='Linux' dev.domain.com
克雷布5
[libdefaults]
default_realm = DEV.DOMAIN.COM # domain specific parameter (full domain name)
clockskew = 300
ticket_lifetime = 1d
forwardable = true
proxiable = true
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
DEV.DOMAIN.COM = {
kdc = adserver.domain.com # domain specific parameter (domain controller name)
admin_server = adserver.domain.com # domain specific parameter (domain controller name)
default_domain = DEV.DOMAIN.COM # domain specific parameter (full domain name)
}
CORP.DOMAIN.COM = {
kdc = corpadserver.domain.com # domain specific parameter (domain controller name)
admin_server = corpadserver.domain.com # domain specific parameter (domain controller name)
default_domain = CORP.DOMAIN.COM # domain specific parameter (full domain name)
}
[domain_realm]
.dev.domain.com = DEV.DOMAIN.COM # domain specific parameter (domain name for dns names)
dev.domain.com = DEV.DOMAIN.COM # domain specific parameter (domain name for dns names)
[appdefaults]
pam = {
ticket_lifetime = 1d
renew_lifetime = 1d
forwardable = true
proxiable = false
retain_after_close = false
minimum_uid = 0
debug = false
固态硬盘
[sssd]
domains = dev.domain.com, corp.domain.com
config_file_version = 2
services = nss, pam
default_domain_suffix = example.com
[nss]
homedir_substring = /home
[pam]
[domain/dev.domain.com]
ad_domain = dev.domain.com
krb5_realm = DEV.DOMAIN.COM
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%u@%d
access_provider = ad
基尼特
[root@vm ~]# kinit [email protected]
Password for [email protected]:
kinit: KDC reply did not match expectations while getting initial credentials
[root@gbr7testvmjuly ~]# kinit localdevadmin
Password for [email protected]:
[root@gbr7testvmjuly ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: [email protected]
Valid starting Expires Service principal
07/14/2023 10:44:11 07/14/2023 20:44:11 krbtgt/[email protected]
renew until 07/14/2023 20:44:11
编辑 #1 - Ubuntu 更新:
我最终让它适用于 CentOS、RedHat 和 Ubuntu。Ubuntu 类似,但在包名称和制作 homedir 方面有一些差异。
使用 samba、winbind 和 net ads 加入:
/etc/samba/smb.conf:
加入并停止/启动 winbind:
现在我可以作为 corp 用户通过 ssh 连接到开发计算机,但我必须在登录时指定 corp 域,否则它将默认为本地用户并失败:
有没有一种方法可以默认添加 corp 域以进行登录尝试,或者理想情况下,使用另一个 samba 或 ssh 配置设置来处理它?
编辑#1:Ubuntu 几乎是一样的
相同的 smb.conf
此外,我在 /etc/nsswitch.conf 和 /etc/pam.d/common-session 中添加了这些编辑
/etc/nsswitch.conf:
/etc/pam.d/common-session:
加入并重新启动 winbind。
我不必更新 netplan 中的 DNS 设置,因为它已经有了正确的名称服务器。