非用户管理员权限下对系统目录的读写-virtual store

win7 下,个人的配置文件会自动保存在C:/Users/***XX/AppData/Local/VirtualStore/Program Files/MyApp/***.ini里,而原先安装在C:/Program Files/MyApp/***.ini则没有改变,产生这样的转存原理如下:

 

这个当权限不够时,保证兼容性的做法。
比如往program files 或某些系统目录要写入东西,会保存配置文件,权限不够,就会被重定向到这里。
比如往program files安装软件,一般安装程序会触发UAC提升权限,当然不会有问题。
但每次运行program files中安装的程序都触发UAC时不现实的,太烦人了,大多数程序运行时并不会触发UAC,处于受限模式,但往往很多软件运行后又会往自己目录下保存写配置,临时文件之类的,肯定没权限写入program files,所以为了运行不出错就被重定向了,骗过软件认为自己成功写入了,不至于出错。
你可以发现,这里保存的文件大多数是程序运行过后的一些配置或临时文件之类的。

而本来的目录下可能无法找到这些文件,但会出现一个兼容性文件夹,点了就可以跳到VirtualStore中的对应目录,一般开UAC的才会遇到这个,刚装好就关闭UAC就不会出现了。


这属于98开始,2000虽然有完善的权限级别,可惜习惯了人人管理员,等于摆设。
UAC逼开发者规范下,避免往系统目录写东西,配置最好放用户自己的appdata目录,尽量避免普通应用程序以管理员身份运行,除非程序的安装和修改一些系统配置才需要授权,这样才能根本上解决很多安全问题,否者人人管理员间谍流氓简直就是畅通无阻啊,随时可以对系统为所欲为,防不胜防。
不过为了兼容以前无数不规范的软件,才搞出个这么个东西。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章