Windows Vista系统账户保护机制初探
2006-03-31 13:42:39 来源:WEB开发网当然,如果你喜欢使用命令行方式,也可以运行CMD打开命令提示符,使用类似这样的命令:“runas user:要使用的用户名 要运行的程序的路径和名称”,按下回车,并输入该用户的密码。例如通过“runas user:administrator regedit”这样的命令就可以使用Administrator的身份运行注册表编辑器。
虽然我们可以在平时使用权限低的用户名登录,但在需要执行特定操作的时候使用runas命令,不过这还是有些麻烦,同时需要进行的额外操作也太多。为了解决这一问题,Vista中提供了UAP功能。
在介绍这个功能之前,我们先了解一下Windows中的各种权限是如何控制的。这部分主要以单机或工作组环境下的Windows XP Professional为例,同时也适用于Windows 2000/2003,不适用于Windows 98。
系统安装好后,所有用户的凭据信息(也就是用户名和密码)都被保存在本地SAM(Security Accounts Manager,安全账户管理器)数据库中。当用户登录系统时,首先要输入用户名和密码,这些信息由winlogon进程获取,并由LSA(Local Security Authority,本地安全验证)子系统提交到SAM数据库中验证。
如果SAM数据库中有符合条件的记录,那么LSA子系统就会生成一个访问令牌(Access Token),并传递给用户。当该用户需要运行程序或访问资源的时候,系统首先会在用户持有的访问令牌中查找相应的权限信息,然后和想要进行的操作所需要具有的权限进行比较,如果权限足够,那么就可以进行操作;反之操作则会被禁止。
以运行程序为例,当我们试图启动一个程序的时候,系统会使用我们的访问令牌来启动程序,这样被启动的程序就拥有了和令牌所有者一样的权限。为了证实这一点,我们可以打开Windows任务管理器的进程选项卡。该选项卡下列出了当前系统中的所有进程,每个进程在“用户名”一栏就显示了该进程的“身份”。
更多精彩
赞助商链接