版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://rainbird.blog.51cto.com/211214/197509
       笔者这几天在研究samba服务通过ad域进行用户验证。在查资料的过程中发现。关于linux加入windows域,网上资料不少,但是按着网上的说法做大多不成功,甚至很多人估计都不知道自己在说什么,最后一个net ads join就认为已经成功加入到域了,可是然后呢?作为域内的一个成员,普通的机器要可以提供域内的用户登陆;作为samba服务要把共享加入到目录中,这样才起到加入域的作用嘛。笔者经过反复实验,终于把linux加入到windows域一些细节记录下来,不敢独享,特拿出。
       笔者用的linuxcentos5.3ad域为win2k3 sp2。域为:Rainbird.net
Win2k3:
       Name:ad1
       Ip:192.168.1.241
       Dns:192.168.1.241
Centos5.3:
Name:Filesrv
Ip:192.168.1.246
Dns:192.168.1.241
Ok,let’s go!
1.samba服务器软件需求
krb5-workstation-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.2.7-19
pam_krb5-1.70-1
krb5-devel-1.2.7-19
krb5-libs-1.2.7-19
samba-3.0.5-2
[[email protected] CentOS]# rpm -qa|grep krb5<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

krb5-auth-dialog-0.7-1

krb5-libs-1.6.1-25.el5

krb5-devel-1.6.1-25.el5

pam_krb5-2.2.14-1

krb5-workstation-1.6.1-25.el5

[[email protected] CentOS]# rpm -qa|grep samba

samba-swat-3.0.28-0.el5.8

samba-common-3.0.28-0.el5.8

samba-client-3.0.28-0.el5.8

samba-3.0.28-0.el5.8

 

如果centos在安装的时候没有取消默认选中的”Base”,krb5的包是默认全部安装

如果没有选择安装samba可以这样安装

[[email protected] CentOS]# rpm -ivh xinetd-2.3.14-10.el5.i386.rpm

[[email protected] CentOS]# rpm -ivh --aid samba*.rpm

2.配置kerberossamba

因为笔者用的系统为centos所以为保证一次成功的准确率,这里就使用字符界面下的图形工具来配置了。

运行setup工具

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

RedHat Linux 加入域
认证配置

 

RedHat Linux 加入域
选择:

“use winbind”

“use kerberos”

“use winbind authertication”

RedHat Linux 加入域
删除admin server 其余的改成真实情况

Realm为域名,KDC为域服务器的ip

RedHat Linux 加入域
配置winbind

Domain为你的域的,左面第一个”.”前面的东东

RedHat Linux 加入域
 
选择”join domain”,提示是否先保存配置信息,肯定是yes了。
RedHat Linux 加入域
嘿嘿,看到这个画面是不是想到了xp机器加入到域的情景?没错就是那个!输入ad域的管理员密码吧J

RedHat Linux 加入域
不出意外的话,你就到达了最后一个界面,肯定ok,然后退出了。

RedHat Linux 加入域
一般来说,只要两台机器的时间上下不差五分钟,且项都配置正确的话,你就会看到下面这个图片。看到这个图片说明你的linux成功加入到ad域啦!

RedHat Linux 加入域
OK,用图形的好处就是方便快捷,但是这样只适合rh系统。别的linux系统咋办呢?别急。这个工具其实就是编辑以下三个配置文件:

/etc/nsswitch.conf

passwd:     files winbind(就是先读files 然后再通过winbind认证)

shadow:     files winbind

group:      files winbind

/etc/krb5.conf

[logging]

 default = FILE:/var/log/krb5libs.log

 kdc = FILE:/var/log/krb5kdc.log

 admin_server = FILE:/var/log/kadmind.log

 

[libdefaults]

 default_realm = RAINBIRD.NET(默认的域名)

 dns_lookup_realm = false

 dns_lookup_kdc = false

 ticket_lifetime = 24h

 forwardable = yes

 

[realms]

 EXAMPLE.COM = {

  kdc = kerberos.example.com:88

  admin_server = kerberos.example.com:749

  default_domain = example.com

 }

 

 RAINBIRD.NET = {

  kdc = 192.168.1.241:88(域服务器)

  kdc = 192.168.1.241

 }

 

[domain_realm]

 .example.com = EXAMPLE.COM

 example.com = EXAMPLE.COM

 

 rainbird.net = RAINBIRD.NET

 .rainbird.net = RAINBIRD.NET

[appdefaults]

 pam = {

   debug = false

   ticket_lifetime = 36000

   renew_lifetime = 36000

   forwardable = true

   krb4_convert = false

 }

/etc/samba/smb.conf

   workgroup = RAINBIRD//域名

   password server = 192.168.1.241//域服务器

   realm = RAINBIRD.NET

   security = ads//必须启用

   idmap uid = 16777216-33554431

   idmap gid = 16777216-33554431

   template shell = /bin/bash

   winbind use default domain = false (改成true)

   winbind offline logon = false(改成true)

template homedir = /home/%U

   winbind separator = /

   winbind enum users = Yes

   winbind enum groups = Yes

红色部分就是工具自动修改的了,但是smb.conf修改的不彻底,还不能满足我们的要求,怎么办呢?手动把蓝色部分加上,并把那两个false改成ture,然后设置samba的开机自动启动chkconfig smb on,service smb on启动服务,然后就是手工把linux加入到windows了
[[email protected] ~]# net ads join -U [email protected]

[email protected]'s password:

The workgroup in /etc/samba/smb.conf does not match the short

domain name obtained from the server.

Using the name [RAINBIRD] from the server.

You should set "workgroup = RAINBIRD" in /etc/samba/smb.conf.

Using short domain name -- RAINBIRD

Joined 'FILESRV' to realm 'RAINBIRD.NET'
提示“Joined”哟,不是这个提示就是有问题,再仔细检查。
OK,重启linux,这时候用一个域用户登陆linux如果提示用户或密码验证失败,说明你重启之前的东西没配置对。仔细检查一下哪里不对呢?
RedHat Linux 加入域
如果提示如下,那么恭喜你,可以继续下一个话题了。
RedHat Linux 加入域
3.自动创建用户目录.

用到的文件pam_mkhomedir.so

/etc/pam.d/sysconf-auth文件中的sesson部分添加一行

session     required      pam_mkhomedir.so silent skel=/etc/skel umask=0077

silent不打印创建目录信息

skel 告诉pam_mkhomedir.so拷贝/etc/skel里的文件到新创建的目录里.

umask 是创建的目录的权限

创建哪个目录是在smb.conf里的template homedir定义的

如图:

RedHat Linux 加入域
保存退出,重启一下X-window。再次用域用户登陆,是不是成功看到了久违的linux桌面呢?

RedHat Linux 加入域 

Ok,到此为止,linux加入windows的故事就讲完了。而samba服务器通过ad域认证并实现每个用户500M的共享空间,且当用户登陆windows域的时候自动挂载已经成型,近期放出,敬请期待。
 
 
相关文章:
本文出自 “rainbird” 博客,请务必保留此出处http://rainbird.blog.51cto.com/211214/197509

转载于:https://blog.51cto.com/972649/313033

相关文章:

  • 2022-01-17
  • 2021-08-03
  • 2022-12-23
  • 2022-12-23
  • 2021-10-25
  • 2022-02-13
  • 2021-06-06
  • 2022-02-10
猜你喜欢
  • 2021-04-07
  • 2022-12-23
  • 2021-09-28
  • 2022-12-23
  • 2021-09-05
  • 2021-04-13
  • 2022-12-23
相关资源
相似解决方案