如何让Linux机器加入Windows的AD域

简介:

对于帐户统一管理系统或软件来说,在 Linux 下你可能知道 NIS、OpenLDAP、samba 或者是 RedHat、IBM 的产品,在 Windows 下当然就是最出名的活动目录Active Directory(AD)了,这里就来探讨一下如何让 Linux 的计算机加入 AD 域。

首先,先简单介绍一下 AD 域。自 Windows 2000 以来,AD 一直是 Windows 的身份验证和目录服务,AD 基于 LDAP 实现其功能,其使用 DNS 进行主机名的解析,使用 Kerberos V5 进行用户身份验证,使用 LDAP V3 进行统一的帐户管理。

目标:在 AD 域中,将 Linux 服务器加入 AD,以使 Domain Admins 用户组成员可以登录操作 Linux 服务器,不需要在 Linux 服务器中单独创建帐户。

环境:一台 Windows Server 2012 R2 操作系统的服务器,安装有 AD 并作为域控制器Domain Controller(DC),同时也作为 DNS 服务器和时间服务器;一台 RedHat Enterprise Linux 6.x 的服务器,请自行配置好网络及 YUM 源。有关 AD 域服务器的搭建,由于比较简单,请自行查阅资料完成,这里不再详述。

这里以 Windows 服务器地址为 192.168.2.122,域名为 contoso.com,主机名为 ad.contoso.com;Linux 服务器地址为 192.168.2.150,主机名为 lemon20.contoso.com。

1、安装所需软件:

 
 
  1. # yum -y install samba samba-client samba-common samba-winbind samba-winbind-clients krb5-workstation ntpdate 

2、设置服务自启动并启动服务:

 
 
  1. # chkconfig smb on 
  2. # chkconfig winbind on 
  3. # service smb start 
  4. # service winbind start 

3、修改 /etc/hosts 文件,添加主机对应记录:

 
 
  1. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
  2. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 
  3. 192.168.2.150 lemon20.contoso.com lemon20 

4、设置 DNS 地址并与 AD 服务器同步时间:

 
 
  1. # echo "nameserver 192.168.2.122" >> /etc/resolv.conf 
  2. # ntpdate ad.contoso.com 

5、设置 Kerberos 票据(可选):

销毁已经存在的所有票据:

 
 
  1. # kdestroy 

查看当前是否还存在票据:

 
 
  1. # klist                            
  2. klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0) 

生成新的票据,注意域名大写。

 
 
  1. # kinit administrator@CONTOSO.COM 
  2. # klist 
  3. Ticket cache: FILE:/tmp/krb5cc_0 
  4. Default principal: administrator@CONTOSO.COM 
  5. Valid starting     Expires            Service principal 
  6. 08/02/16 22:35:26  08/03/16 08:35:29  krbtgt/CONTOSO.COM@CONTOSO.COM 
  7. renew until 08/09/16 22:35:26 

6、以命令方式设置 samba 与 Kerberos,并加入 AD 域:

 
 
  1. #authconfig --enablewinbind  --enablewins --enablewinbindauth --smbsecurity ads --smbworkgroup=CONTOSO --smbrealm CONTOSO.COM --smbservers=ad.contoso.com --enablekrb5 --krb5realm=CONTOSO.COM --krb5kdc=ad.contoso.com --krb5adminserver=ad.contoso.com --enablekrb5kdcdns --enablekrb5realmdns --enablewinbindoffline --winbindtemplateshell=/bin/bash --winbindjoin=administrator --update --enablelocauthorize --enablemkhomedir --enablewinbindusedefaultdomain 

注意命令中的大小写,此步骤也可以使用 authconfig-tui 完成。

7、增加 sudo 权限(可选):

 
 
  1. # visudo 

加入下列设置:

 
 
  1. %MYDOMAIN\\domain\ admins ALL=(ALL) NOPASSWD: ALL 

8、确认是否正确加入 AD 域:

查看 AD 的相关信息

 
 
  1. # net ads info 

查看 MYDOMAIN\USERID 的使用者帐户

 
 
  1. # wbinfo -u 

补充:

如果启用 selinux 的话,需要安装 oddjobmkhomedir 并启动其服务,这样才能确保系统对创建的家目录设置合适的 SELinux 安全上下文。





作者:拿铁不加糖
来源:51CTO
目录
相关文章
|
6天前
|
iOS开发 MacOS Windows
|
6天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
29 0
|
6天前
|
前端开发 Linux iOS开发
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
【4月更文挑战第30天】Flutter扩展至桌面应用开发,允许开发者用同一代码库构建Windows、macOS和Linux应用,提高效率并保持平台一致性。创建桌面应用需指定目标平台,如`flutter create -t windows my_desktop_app`。开发中注意UI适配、性能优化、系统交互及测试部署。UI适配利用布局组件和`MediaQuery`,性能优化借助`PerformanceLogging`、`Isolate`和`compute`。
【Flutter前端技术开发专栏】Flutter在桌面应用(Windows/macOS/Linux)的开发实践
|
6天前
|
Linux Python Windows
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
Python虚拟环境virtualenv安装保姆级教程(Windows和linux)
|
6天前
|
SQL 监控 安全
Linux&Windows 日志分析 陇剑杯 CTF
Linux&Windows 日志分析 陇剑杯 CTF
|
6天前
|
弹性计算 运维 安全
阿里云服务器Windows和Linux操作系统区别对比
阿里云服务器Windows和Linux操作系统区别对比,性能有差异吗?有,同配置下Linux性能要优于Windows,但这与阿里云无关,仅仅是linux和windows之间的区别。另外,阿里云提供的windows和linux操作系统均为正版授权,用户不需要额外支付许可费用,如何选择?看用户自己的应用程序情况。
|
6天前
|
运维 安全 Linux
使用阿里云搭建幻兽帕鲁服务器操作系统类型Windows和Linux有区别吗?
使用阿里云搭建幻兽帕鲁服务器操作系统类型Windows和Linux有区别吗?性能有差异?同配置的游戏服务器,如4核16G或8核32G配置等,选择Windows和Linux操作系统差异不太大,如果非要对比的话,Linux系统相对Windows更少占用计算资源,当然如果对Linux不熟悉的话,可以选择Windows。另外,即便是幻兽帕鲁服务器创建成功后,也是可以免费修改操作系统的
121 1
|
6月前
|
Linux 开发者 Windows
Windows、Linux 和 Mac:操作系统之间的区别
Windows系统、Linux系统与Mac系统:操作系统的对比与选择 操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。以下是Windows 系统、Linux 系统、Mac 系统的对比: