菜鸟配置SAMBA服务之4

1.实验平台:Ubuntu11.10(实验未取得成功,有待于研究)

2.实验名称:PDC服务器的搭建

3.PDC简介:  Primary Domain Controller (PDC)

   让samba PDC 成为整个局域网的域管理员(domain controller),然后让windows主机加入这个域,未来用户利用windows登录时,windows会前往PDC服务器取得用户的账号和密码,同时PDC还会传送用户的重要数据到那台windows个人计算机上,而windows用户注销时,该用户的数据也会返回给PDC。

4.PDC的主要内容:

   domain:lan

   servername:lyang-vbox1

   信任主机:liuyang-PC$

   信任用户:administrator 、root 、lyang

   至少所需要的共享资源:netlogon 、 profile 、用户主目录

   一个简易的 PDC 实作案例相关参数示意图

5.设置流程:

  • 区网计算机环境设定:整体网域设定好,尤其 Windows 的工作组与计算机名称及 IP 等参数;
  • PDC 设定:因为 PDC 管理自己的密码,所以 security = user;
  • PDC 最好拥有整个网域的名称解析权力,亦即成为主要的名称解析器;
  • 需有 netlogon 资源共享,提供 windows7 客户端的登入之用;
  • 由于 Windows 需读入个人配置文件,默认目录为 profile,Linux 系统需预先设定此目录;
  • 增加 PDC 上的使用者账号以及机器代码 (machine account) 等等
  • 在 Windows7个人计算机上设定成为 PDC 的客户端。

6.PDC 服务器的建置:

        建置 NetBIOS 与 IP 对应的数据:设定 lmhosts 与 /etc/hosts(Ubuntu11.10没有在/etc/samba/下发现lmhosts)

   

[root@www ~]# vim /etc/samba/lmhosts
127.0.0.1       localhost      <==这行是预设存在的,不要动他,底下的请自行新增
192.168.2.3 liuyang-PC
192.168.2.4 lyang-vbox1
192.168.2.5 lyang-vbox2
192.168.2.6 Lyang-PC
 [root@www ~]# vim /etc/hosts 192.168.2.3 liuyang-PC
192.168.2.4 www.Ubuntu.ly lyang-vbox1 192.168.2.5 Ubuntuclient lyang-vbox2 192.168.2.6 Lyang-PC

  

  • 建置 PDC 主设定:处理 smb.conf

        假设我们要让 PDC 客户端登入时可以取得他自己的家目录,那么需要这样处理:

[root@www ~]# vim /etc/samba/smb.conf
[global]
        workgroup       = lan   <==请务必确认一下工作组与主机名
        netbios name    = lyang-vbox1
        server string   = This is lyang's samba server
        unix charset    = UTF-8
        display charset = UTF-8
        dos charset     = cp936
client lanman auth = yes
lanman auth = yes log file = /var/log/samba/log.%m max log size = 50 security = user passdb backend = tdbsam load printers = no # 与 PDC 有关的一些设定值: # 底下几个设定值处理成为本局域网络内的主要名称解析器 preferred master = yes domain master = yes local master = yes wins support = yes # 操作系统 (OS) 等级越高才能成为主网域的控制者,一般 NT 为 32, # Windows 2000 为 64 ,所以这里我们设定高一点,但不可超过 255 os level = 100 # 底下则是设定能否利用 PDC 登入,且登入需要进行哪些动作: domain logons = yes logon drive = C: <==登入后家目录挂载成 Windows 哪一槽 logon script = startup.bat <==每个使用者登入后会自动执行的程序 time server = yes <==自动调整 Windows 时间与 Samba 同步 admin users = root <==预设的管理员账号!预设为 root logon path = \\%N\%U\profile <==使用者的个人化设定 logon home = \\%N\%U <==用户的家目录位置! # 这个在指定登入者能够进行的工作,里面主要是具有许多执行程序: [netlogon] <==与前面的 logon script 有关,该程序放置在这里 comment = Network Logon Service path = /winhome/netlogon <==重要的目录,要自己建立才行! writable = no write list = root follow symlinks = yes guest ok = yes [homes] ....(底下保留原本设定).... [root@www ~]# testparm [root@www ~]# /etc/init.d/smb restart [root@www ~]# /etc/init.d/nmb restart

上面的设定有几个地方比较有趣一点:

  • time server:要使 Samba 与 Windows 主机的时间同步,使用这个项目;
  • logon script:当使用者以 Windows 客户端登入后,Samba 可以提供一支批处理文件,让使用者去设定好他们自己的目录配置。整个配置的内容记录在 startup.bat 当中。 你要注意的是,这个 startup.bat 档名可以随意更改,不过他必须要放置到 [netlogon] 所指定的目录内;
  • logon drive:那么这个家目录要挂载到那个分割槽? 在 Windows 底下大多以 C, D, E... 做为磁盘的代号,你这里可以指定一下家目录要放置成为那个磁盘代号;
  • admin users:指定这个 Samba PDC 的管理员身份。
  • [netlogon]:指定利用网络登录时首先去查询的目录资源。
  • logon path:用户登入后,会取得的环境设定数据在哪? 我们知道用户会有一堆环境数据,例如桌面等,这些东西都放置到这里来。使用的变量中, %N 代表 PDC 服务器的位置, %U 则代表用户的 Linux 家目录。因此最终你得要有 ~someone/profile 的目录才可以
  • logon home:用户的家目录,默认与 Linux 的家目录相同位置。
  •  建立 Windows 客户端登入时所需的设定数据 netlogon 目录

先来建立 [netlogon] 内所需要的数据好了,那就是一个目录。由于鸟哥预计将所有的 PDC 数据通通放置到 /winhome 当中,包括用户家目录,因此很多东西都需要修订喔!包括后来的 SELinux 肯定会出问题的~

[root@www ~]# mkdir -p /winhome/netlogon

接下来我们还得要建立允许使用者执行的档案,就是那个 startup.bat 才行! 注意一下,我们这里假设用户家目录为 K 槽,那你可以这样做:

[root@www ~]# vim /winhome/netlogon/startup.bat
net time \\vbirdserver /set /yes
net use K: /home
# 这个档案的格式为:net use [device:] [directory]

# 再将该档案转成 DOS 的断行格式才行!因为是提供给 Windows  系统嘛!

[root@www ~]# yum install unix2dos
[root@www ~]# unix2dos /winhome/netlogon/startup.bat
[root@www ~]# cat -A /winhome/netlogon/startup.bat
net time \\vbirdserver /set /yes^M$
net use K: /home^M$
# 瞧见吗?会多出个奇怪的 ^M 符号,那就是 Windows 断行字符。
其他:如果是centos6.5系统就是unix2dos 如果是Ubuntu11.10就是dos2unix!!!

  • 建立 Windows 专用的使用者

因为鸟哥预计将使用者全部挪到 /winhome 底下,而且每个用户家目录应该还要有 profile 目录存在才行, 为了避免麻烦,所以我们先到 /etc/skel 去处理一下,然后才建立账号,最后才产生 samba 用户吧! 产生 samba 用户可以使用 pdbedit 也能够直接使用 smbpasswd -a ,因为没有要用特殊的参数, 所以,Samba 用户就用旧的 smbpasswd 来处理即可。

[root@www ~]# mkdir /etc/skel/profile
[root@www ~]# smbpasswd -a root
[root@www ~]# pdbedit -L
root:0:root

# 重点是需要有画底线的那几个人物出现才行呦!

[root@www ~]# ll /winhome
drwxr-xr-x. 2 root   root   4096 Jul 29 16:48 netlogon
# 用户的家目录不是在 /home 而是在 /winhome 里头才是对的呦!

注意:在Ubuntu11.10下useradd和adduser是不一样的,这里我们需要adduser --home /winhome/administrator administrator

                                                                                            pdvedit -a -u administrator

那以后新增的使用者都有可以存放来自 Windows 的特殊配置文件目录喔!比较好管理啰~ 当然啦,使用 useradd 新增使用者后,记得也要使用 smbpasswd -a username 来让该使用者可以使用 Samba 喔!


  • 建立机器码账号

由于 PDC 会针对 Windows 客户端的主机名 (NetBIOS name) 进行主机账号检查, 所以我们也要为客户端的主机名进行账号的设定。咦!啥是主机账号? 一般用户账号是英文或数字,主机账号则在该账号最后面加上一个钱字号『$』即可! 举例来说, Lyang-PC这部主机可设定的账号名称为 Lyang-PC$。

而我们知道要使用 smbpasswd 增加的使用者必须要在 /etc/passwd 当中,因此要建立这个账号你就得要这样做:

[root@www ~]# useradd -M -s /sbin/nologin -d /dev/null Lyang-PC$

会增加 -M -s -d 等参数的原因是因为不想要让这个账号具有可以登入的权限, 因此将这个主机账号设定的比较怪一点~ ^_^~接下来让 Samba 知道这个账号是主机账号,所以你应该要这样做:

[root@www ~]# smbpasswd -a -m Lyang-PC$

这样便加入主机账号啰!而我们的 Samba PDC 也就可以透过『主机账号』来判断 Windows 客户端能否连上来, 若连接上 PDC 与 Windows 客户端后,接下来一般使用者账号就可以在 windows 客户端登入了!


  • 修改安全性相关数据

由于我们建立的账号目录在 /winhome 底下,并非正规的 CentOS 目录,所以最重要的 SELinux 可能会跑掉~ 所以,我们还得要修订 SELinux 才行!方法很简单,将 SELinux type 转为 samba_share_t 即可!

[root@www ~]# chcon -R -t samba_share_t /winhome

由于 SELinux 的数据是会继承上层目录的,因此未来新增的用户,理论上,就不需要重新修订 SELinux 的文件类型了。 但是,如果你老是发现登入 PDC 的账号却无法取得家目录,那么就观察 /var/log/messages 内的资料来修订吧!


小标题的图示16.4.3 Wimdows XP pro. 的客户端(一下为参考,没有时间操作过,win7实验失败)

请注意,底下的方法仅适用于 Windows 2000, Windows XP 专业版 (Pro.),一般的 Windows XP home 版本是不支持的! 如果你客户端的主机是随机版的 Windows XP ,通常是 Windows XP home ,那底下的方法可能就无法适用啰! 要连接上 Samba PDC 的过程也是挺简单的,你可以这样做: (至于 Windows 7 对于 Samba 的版本要求较高,官方网站是说得高于 3.3.x 以上版本才有支持)


  • 1. 确认 windows 客户端的网域与主机名

首先我们必须要确认 Windows 客户端的工作组与主机名跟咱们的 Samba PDC 相同, 确认的方式在局域网络里面已经提过了,这里在强调一次。将鼠标移动到『我的计算机』上面,按下右键, 选择『内容』,然后点选『计算机名称』,会出现如下图示:

Windows 客户端连上 PDC 的方式流程示意图
图 16.4-2、Windows 客户端连上 PDC 的方式流程示意图

如上图所示,你要先确认箭头 1 处指的主机名与工作组,在我们这个案例当中的工作组为 vbirdhouse, 这部 Windows 主机的 NetBIOS 名称则为 vbirdwinxp 喔!如果不对的话,请按下『变更』来设定, 并且重新启动。重新启动完毕后再到上图的画面当中,按下箭头 2 所指的网络识别处。


  • 2. 设定主机名与域名

接下来我们要设定这部 Windows XP pro. 要链接到局域网络上的哪部 PDC 上面,亦即是处理主机账号以及 Samba PDC 负责的网域 (domain) 啦!在图 16.4-2 按下『网络识别』后,分别在出现的窗口当中选择:

  1. 下一步;
  2. 这台计算机是公司网络的一部份,而且我在工作时用来联机到其他计算机(T)
  3. 我的公司使用一或多个网域的网络(C)
  4. 下一步

然后就会出现如下的窗口:

Windows 客户端连上 PDC 的方式流程示意图
图 16.4-3、Windows 客户端连上 PDC 的方式流程示意图

请依序填写 Samba 主机上面的管理员账号与密码,要注意这个密码是记录于 Samba 中的那个,可不是 /etc/shadow 喔!别搞混了~这是 Samba 服务器的设定呢。输入之后按下一步吧,通常都会出现找不到正确主机的画面,如下所示:

Windows 客户端连上 PDC 的方式流程示意图
图 16.4-4、Windows 客户端连上 PDC 的方式流程示意图

鸟哥也觉得很奇怪,老是告诉我找不到!不过没有关系,这里我们依旧再填一次主机的 NetBIOS name 以及组名, 如上图所示,然后继续按下一步,就会出现如下的画面啦:

Windows 客户端连上 PDC 的方式流程示意图
图 16.4-5、Windows 客户端连上 PDC 的方式流程示意图

这次就给他输入正确的管理员账号与密码,记得最后面的网域就是工作组名称,别写错了。 处理完毕后给他按下确定吧!然后就会出现如下画面:

Windows 客户端连上 PDC 的方式流程示意图
图 16.4-6、Windows 客户端连上 PDC 的方式流程示意图

恭喜你,这就表示已经连接上 Samba PDC 啰!我们希望所有的使用者都直接由 Samba PDC 控管,所以这里请填写 『此时不新增使用者』吧!按下一步去。


  • 3. 重新启动并以新的域名登入

在图 16.4-6 之后请重新启动,开机后整个画面会有点类似这样:

Windows 客户端连上 PDC 的方式流程示意图
图 16.4-7、Windows 客户端连上 PDC 的方式流程示意图

为了保护我们的系统,因此得要按下 [ctrl]+[alt]+[del] 三个组合按键后,才会出现如下的登入画面:

Windows 客户端连上 PDC 的方式流程示意图
图 16.4-8、Windows 客户端连上 PDC 的方式流程示意图

目前系统上面就会有两个可选择的账号管理模式,一个是本机账号一个是 PDC 提供的账号,那我怎知登入者是哪个管理模式? 所以你就得要按下上述画面的『选项』,才会出现『登入到』的那一行数据。出现的两个数据分别是:

  • VBIRDWINXP(此计算机):这就是你的计算机名称,亦即是以本机账号登入;
  • VBIRDHOUSE:就是 PDC 的 workgroup 项目,透过 PDC 的账号来尝试登入。

现在请输入你在 Samba PDC 上面拥有的账号与密码来尝试登入吧!那如果你输入的账号密码是对的,却发现如下的画面时, 肯定是某些档案权限或者是 SELinux 设定错误!请参考 /var/log/messages 或 /var/log/samba/* 里面的登录档来修改!

使用 PDC 账号登入却发现权限错误的图示
图 16.4-9、使用 PDC 账号登入却发现权限错误的图示


  • 4. 观察用户的家目录与配置文件

如果你可以顺利登入的话,打开档案总管后应该可以看到类似下方的画面:

登入 PDC 后,取得的家目录状态
图 16.4-10、登入 PDC 后,取得的家目录状态

呵呵!该连上的通通连结上来啰!你也可以在自己的家目录 (K 槽) 新增移除数据的!是否很不错啊! ^_^! 而当你注销之后,你在 Windows 桌面上头所进行的各项个人化设定通通会被移动到 /winhome/dmtsai/profile 当中喔! 如果不相信的话,请自行前往 Samba 服务器上头瞧一瞧就知道了。


小标题的图示16.4.4 Wimdows 7 的客户端

根据 SAMBA 官网的说明,支持 Windows 7 的 Samba 版本必须要高于 3.3.x 才行,还好,我们的 CentOS 6.x Samba 版本真的是高于 3.3.x 的 3.5.x,因此理论上是支持 Windows 7 的!只不过 Windows 7 要加入 Samba PDC 还得要修改注册码才行!这部份真的是给它很困扰!在 Windows 7 机码的修改方面,主要是修改底下的机码:

# 1. 这个部分是进行『新增』机码!
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]
“DomainCompatibilityMode”=dword:00000001
“DNSNameResolutionRequired”=dword:00000000

修改的方式为,在 Windows7 的执行里面输入『 regedit 』,会出现如下的画面:

Windows 7 注册机码的动作
图 16.4-11、Windows 7 注册机码的动作

先由 (1)左侧窗口一层一层点选到我们所需要的目标去,然后 (2)观察最底下的机码顺序看对不对。之后 (3)在右侧窗口点选我们所需要的机码,如果是要新增,那就是在右侧空白处右键单击选新增即可增加一组机码名称。最后 (4)双击机码会出现可供修改的窗口,那就改成上面表格中的要求即可。更多关于 Windows 7 加入 PDC 的相关资料, 请查阅文末的参考数据部分喔。

等到将机码修订完毕,你就可以使用与 Windows XP 相同的方式来加入 PDC 啰!


小标题的图示16.4.5 PDC 之问题克服

如果老是发生错误讯息为『使用的帐户是计算机帐户。请使用你的通用用户帐户或本机用户帐户来存取这台服务器』时, 你可以这样做的:

  • 先察看一下 /var/log/samba 里面的登录文件信息,尤其是 log.vbirdwinxp 关于这部主机的信息吶;

  • 如果还是无法解决,可以在 lmhosts 里面增加 vbirdwinxp 的 IP 与主机名的对应,然后将 samba 整个关掉『/etc/init.d/smb stop』,等待一段时间让 NetBIOS 的名称解析时间逾时,再重新启动 samba 『/etc/init.d/smb start』,然后再重新做一次输入 root 的密码那个动作

在鸟哥尝试过的案例中,上面第二个步骤挺有效的!不过,还是得要察看 /var/log/samba 里面的登录信息才行喔!


  • 一些 Windows 账号在 Windows 系统上面的使用技巧

虽然 PDC 很好用,不过你要注意的是,每次你使用 PDC 上头的账号登入 Windows 客户端主机时, Windows 主机会由 /winhome/username/profile/ 当中加载所需要的数据, 并暂时启动一个文件夹在 Windows 系统的 C:\Documents and Settings\username 当中,如果你的家目录下的 profile 数据太多时, 光是传输就会花去很多时间的!

所以,你应该将一些档案数据放置到你的家目录下,亦即 K 槽当中,尽量不要使用 Windows 预设的『我的文档夹』, 因为『我的文档夹』会将数据移动到『 /winhome/username/profile/My Documents/ 』目录下,同样的, 储存到桌面的数据会被放置到『 /winhome/username/profile/桌面/ 』目录中,那样在登入与注销时会花去很多时间喔! 这个小地方也要注意的呢! ^_^

好了,关于 SAMBA 的 PDC 作法我们就谈到这里,还有更多的信息你可以前往这个章节最后面的参考数据所列出的网址去查阅, 因为还有很多的作法吶!事实上,鸟哥觉得在一个网域当中,如果有多部的 Windows NT 主机,例如 Windows 2000/XP pro. 这一类的比较稳定的个人使用桌面版本时,使用 PDC 就很有用了!因为 Windows 2000/XP pro. 也是一个多人的操作系统,不像 Windows 98 是单人的操作系统。所以,当使用 Windows 2000/XP pro. 而无法登入 PDC 时,你是无法使用 Windows 2000/XP pro. 上面的任何的信息的。 但是在 Windows 98 上面若无法正确的登入,你仍然具有该计算机的主控权喔!

另外,设定 Windows 客户端之前,请先确认你的 Windows 是什么版本? 上述的动作对于 Windows XP 家用版 (Home), Windows 7 是没有作用的!请先确认才行喔!

 

   

posted on 2014-03-26 16:01  牛X浪人  阅读(346)  评论(0编辑  收藏  举报