2011-05-16 112 views
0


我有一個文本文件。我需要以下內容:
1.防止刪除文件。
2.防止更改文件。
即使程序沒有運行。這可能嗎?也許通過使用該服務?
應用程序的用戶可以將新數據添加到文件。防止文件被刪除和更改

一般:我需要防止我的文件從刪除和任何更改(在我的應用程序之外)。
謝謝。

+1

它不會被視爲病毒嗎?如果程序創建了一個無人可刪的文件? – 2011-05-16 16:07:42

+1

這不是一個編程問題。您不通過編寫程序或Windows服務來解決此問題。相反,您可以通過使用組策略和其他安全設置來解決此問題。 Windows爲這類事情提供了開箱即用的支持,遠不如您自己可以實現的任何東西都脆弱。詢問有關[Server Fault](http://www.serverfault.com/)上的問題。 – 2011-05-16 16:10:58

+0

這不是你的系統,它是別人的,他們決定自己的系統。您只能將ACL分配給該文件,但用戶可以隨時通過管理權限將其刪除。爲什麼你需要防止對文件進行更改? – 2011-05-16 16:11:23

回答

2

這將是你對文件權限所做的事情。在文件安全設置中,您可以設置誰可以刪除文件,誰可以修改文件等。您可以讓應用程序提升其權限以修改文件。

如果應用程序未運行,則無法保護文件本身。將應用程序作爲服務運行將允許它保持運行,這將允許它對文件執行一些保護操作,但您需要第二個應用程序與用戶進行交互,然後您也將執行操作系統的工作。提升C#應用程序內部的權限比嘗試通過代碼執行您的操作要容易得多。

+0

這只是部分正確。特權用戶(管理員,超級用戶)將能夠刪除文件,而不管設置的權限如何。雖然如果您創建服務以確保文件在刪除時被替換,但是同樣的問題,特權用戶可能會終止服務。沒有萬無一失的方法可以做到這一點,但如果在設計解決方案時牢記這一點,就可以達成可行的妥協方案。 – Bueller 2011-05-16 16:14:28

+0

如果是這樣:如果程序未運行,請將文件保存在服務中,如果程序處於打開狀態,則關閉服務中的文件。我想說的是可以在程序和服務之間進行溝通? – user348173 2011-05-16 16:26:46

1

您可以使用Windows RBS來確保只能由管理員和您的程序創建並可在該上下文中運行的特定系統用戶修改或刪除該文件。

切勿阻止管理員訪問文件;您將從應用程序的用戶處捕獲七層地獄,這些用戶在卸載應用程序時無法刪除這一個文件(因此無法刪除安裝文件夾)。