凭什么要这么大的权力?

原创 2006年06月02日 22:46:00

自然而然的,当我们安装完Windows后,我们就拥有一个管理员帐号,并且毫不犹豫地使用它,在Windows2000里,这个帐号是 Administrator,在XP里,它也存在,但由于在安装过程中会要求我们指定一个新的帐号(张三、李四或王二麻,它具有与管理员同样大的权限),所以一不小心就忘记Administrator的存在,特别地,做为一种(传统)习惯,大多数Adminstrator会忘记设置密码了。:(

好象,我们天生就应该在管理员帐号下做事,从来没有仔细想想,为什么Windows会划分出不同权限的帐号,也没有想想,用Office录入一些文档、用记事本写几行留言,玩玩游戏,上网聊聊天、浏览几个网站……这些普普通通的日常操作,凭什么就必须要求管理员权限呢?

什么是管理员,顾名思义,这个帐号是用来管理和维护计算机的(如安装新程序、更动配置),这个帐号具有至高无上的权力,它可以访问计算机中的任何一个文件夹、注册表中的任何一个键!!假定你的浏览器缺少一个关键补丁,当它访问一个恶意网站里会受到攻击,这个时候,如果你是在管理员帐号下,则病毒可以轻松地修改你的注册表(主要是 HKEY_LOCAL_MACHINE和HKEY_CLASSES),而如果正好和我一样,仅用Users这个组的用户去浏览网站,那么病毒根本没有权力碰到我的注册表(中的上述两个根键),它也完全无法伤及Windows、Program Files这些关键文件夹……

当然,做为一个程序员,为了调试程序,我这个仅仅有Users权限的帐号,还必须同时是“Debugger Users”组里的成员,特别的,当我使用VS2003的时候,我还同时隶属于“VS Developers”组……为什么要这么麻烦呢?原因是:

  • 我一边敲代码一边浏览网页的时候,不用担心被恶意网站攻击(虽然我现在用FireFox,受到攻击的可能性要比用IE小一些),就算我的浏览器有安全缺陷,但这个有BUG的程序没有权力动我的注册表。
  • 如果我有什么不小心的操作,或者不小心写错的代码,它们都不会误伤注册表(因为我只能访问HKEY_CURRENT_USER这个根键),也不会误伤到Windows目录和Program Files这两个关键文件夹,以及“Documents and Settings”中不属于我这个帐号的别人的东西。
  • 在设计和调试时,因为我的帐号权限不足于让我为所欲为,我就不会写出一些胡作非为的代码(比方说以读写方式访问HKEY_LOCAL_MACHINE、往Program Files下面写文件等),这样设计出来的代码会更加符合Windows的规范。作为一个例证,Delphi里著名的Id套件中的TIdIcmpClient,它必须在管理员帐号下才能正常工作,否则就会有一个SOCKET的10013错误,如果它的开发工作是在非管理员帐号下进行了,这种错误就会在第一时间内被发现

以上三点,最后一条特别重要,试想,象MS Office、Delphi、Visual Studio、Flash、Dreamweaver等商业软件,哪一个是必须要求在管理员帐号下运行的?因为它们都无一例外地做到了它们应该遵守的守则:

  • 永远不往程序自身目录写,因为程序通常被安装到Program Files文件夹里,该文件夹对于普通用户来说,是只读的。与之相反,很多(特别是国产)程序很喜欢往程序自身目录里写配置数据,而不是象微软推荐的那样,在注册表的HKEY_CURRENT_USER/Software/xxx键里存放用户自己的私有数据,或者用SHGetFolderPath来取得用户的私有文件夹。
  • 永远不往HKEY_LOCAL_MACHINE键中写,如果要打开这个键,一定用只读方式(为RegOpenKeyEx指定KEY_READ参数)。
  • 永远不用只读权限以外的权限去访问Windows这样的特殊目录。
  • 在访问内核对象的时候,一定会记住在访问之前,获得必需的特权。
  • ……

如果我们设计一个基于MSSQL的数据库应用系统,我们可以告诉客户”该程序必须以SA权限登录到数据库“吗?如果不是,那么,为什么我们的程序,就非得在管理员帐号下,才能正常运转呢?


(2006.8.17日补充:参考文章:不被流氓软件骚扰其实不难
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

权力

权力 科技名词定义 中文名称: 权力 英文名称: power 定义: 达到某种目的的能力。多指个人之间或群体之间或国家之间的关系特征。 应用学科: ...

监理工程师岁月--权力的诱惑

我说过我所在的监理公司比较廉洁,基本上没有吃拿卡要的事情,但是现实中我们这样的公司并不是很多,就跟影视圈一样纯洁的不是没有,但是大家想起来评论起来还是首先想到潜规则,监理单位和施工单位也有潜规则,潜规...

产品经理的权力之争

产品经理的权力之争   2009年9月30日,我在出门的时候就想好了,今天就是去公司和大家做个国庆告别,然后再混一天,等6点一到,立马提包走人,开始享受我的国庆假期。 但是老天就是这么作弄人,今...

献计《权力的游戏》珊莎•斯塔克

前言《权力的游戏》第六季已经上映七集了。以往五季剧情在小说(书本)中都已发生,纵然有些许改动,也与原著没有根本走向上的不同。然而第六季则不一样,剧情已经超出了小说的范围,一切都是未知,即使原著党也不知...

文档总结:linux中的用户操作与权力下放

1.用户理解用户就是系统使用者的身份 在系统中用户存储为若干窜字符+若干个系统配置文件 用户信息涉及到的系统配置文件: /etc/passwd ###用户信息 用户:密码:uid:gi...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)