2 Stimmen

Wie man eine Datei in Windows schützt

Update 3: Der eingeschränkte Zugriff über das Sicherheitsfenster funktioniert jetzt. (das ist manuell) Suche jetzt nach einer Möglichkeit, dies programmgesteuert zu tun (mit Visual C#) und auch, wie auf eine Datei mit einem Administrator-Konto von einem einfachen Benutzerkonto aus zuzugreifen. Hinweis - Ich habe diese Funktion in Windows bemerkt, Rechtsklick und 'Als Administrator ausführen' wählen, das Administratorpasswort eingeben und dann kann man auf die Datei zugreifen.

Update 2: Habe herausgefunden, wie man das Sicherheitsfenster anzeigen kann

Um das Sicherheitsfenster anzuzeigen

Ordneroptionen in der Systemsteuerung öffnen. (Klicken Sie auf Start, Systemsteuerung, Erscheinungsbilder und Designs, und dann Ordneroptionen.)

Auf dem Registerkarte Ansicht, unter Erweiterte Einstellungen, das Häkchen bei Einfache Dateifreigabe verwenden entfernen [Empfohlen].

Update 1: Ich habe den folgenden Artikel gefunden, der vorschlägt, wie man Berechtigungen für Dateien vergibt, allerdings finde ich das Sicherheitsfenster nicht, wenn ich auf Eigenschaften klicke. Haben Sie es? Irgendwelche Ideen, wie man es bekommen kann?

Ich habe eine Datei, die ich vor Änderungen schützen möchte. Sagen Sie mir nicht, dass ich sie verschlüsseln soll, das löst das Problem nicht. Ich möchte, dass Benutzer die Datei nicht ändern können, ABER nur ich (mein Programm). Gibt es irgendeine Art von Authentifizierung für Windowsdateien? Ich weiß, dass das, was ich sage, dumm ist bezüglich der Authentifizierung, aber einige Windowsdateien sind unzugänglich wie 'ntuser.dat.LOG' im Benutzerprofil. Wenn ich versuche, diese Datei zu öffnen, öffnet sie sich nicht.

Ich möchte so etwas, weil Windows die Datei gerade verwendet. Richtig. Aber was ist, wenn mein Programm abstürzt, ich möchte nicht, dass die Datei auch in diesem Fall geändert wird. Wie soll ich das machen?

Ich bitte nicht um die vollständige detaillierte Lösung, ich möchte Ideen, Vorschläge, Tipps oder alles, was Sie wissen, was hilfreich sein könnte, da es kompliziert zu sein scheint :p

0 Stimmen

Wenn Sie das Sicherheitsregisterkarte fehlt, liegt das wahrscheinlich daran, dass die Datei auf einem FAT/FAT32-Dateisystem liegt. Die Sicherheitsregisterkarte ist nur gültig, wenn die Datei auf dem NTFS-Dateisystem gespeichert ist.

0 Stimmen

WARUM möchten Sie nicht, dass die Datei geändert wird? Was genau versuchen Sie zu tun?

0 Stimmen

@petesh fand eine Lösung für @adam, der versucht, eine Datei vor lautenden Kindern zu schützen :p

0voto

NotMe Punkte 86089

Die Datei müsste vom Benutzer SYSTEM im Besitz sein und nur Leseberechtigungen für die reguläre BENUTZER-Gruppe haben.

Ihr Installationsprogramm sollte in der Lage sein, die Datei zu erstellen, Vollzugriff für das System zu geben und dann lokale Benutzerrechte daran zu beseitigen. Außer dem Recht zu lesen.

0 Stimmen

Das ist eine gute Idee, aber wie kann die Anwendung auf die Datei zugreifen?

0 Stimmen

Angenommen, die Anwendung wird unter dem derzeit angemeldeten Benutzer ausgeführt, sollte sie Lesezugriff auf die Datei haben.

0voto

Dan Monego Punkte 8752

Erstellen Sie einen MD5-Hash oder einen ähnlichen Hash unter Verwendung des Dateiinhalts. Beim erneuten Öffnen der Datei überprüfen Sie den gespeicherten Hash, um sicherzustellen, dass die Datei nicht geändert wurde.

0 Stimmen

LOL dies ist meine bisher subjektive Einschätzung, überprüfen, ob es geändert wurde oder nicht, löst das Problem nicht

0voto

Shoban Punkte 22785

Dies ist meine Idee! Vielleicht nicht sehr nützlich!

Beschränken Sie die Berechtigung für die Datei (Dies ist üblich) und stellen Sie sicher, dass nur Ihr Programm darauf Zugriff hat. Aber das ist nicht fehlerfrei, da der Administrator die Sicherheit der Datei ändern kann.

Lesen Sie die ersten n Bytes oder einige zufällige Bytes und speichern Sie sie in der Registrierung. Das nächste Mal, wenn Ihr Programm startet, überprüfen Sie, ob die Bytes übereinstimmen. Wenn nicht, wurde die Datei geändert. In diesem Fall versuchen Sie, die Datei neu zu erstellen.

0 Stimmen

Das ist das, was ich derzeit suche; zu überprüfen, ob die Datei geändert wurde, ist sinnlos... Ich möchte nicht wissen, ob sie geändert wurde, ich möchte sie nur sichern.

0voto

HS. Punkte 2553

Es kann nicht gemacht werden!

Entschuldigung für diese direkte Antwort, aber trotz aller vorgeschlagenen Softwaremaßnahmen zum "Schutz" der Datei wird es nicht helfen.

Wenn der Benutzer wirklich auf die Datei zugreifen möchte, kann er einfach die Festplatte in einen anderen Computer einlegen und die Datei ändern. Oder sie kann eine Linux-Live-CD verwenden, die unabhängig vom installierten Betriebssystem läuft.

0 Stimmen

Mit NTFS-Verschlüsselung eingeschaltet in Windows kann die Datei nur vom Benutzer, der sie erstellt hat, gelesen werden. Nicht viel Glück auf einem anderen Computer oder von Linux aus.

0 Stimmen

Löschen Sie es, schreiben Sie es dann neu. Es könnte dann unverschlüsselt sein, aber es ist geändert. Verschlüsselung ist nur eine Lösung, um zu verhindern, dass Daten gelesen werden.

0voto

Adam Jaskiewicz Punkte 10844

Signieren Sie die Datei mit einem im Anwendungscode eingebetteten privaten Schlüssel und überprüfen Sie die Signatur, bevor Sie die Datei laden. Sie müssen jedes Mal neu signieren, wenn Sie die Datei schreiben, damit die Signatur alle Änderungen widerspiegelt (wenn die Datei ohne Signatur geändert wird, wird dies offensichtlich, wenn Sie versuchen, die Datei zu laden).

NB this isn't totally secure. A cracker could conceivably extract the key from your application, and use it to sign his modified version of the file. It doesn't protect against a malicious attack, but will keep your average user from modifying the file.

EDIT: Hmm, scheint, als ob es Ihnen nicht darum geht, festzustellen, ob die Datei geändert wurde, sondern tatsächlich zu VERHINDERN, dass die Datei geändert wird. Tut mir leid, ich glaube nicht, dass es einen Weg gibt, dies zu tun. Der Benutzer könnte problemlos jeden Prozess "sperren", der die Datei "sperrt", oder sogar mit einer Live-CD booten und die Datei auf diese Weise bearbeiten.

0 Stimmen

Vorsicht ist besser als nichts, nicht alle Benutzer können das tun, WENN %60 meiner Benutzer technisch versiert sind, also habe ich zumindest %60 verhindert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X