共计 2928 个字符,预计需要花费 8 分钟才能阅读完成。
导读 | 本文展示如何使用 realmd ,sssd 将 Ubuntu 20.04 加入到 Active Directory 域。本文还进一步为通过 AD 登录的域用户配置 sudo 规则。 |
下面命令用来设置正确的主机名和 dns 服务器地址:
bpang@Ubuntu-1:~$ sudo hostnamectl set-hostname Ubuntu-1.pangzb.com | |
bpang@Ubuntu-1:~$ hostnamectl |
配置可以和 AD 域控制器通信的 DNS 地址:
bpang@Ubuntu-1:~$ sudo vim /etc/netplan/00-installer-config.yaml | |
bpang@Ubuntu-1:~$ cat /etc/netplan/00-installer-config.yaml | |
# This is the network config written by 'subiquity' | |
network: | |
ethernets: | |
enp1s0: | |
dhcp4: false | |
addresses: [10.111.127.141/18] | |
gateway4: 10.111.127.254 | |
nameservers: | |
addresses: [10.111.87.200] | |
version: 2 | |
bpang@Ubuntu-1:~$ sudo netplan apply |
可以使用 resolvectl
查看当前的 dns 服务器地址:
bpang@Ubuntu-1:~$ resolvectl --no-pager | grep -i server | |
DNS Servers: 10.111.87.200 |
如果想要加入 AD 域,在 Linux 中需要安装一些软件包才行:
bpang@Ubuntu-1:~$ sudo apt update -y | |
bpang@Ubuntu-1:~$ sudo apt -y install realmd libnss-sss libpam-sss sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit |
realm discover
命令会显示完整的域配置和需要安装的软件包列表,只有安装了系统才能在域中注册。
bpang@Ubuntu-1:~$ sudo realm discover pangzb.com | |
pangzb.com | |
type: kerberos | |
realm-name: PANGZB.COM | |
domain-name: pangzb.com | |
configured: no | |
server-software: active-directory | |
client-software: sssd | |
required-package: sssd-tools | |
required-package: sssd | |
required-package: libnss-sss | |
required-package: libpam-sss | |
required-package: adcli |
可以看到图中 required-package
列出的软件包就是刚刚我们安装的。
使用 realm join
命令将系统加入域中。realm join --help
可以看到相关帮助,里面有许多选项可供使用,下面使用 -U
选项来指定域控管理员账号,然后输入密码:
bpang@Ubuntu-1:~$ sudo realm join -U administrator pangzb.com | |
Password for administrator: |
查看是否成功加入域:
bpang@Ubuntu-1:~$ realm list | |
pangzb.com | |
type: kerberos | |
realm-name: PANGZB.COM | |
domain-name: pangzb.com | |
configured: kerberos-member | |
server-software: active-directory | |
client-software: sssd | |
required-package: sssd-tools | |
required-package: sssd | |
required-package: libnss-sss | |
required-package: libpam-sss | |
required-package: adcli | |
required-package: samba-common-bin | |
login-formats: %U@pangzb.com | |
login-policy: allow-realm-logins |
可以看到加入域之后的相关信息了。
在域控里面也可以看到该计算机了。
下面通过切换至域用户测试一下:
bpang@Ubuntu-1:~$ su - user01@pangzb.com | |
Password: | |
su: warning: cannot change directory to /home/user01@pangzb.com: No such file or directory | |
user01@pangzb.com@Ubuntu-1:/home/bpang$ pwd | |
/home/bpang |
看到上面提示,发现域用户没有自动创建 home 目录,通过 pwd
命令查看以下,用户当前不在自己的 home 目录。
下面使用 pam-auth-update
来加载 mkhomedir
模块。
bpang@Ubuntu-1:~$ sudo pam-auth-update
选中Create home directory on login
,点 OK,更新之后,再次使用域用户登录,就可以自动创建目录了。
bpang@Ubuntu-1:~$ su - user02@pangzb.com | |
Password: | |
Creating directory '/home/user02@pangzb.com'. |
可以通过 realm 工具自带的访问控制列表来禁止或允许用户和组的登录访问。
例如:拒绝 user02@pangzb.com 登录本机:
bpang@Ubuntu-1:~$ sudo realm deny user02@pangzb.com
如下图,登录时提示 permission denied
允许用户组登录就是sudo realm permit -g 'Domain Users'
允许用户登录就是sudo realm permit Adinistrator
允许或拒绝所有用户登录:sudo realm permit --all
/ sudo realm deny --all
加入域之后重要的事情是限制域用户使用 sudo 命令提权。这可以通过使用 visudo
命令添加 %domain^admins ALL=(ALL) ALL
来完成,这样只允许域管理员用户才能使用 sudo 命令:
bpang@Ubuntu-1:~$ sudo visudo | |
# 打开之后,在配置文件中添加如下行 | |
%domain^admins ALL=(ALL) NOPASSWD: ALL |
通过域用户登录时,@和.
使用转义符转义一下。
bpang@Ubuntu-1:~$ ssh user01\@pangzb\.com@127.0.0.1
本文展示如何使用 realmd ,sssd 将 Ubuntu 20.04 加入到 Active Directory 域。本文还进一步为通过 AD 登录的域用户配置 sudo 规则。
