凭什么要这么大的权力?

原创 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日补充:参考文章:不被流氓软件骚扰其实不难

一个人要明白自己要什么

我不想一味地听什么担当的鬼话,我连自己要什么都不知道,怎么去担当? 难道我为我不要的东西花时间、我不喜欢的东西消耗生命就是担当吗? 这到底是什么逻辑啊。感恩帮助我的人,感恩父母。其他的,我...
  • maqingqing1992
  • maqingqing1992
  • 2015年06月20日 17:15
  • 179

马云: 带团队,你得问自己,人为什么要跟着你混?

第一,钱,没给到位; 第二,心,委屈了。 这些归根到底就一条:干得不爽。...
  • lechengyuyuan
  • lechengyuyuan
  • 2014年10月10日 19:25
  • 945

诸葛亮出山前也没有带过兵啊,凭什么要求我有工作经验?

某同学抗议企业招工时要求应届生有工作经验: “诸葛亮出山前也没有带过兵啊,凭什么要求我有工作经验?”   条件语句:如果x被录用,那么x有工作经验 首先我们为企业的招工要求写个条件...
  • a785334531
  • a785334531
  • 2017年12月23日 22:50
  • 99

为什么HDFS中的块如此之大?

HDFS中的块大小默认为64MB,为什么说它如此之大,这是与磁盘块相比得出的。所以在了解HDFS块之前,我们需要了解下磁盘上的块。...
  • baidu_35570545
  • baidu_35570545
  • 2017年06月22日 08:35
  • 637

今年的雪,特别的大

今年的雪,特别的大,爸爸还有妈妈,回不了家。有群坏人,来把人吓,烧了我的学校,砸我的花。那个喇嘛,叽里呱啦,长鼻子的洋人,假装眼瞎。巴黎铁塔,伦敦警察,抱火炬的姐姐,人见人夸.汽笛嘟嘟,铁轨哗哗,去天...
  • zj53hao
  • zj53hao
  • 2008年05月16日 11:07
  • 968

20岁重剑,30岁长剑,40岁木剑

曾经有个师兄说,用txt也页面的,要不就是高手,要不就是新手 哥真的找不到什么工具写页面好,所以就只能用txt写了...
  • avi9111
  • avi9111
  • 2015年03月19日 00:19
  • 650

我凭什么要相信你?

“除了哭,她什么也不会。” 你为什么不能给我一个机会? 上周收到一封邮件。是来应聘我们实习生的。 最近我的公司在招实习生,她是在简历环节就被刷下来的,她很不服。 她说,“我按照规定回答了问题,...
  • xsxy_2015
  • xsxy_2015
  • 2016年08月22日 22:40
  • 85

软件测试人员的权利法案

软件测试人员的权利法案原文:The Software Tester’s Bill of Rights – I.B.Phoolen STP电子杂志的08年第4期中有一篇名为《The Software T...
  • Testing_is_believing
  • Testing_is_believing
  • 2008年04月09日 22:11
  • 4451

工作为什么这么辛苦?

第一天来软件公司上班才发现原来是这么的辛苦,而且公司的员工对于新员工也是很冷淡?谁能提提意见??...
  • fatom6653223
  • fatom6653223
  • 2008年04月23日 16:49
  • 216

《权力的游戏 第七季》9大家族汇总

马丁的小说《冰与火之歌》宏大中带着唯美的血腥,HBO改编推出《权力的游戏》电视剧,延续了以往的出色。更是堪称经典中的经典,吸粉无数,如今已经更新到第七季,并于2017-07-16美国上映,国内各个下载...
  • iktz_cn
  • iktz_cn
  • 2017年07月21日 15:04
  • 333
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:凭什么要这么大的权力?
举报原因:
原因补充:

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