我已經創建了Installshield 2015(Installscript),它將.NET應用程序安裝到安裝目錄中。Installshield:調用icacls來更改特殊文件夾的寫入權限
.NET應用程序依賴於SQL CE 4.0數據庫。
安裝過程在管理員或本地管理員帳戶下運行。
在Installshield項目中,我將清空的SQL CE 4.0數據庫.sdf文件放入[CommonAppDataFolder]中。
的Windows Vista(或更高版本):安裝過程中會在以下位置的數據庫複製C:\ ProgramData \ MyCompany的\ MYAPP \ database.sdf
在安裝過程結束時,MSI將調用一個批處理文件來設置寫權限這樣的「用戶」組(因爲創建在commonAppData文件夾中的文件時,所採取的所有權):
icacls C:\ProgramData\MYCOMPANY /T /grant *S-1-5-32-545:W
該應用程序將下一個標準的用戶處理來執行(未升高的由UAC提供),以便通過「用戶」組的成員連接和寫入壓縮數據庫。
我想知道是否允許我在不爲IT管理員創建安全漏洞的情況下執行'icacls'命令,以及是否必須考慮其他組SID?
預先感謝您的回覆,
旁邊的問題(在你弄清楚這是否是個好主意之後):你是否考慮過使用SetObjectPermissions來避免對icacls進行shell化? –
完全沒有,我會考慮使用它,因爲它看起來像使用installscript處理ACL分配的更優雅的方式。 – user4953001