我有一個文件夾樹,我複製到C:\ ProgramData我安裝的軟件(不要怪我,我沒有設計,編寫或設計它)需要全部控制每個人的這個數據。InnoSetup的文件夾權限遞歸設置
所以我把在[文件] sectionL
Source: "C:\ProgramData\PFPS\MapDataServer\*"; DestDir: "C:\ProgramData\PFPS\FalconViewCommand"; Flags: ignoreversion createallsubdirs recursesubdirs; Permissions: everyone-full; Excludes: "*.LDF"
是的,這確實給大家每個單獨的文件的完全控制權,但該方案需要創建文件和文件夾的權限(目錄)是以下行不是爲大家設定的。
我嘗試添加[迪爾斯]節,但沒有奏效:
[Dirs]
Name: "C:\ProgramData\PFPS\FalconViewCommand"; Flags: uninsalwaysuninstall; Permissions: everyone-full
什麼大師說?
的'[迪爾斯]'項應該工作,但你應該使用'{commonappdata} '而不是硬編碼'C:\ ProgramData'。 (是的,像這樣授予權限通常是設計得很差的應用程序的標誌。)您是否曾嘗試徹底卸載應用程序並確保在運行安裝之前該文件夾不存在? – Miral
@Miral如何將程序數據的graning權限設計爲糟糕的設計?這是推薦用於存儲系統範圍應用程序設置的地方... – ghord
首先,因爲大多數人默認需要系統範圍的設置,因爲他們根本沒有充分考慮到它,意識到人們可能想要在用戶級別定製它們。 (更容易,更好。)其次,因爲任何可寫入所有用戶的內容都會受到所有用戶(或其帳戶中運行的病毒)的固有篡改,從而增加此類損害的影響。最後,因爲對所有用戶都可讀的內容可能會侵犯隱私。很明顯,並非所有這些論點都適用於所有事情,但令人驚訝的是,很少有人甚至想到。 – Miral