非用戶管理員權限下對系統目錄的讀寫-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目錄,儘量避免普通應用程序以管理員身份運行,除非程序的安裝和修改一些系統配置才需要授權,這樣才能根本上解決很多安全問題,否者人人管理員間諜流氓簡直就是暢通無阻啊,隨時可以對系統爲所欲爲,防不勝防。
不過爲了兼容以前無數不規範的軟件,才搞出個這麼個東西。

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