Schreibschützen

Status
Nicht offen für weitere Antworten.

BAAAM

Mitglied
Hallo,
ich habe ein Programm mit dem ich verschiedene Textdateien speichere, die sollen aber nicht so einfach veränderbar sein, wenn jemand einfach in den Ordner geht und z. B. eine Datei löschen will, da diese Dateien noch in bestimmten Listen gespeichert sind und so ein Listeneintrag auf eine Datei verweist, die nicht mehr existiert.

Gibt es eine Methode in Java, um Dateien vor solchen Zugriffen zu schützen?

Danke im voraus für Antworten!

MfG
BAAAM
 

BAAAM

Mitglied
Danke L-ectron-X damit hätte ich die erste Hälfte meines Problems gelöst. :D
Aber leider auch nur die erste Hälfte. :wink:
Durch setReadOnly() sind die Dateien zwar schreibgeschützt, aber nicht vor dem "unbedachten" löschen geschützt.
Gibt es vielleicht eine Möglichkeit, dass eine Datei erste gelöscht wird, wenn ein Passwort eingegeben wurde oder so ähnlich?

Vielen Dank für die Hilfe

MfG
BAAAM
 

Tobias

Top Contributor
Wenn ein Benutzer einfach so Sachen in einem Programmordner löscht, darf er sich schlichtweg nicht wundern, wenn es dann knallt.
 
G

Gast2

Gast
Moin,

ich werfe mal ganz unbedarft "Benutzerrechte" ist Forum ... wozu hat ein BS diese Möglichkeiten??

hand, mogel

PS: Vorsicht nicht stolpern
 

Andreas29

Bekanntes Mitglied
Hi,

ich habe es noch nicht versucht und was ich vorschlage, ist auch sicherlich nicht die feinste aller Arten, aber wenn du einen einen Stream auf die Datei aufmachst und erst bei Programmende wieder schließt, müsste das Dateisystem das Löschen verbieten, weil es noch einen Zugriff auf die Datei feststellen wird. Keine elegante Lösung, aber eine Lösung.

Feiner wäre es wahrscheinlich, vor dem Zugriff auf die Datei mit File.exists() zu prüfen, ob die Datei noch existiert und wenn nicht, eine saubere Exception a la "Hey du Troll, hörst du mal auf, für das Programm wichtige / notwendige Dateien zu löschen??". Dann würde das Programm nicht unplanmäßig mit einer FileNotFoundException abbrechen und wäre irgendwie sauberer...

Grüße,
Andreas
 

Wildcard

Top Contributor
Nein, sowas würde nur unter Windows verhindern das eine Datei gelöscht wird. Ausserdem lässt sich das File Lock manuell öffnen und es wäre natürlich sowieso nur vorhanden solange das Programm läuft.
Vielleicht sollte man auch einfach damit aufhören den Anwender bevormunden zu wollen?
 
G

Gast2

Gast
Moin,

ich zeige nochmal auf die "Benutzerrechte" die hier im Forum immer noch liegen ... dazu lege ich mal "Sockets" und "RMI" (ein von Beiden reicht) ... und dann schiebe ich noch mal Client(liest aus der Datei)-Server(schreibt die Datei)-Prinzip hinterher ... denn anders geht es nicht, wenn ein Benutzer die Datei nicht löschen darf

hand, mogel

Wildcard hat gesagt.:
Vielleicht sollte man auch einfach damit aufhören den Anwender bevormunden zu wollen?
Du arbeitest mit Root-Rechten unter Linux?
 

Wildcard

Top Contributor
mogel hat gesagt.:
Du arbeitest mit Root-Rechten unter Linux?
Natürlich nicht, aber Dateirechte sind nunmal etwas ganz anderes als der OP hier verlangt.
Wenn der Benutzer ein Programm verwendet, und mit dessen Rechten Dateien erstellt werden, dann darf man die auch wieder Löschen.
 
G

Gast2

Gast
Moin,

Wildcard hat gesagt.:
mogel hat gesagt.:
Du arbeitest mit Root-Rechten unter Linux?
Natürlich nicht, aber Dateirechte sind nunmal etwas ganz anderes als der OP hier verlangt.
irgendwie finde ich das die Dateirechte hier perfekt zu den Wünschen des OP passen

Wenn der Benutzer ein Programm verwendet, und mit dessen Rechten Dateien erstellt werden, dann darf man die auch wieder Löschen.
richtig ... daher auch der Server schreibt in die Datei (ggf. löscht er sie auch) und der Client liest aus der Datei ... das der Client keine Rechte zum löschen haben darf - wie der Benutzer - sollte eigentlich klar sein ... somit läuft der Client mit Benutzerrechten und der Server mit Admin oder extra Account

wenn Dateien geschützt werden müssen geht es nur mit entsprechenden Rechten

hand, mogel
 

Wildcard

Top Contributor
Für mich hört sich das mehr nach einem Problem an das gar nicht existiert und nicht nach einer Client Server Architektur, aber jedem das Seine...
 
G

Gast2

Gast
Wildcard hat gesagt.:
Für mich hört sich das mehr nach einem Problem an das gar nicht existiert und nicht nach einer Client Server Architektur, aber jedem das Seine...
das Problem ist existenter als Du denkst und eindeutig eine Client-Server

Beispiel für Client-Server ... auf einem Rechner ist ein SQL-Server installiert ... der stellt Operationen für die Daten bereit ... der Client (gleicher Rechner) arbeitet mit den Daten und läuft mit Benutzerrechten ... dennoch kann der Benutzer die Dateien, die für den SQL-Server wichtig sind, nicht löschen ... erkennst Du die Parallelen? ... der OP hat Dateien die vom Benutzer nicht gelöscht werden dürfen ... Client-Server

der Server muss jetzt nicht unbedingt eine gigantische API bereitstellen um mit den Dateien arbeiten zu können ... es würde reichen das der Server die Daten in die Datei schreibt/anhängt

hand, mogel

PS: wenn Du jetzt bei Client-Server an mehrere Rechner denkst - *juhu* - endlich mal wieder ein Mensch der in großen Dimensionen denkt
 

Wildcard

Top Contributor
Der OP möchte irgendwelche Textlisten erstellen und hat Angst das der Benutzer sie löscht.
Der Benutzer kann aber genausogut das ganze Programm löschen. Ist doch müsig darüber zu diskutieren.
 
G

Gast2

Gast
Moin,



Wildcard hat gesagt.:
Der OP möchte irgendwelche Textlisten erstellen und hat Angst das der Benutzer sie löscht.
genau ... er hat nach einer Lösung gefragt ... die geht nunmal nur über Benutzerrechte (wozu existieren die sonst?) ... alles andere sind nur Behelfslösungen die ein gelangweilter Benutzer irgend wann umgeht

Der Benutzer kann aber genausogut das ganze Programm löschen.
wenn der Benutzter das Programm deinstallieren möchte ... nur die Benutzerrechte werden ihn daran hindern



nacht, mogel



Ist doch müsig darüber zu diskutieren.
gehen Dir die Argumente aus?
 

Wildcard

Top Contributor
Ich bin lediglich der Meinung, nicht alles was man theoretisch tun kann, sollte man auch tun.
Ein Programm produziert einen Dateioutput auf Userwunsch. Warum soll das Programm das mit erhöhten Rechten tun und den Benutzer daran hindern sein eigenes Produkt auch wieder zu löschen?
Welchen Zweck verfolgt diese Bevormundung? Ich will auch nicht das von mir erstellte PDFs oder Java Klassen nicht mehr löschen kann.

gehen Dir die Argumente aus?
Nein, jeder hat seinen Standpunkt kund getan und damit gibt es von meiner Seite erstmal nichts hinzuzufügen.
 
G

Gast2

Gast
???:L ... wozu hat der Benutzer ein eigenes Verzeichnis ... da sind die Rechte wahrscheinlich entsprechend gesetzt ... erspart einem den Client-Server
 

Wildcard

Top Contributor
mogel hat gesagt.:
???:L ... wozu hat der Benutzer ein eigenes Verzeichnis ... da sind die Rechte wahrscheinlich entsprechend gesetzt ... erspart einem den Client-Server
Naja, in user.home kann der User in jedem Fall schreiben(löschen) und genau das möchte der OP wohl nicht.
 
G

Gast2

Gast
OT:
FGIM hat gesagt.:
deine gerüchtekücke ist fehlerhaft... mysql exception...
nee ... meine Frau hat die DB gelöscht ... hatte ihr die falschen Rechte gegeben ... und natürlich kein Backup der DB :autsch:
 
G

Gast

Gast
"Datei löschen dürfen oder nicht" müsste doch eigentlich über die Rechte auf dem Verzeichnis gehen, indem diese Datei liegt oder?
 
G

Gast2

Gast
Moin,

Gast hat gesagt.:
"Datei löschen dürfen oder nicht" müsste doch eigentlich über die Rechte auf dem Verzeichnis gehen, indem diese Datei liegt oder?

wirf mal einen Blick auf das 6. Posting (ist übrigens von mir) und verfolge mal den Rest

hand, mogel
 
G

Gast

Gast
Ein ganz anderer Ansatz wäre es die Dateien "unsichtbar zu machen. Das reicht meines erachtens für den Autonormaluser und der Nichtautonormaluser weiß was er beim löschen tut.

Unter windows sollte das .* Dateien gehen. Linux User sind ja meistens ehe Nichtautonormaluser.
 

The_S

Top Contributor
autonormal also :lol: .

Du kannst jede beliebige Datei löschen, ich sehe keinen Sinn dahinter dem User zu verbieten irgendwelche Dateien zu löschen. Es sei denn die Wahrscheinlichkeit ist hoch, dass er eine Datei löscht, weil sie z. B. an einem ungünstigen Ort mit einem ungünstigen Namen auf dem PC eines dummen Users liegt. Dann sollte man aber anders an das Problem rangehen.
 
G

Gast

Gast
@mogel
Abgesehen davon, dass deine Art einem etwas näher zu bringen für meine Verhältnisse etwas zu arrogant ist, haste natürlich recht :) Genau das Posting nr. 6 (ist übrigens von Dir) hätte den ganzen Thread hier abschliessen können und alle wären glücklich. Aber nein, man spricht ja lieber in Rätseln.
 

Wildcard

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Du kannst jede beliebige Datei löschen, ich sehe keinen Sinn dahinter dem User zu verbieten irgendwelche Dateien zu löschen. Es sei denn die Wahrscheinlichkeit ist hoch, dass er eine Datei löscht, weil sie z. B. an einem ungünstigen Ort mit einem ungünstigen Namen auf dem PC eines dummen Users liegt. Dann sollte man aber anders an das Problem rangehen.
Nichts anderes versuche ich ja schon die ganze Zeit einzuwerfen, aber nach mittlerweile wohl knapp 20 Hinweisen auf Dateirechte, hat der OP wohl selbst keine Lust mehr vorbeizuschauen (oder tarnt sich als Gast).
 
G

Gast2

Gast
Moin,

Gast hat gesagt.:
Abgesehen davon, dass deine Art einem etwas näher zu bringen für meine Verhältnisse etwas zu arrogant ist
ein Mann/Frau der ehrlichen Worte ... muss ich wohl mal etwas ändern

Aber nein, man spricht ja lieber in Rätseln.
ich ging davon aus das hier Leute lesen die Ahnung von Ihrem Job/Hobby haben

hand, mogel
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben