有关域环境下的SID号的问题
2010-05-27 08:32
155 查看
操作系统在标识用户和计算机的时候,并不是根据名称来辨识的,而是依据SID号来区分的,什么是SID号呢,SID的中文名称叫做安全标识符,这个东西有点类似于我们人的身份证号,是一串很长的字符,当你建立一个账户的时候,系统会给它分配一个SID号,当你把这个账户删除后,再建立一个同名账户,哪怕密码也设置成一摸一样,但这两个账户绝对是不同的,因为SID号不一样。要想查看一个账户或者计算机的SID号,需要使用一个工具,这个工具就是sysinternals出品的名为psgetsid的工具,下载地址:http://live.sysinternals.com,这是个命令行的工具,需要在CMD环境下运行,当你第一次运行的时候会出现一个使用协议的对话框,如下图:
点击“agree”或者直接敲回车键就可以了。如果不给任何参数的话,默认查看的是当前计算机的SID,要想查看某个账户的SID,在命令后面跟上具体的某个账户的名字就可以了。
在域环境下,域也有SID号,这个SID和这个域的第一台域控制器的SID相同,如下图:
图上,域名为cdtb.com,server2是这个域的第一台域控制器,可以看出,这两者的SID号相同。然后我们在AD中建立一个名为test的账户,并查看这个账户的SID号:
从图中可以看出,名为test的账户的SID号=域SID+一个数字,而这个数字又被称为RID(相对ID)。
我们都知道,在微软的域环境下,为了避免单台DC带来的稳定性和可靠性的问题,在一个域中至少需要搭建两台DC。而如果我们不想让某个DC继续担任DC的角色的时候,需要卸载它上面的活动目录组件。那天,一个学生问我,既然一个域的SID是和第一台域控制器的SID相同,如果在有多台DC存在的情况下,把这个域的第一台DC上的活动目录卸载了,使其成为一台成员服务器,那这个域的SID会改变吗?
说实话,这个问题当时还真的难倒我一会儿,我还真没考虑过这个问题,也没做过这种实验,但是凭着经验和理论知识判断,域的SID号不会变,但我没有百分百的把握,大概有8成把握吧,我为什么会这么判断呢,因为SID和安全设置相关,如权限的设置,如果降级一个域控制器导致域SID的改变,那么原来的安全设置全部失效,这极其不合理,所以我才敢断定域的SID号不会改变。但这终究是停留在理论上,还是需要用事实去证明,所以我用VPC搭建了实验环境,上面的截图就是这个实验环境下的,然后成功将这个域的第一台域控制器降级成为一台成员服务器(具体过程不详述,请查阅相关资料),紧接着登录一台DC,使用psgetsid去看域的SID和那个test账户的SID有没有变化,如下图:
很明显,SID号没有发生变化,和我的推测完全一样。那被降级成一台成员服务器的那台机器(也就是原主域控制器server2)的
SID号有没有发生变化呢?使用psgetsid查看,如下图:
很明显,SID号变了,由此可以推断在从域控制器降级成成员服务器的过程中,重新产生SID号。而实际上,在域环境下,所有域控制器的SID和域的SID是相同,换句话说,当你把一个Server版本的操作系统提升成域控制器的时候,它的SID会改成域的SID,而相反,当把某台域控制器进行降级的时候,会产生新的SID,这个新的SID应该是随机产生的。
点击“agree”或者直接敲回车键就可以了。如果不给任何参数的话,默认查看的是当前计算机的SID,要想查看某个账户的SID,在命令后面跟上具体的某个账户的名字就可以了。
在域环境下,域也有SID号,这个SID和这个域的第一台域控制器的SID相同,如下图:
图上,域名为cdtb.com,server2是这个域的第一台域控制器,可以看出,这两者的SID号相同。然后我们在AD中建立一个名为test的账户,并查看这个账户的SID号:
从图中可以看出,名为test的账户的SID号=域SID+一个数字,而这个数字又被称为RID(相对ID)。
我们都知道,在微软的域环境下,为了避免单台DC带来的稳定性和可靠性的问题,在一个域中至少需要搭建两台DC。而如果我们不想让某个DC继续担任DC的角色的时候,需要卸载它上面的活动目录组件。那天,一个学生问我,既然一个域的SID是和第一台域控制器的SID相同,如果在有多台DC存在的情况下,把这个域的第一台DC上的活动目录卸载了,使其成为一台成员服务器,那这个域的SID会改变吗?
说实话,这个问题当时还真的难倒我一会儿,我还真没考虑过这个问题,也没做过这种实验,但是凭着经验和理论知识判断,域的SID号不会变,但我没有百分百的把握,大概有8成把握吧,我为什么会这么判断呢,因为SID和安全设置相关,如权限的设置,如果降级一个域控制器导致域SID的改变,那么原来的安全设置全部失效,这极其不合理,所以我才敢断定域的SID号不会改变。但这终究是停留在理论上,还是需要用事实去证明,所以我用VPC搭建了实验环境,上面的截图就是这个实验环境下的,然后成功将这个域的第一台域控制器降级成为一台成员服务器(具体过程不详述,请查阅相关资料),紧接着登录一台DC,使用psgetsid去看域的SID和那个test账户的SID有没有变化,如下图:
很明显,SID号没有发生变化,和我的推测完全一样。那被降级成一台成员服务器的那台机器(也就是原主域控制器server2)的
SID号有没有发生变化呢?使用psgetsid查看,如下图:
很明显,SID号变了,由此可以推断在从域控制器降级成成员服务器的过程中,重新产生SID号。而实际上,在域环境下,所有域控制器的SID和域的SID是相同,换句话说,当你把一个Server版本的操作系统提升成域控制器的时候,它的SID会改成域的SID,而相反,当把某台域控制器进行降级的时候,会产生新的SID,这个新的SID应该是随机产生的。
相关文章推荐
- 有关域环境下SID号的问题(续)
- 有关域环境下SID号的问题(续)
- root用户Linux 环境变量的配置解决(-bash: jps: command not found)有关问题
- 有关JDK版本自动升级、java环境变量的问题
- 有关Jfinal在jetty环境下开发,tomcat环境下发布造成的问题解决心得。
- 解决有关Ext Grid导出Excel在JSP等环境中不可用的问题
- 【转】有关环境变量的若干问题?
- 测试环境中封装 Windows Server 2008 R2 SID 问题
- Elasticsearch生产环境遇到的有关问题以及解决方案
- javax.net.ssl.SSLHandshakeException: sun.security.validator 问题解决,与环境有关
- 有关linux的环境变量设置问题
- win2003下php开发有关环境搭建问题
- HttpClient_javax.net.ssl.SSLHandshakeException: sun.security.validator 问题解决,与环境有关
- 有关java环境配置的 JAVA_HOME path classpath 问题
- 关于spring security的权限验证有关问题
- php开发和调试环境的配置+出现 57% waiting for xdebug session的问题
- Xcode下搭建opencv环境碰到的一些问题
- Android 源码环境搭建配置与问题解析(二)
- 使用和众达仿真器CCS3.3.8环境调试出现tconf.exe不能工作问题解决方法