Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2120357
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:12:00


  在2000/XP/2003系统中,每个用户帐号都对应着一个唯一的字符串,这就是标识符“security identifiers(SID)”,并且系统也是根据SID来识别用户或组的,以及分配它们相应的访问权限。那么如何找出用户帐号对应的SID呢?下面笔者就介绍2种方法。
  
  方法一:使用SID工具
  
  点击“开始-->运行”,在运行对话框中输入“cmd”命令,回车后弹出命令提示符窗口,切换到SID工具所在的目录下,接着输入“sid local”命令,就列出本地系统所有的用户帐号及其帐号对应的SID,这样用户就能很方便的查找到所需要的SID,如本地系统的rtj帐号,从命令执行结果可以看出,它对应的SID项目为“S-1-5-21-436374069-813497703-682003330-1004”,其中最后一段数字“1004”转换成16进制就为“3ec”,与注册表中的该帐号的标识信息对应。
  
 

  小提示:用户帐号的标识符(SID) 永远都是唯一的,它是由计算机名、当前时间以及当前用户态线程的CPU耗费时间总和三个参数决定的。格式为:S-R-X-Y(1)-Y(2)-……-Y(N),其中S表示该字符串是SID,R是SID的版本号, X是标志符的颁发机构 (identifier authority),Y表示一系列的子颁发机构,前面几项是标志域的,最后一个Y(N)标志着域内的用户帐户和组。
  
  方法二:使用whoami命令
  
  whoami是Windows2000资源工具箱中的一个命令,它同样可以用来查找用户的SID。在命令提示符窗口中输入“WHOAMI /USER /GROUPS /SID”命令,接着就显示出本地系统所有的用户帐号及其帐号对应的SID,这样就能查找到所需要的帐号SID了。
  
  小提示:用户帐号的sid信息存放注册表中,具体位置为“HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users”,注意:要赋予用户有访问“SAM”项的权限,才能进行浏览。下面的十六进制项就是用来标识不同的用户帐号,以笔者机器为例,用户Administrator的为“000001F4”,guest帐号为“000001F5”,其它的每一个十六进制项都对应一个用户帐号,此外,在Names项下保存着用户帐号名。
  

  当添加一个新用户时,系统会在“HKEY_LOCAL_MACHINE \SAM\SAM\Domains\Account\Users”下添加一个新的sid项来标记这个用户帐号,同时还会在“HKEY_LOCAL_MACHINE \SAM\SAM\Domains\Account\Users\Names”下创建一个用户名的项,而该项的类型就为这个新的sid。
【责编:admin】

--------------------next---------------------

阅读(407) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~