在今天很多人都有意识或无意识的跟域这个东西打过交道。如果你在公司里使用电脑,并且你的电脑接入了公司的局域网,那你的电脑很可能就在一个域中。如何查看你的电脑是否连接到一个域中,以Windows为例,右击我的电脑 –>属性,可以看到,我现在使用的这台电脑就加入了一个域。

112845782.png


域已经成为绝大多数公司组织、连接电脑的一种方式。那么我们究竟为什么要使用域?它能给我们带来什么好处呢?假设你是公司的系统管理员,你们公司有一千台电脑。如果你要为每台电脑设置登录帐户,设置权限(比如是否允许登录帐户安装软件),那你要分别坐在这一千台电脑前工作。如果你要做一些改变,你也要分别在这一千台电脑上修改。相信没有哪个管理员想要用这种不吃不喝不睡觉的方式来工作,所以就应运而生了域的概念。


还以Windows为例,在微软的世界中,一个域是由一个或多个域控制器(domain controller)来控制的(其实域控制器并不神秘,无非就是装了一些特别软件的电脑)。其他的电脑加入该域,就要接受域控制器的控制。域控制器中有两个重要的表,一个是加入该域的电脑的列表,另一个表用来保存叫做活动目录(Active Directory)的东西。活动目录就是你登录公司网络的帐户。活动目录中存储着你的权限。你在某台电脑上登录,你键入用户名和密码,你的电脑首先要把你的登录信息发送到域控制器,域控制器首先核实你的登录信息是否正确,然后把一个叫access key的东西返还给你登录的电脑。这个access key中就包含着你的权限,由它来决定你是否可以安装软件,或者使用打印机等等。

112903164.png

有了域以后,作为管理员,你就可以坐在一台电脑前,登录到域控制器上,对一切权限进行控制,而不用跑到每台电脑前进行设置了。工作效率提高了很多,但是还不够。假设公司有一千名员工,你是否要在域控制器中对这一千个人分别进行权限的设置呢?这听起来也是一件很麻烦的事。其实很多员工的权限都是相同的,那我们可不可以对这些相同的权限只设置一次,然后将该权限分配给相关的员工呢?答案就是使用分组(Group)。比如在学校里,我们设置学生组和教师组。在某台电脑上我们设置一个共享文件夹,学生组的权限是不可访问,而教师组可以对该文件夹进行访问。我们将不同的用户放入不同的分组里,然后对组进行权限设置,这样就免去了我们要对每个用户进行设置的麻烦。比组更大的单位是组织单位(Organization Unit),一个组织单位可以包含用户,组,资源(电脑,打印机等),还可以包含其他组织单位。举个简单的例子,有一个商场中的电脑加入了该商场的域,但是该电脑放置在公共场合,有很大的风险,所以我们可以将该电脑放置在一个单独的组织单位中,然后对该组织单位进行权限设置,比如不论谁在该组织单位中登录,都不可以修改他的密码。

112921714.png

在很多的实际情况中,一个公司又有下面的子公司,所以就造成母公司有一个域,而子公司也有一个单独的域。母公司的域与子公司的域如何联系起来呢?我们可以在它们之间建立一种叫信任(Trust)的关系。如果母公司的帐户想要能够登录到子公司的域中,子公司的域就要对母公司的域建立信任关系。当母公司域的帐户想要登录到子公司域中时,子公司域由于信任母公司的域,所以它会听从从母公司域的域控制器返回的access key。反过来,由于母公司的域没有建立对子公司的信任,所以如果子公司的帐户想要登录到母公司的域中是不可能的。

112947250.png

虽然我们上面的例子都是Windows的域,但域这个概念绝不是微软独创的。你也可以在Linux中使用一个叫Samba的软件来创建域。如果你要用Windows搭建一个域环境的话,要注意两点:

(1) 加入域不能使用Home版的Windows操作系统(顾名思义它是给你在家用的,而你家里是不用搭建域的)。

(2) 域控制器不能使用web edition server,因为它没有安装活动目录。


在现实环境中,有很多公司在域中使用多个域控制器,因为如果只使用一个域控制器的话,一旦域控制器不能正常工作,整个域就会瘫痪。在Samba中,Linux使用两个域控制器,一个是主域控制器,一个是备份域控制器。一旦主域控制器发生故障,备份域控制器就开始工作,直到主域控制器恢复正常。备份域控制器就是一个主域控制器的拷贝,但是它的数据都是只读的,也就是说管理员不能在备份域控制器上修改权限。

113001944.png

在Windows的域中,不使用主域控制器与备份域控制器,每个域控制器充当的都是一样的角色,比如你有三个域控制器,你可以在任何一个域控制器上对用户的权限进行修改,你的修改将被复制到其他两个域控制器中。同样,如果一个域控制器发生故障,只要其他的域控制器还能正常工作,整个域还是可以正常运行。

113014639.png

最后再列举两条有用的命令:

列举出域中所有的域控制器: NETDOM QUERY /D:MyDomain DC

查看你是使用哪个域控制器登录的:echo %logonserver%


http://www.cnblogs.com/jfzhu/archive/2012/10/11/2719285.html