# Unter welchem Benutzer läuft eine RCP-Anwendung? (Windows-Berechtigungsproblem)



## mandypb86 (31. Okt 2011)

Hallo zusammen,

ich stoße gerade beim Löschen von Dateien aus einer RCP-Anwendung mittels EFS auf Berechtigungsprobleme und hab mich deshalb gefragt unter welchem Benutzer / welcher Benutzergruppe meine Anwendung überhaupt läuft?

a) wenn ich sie aus eclipse heraus starte
b) wenn ich sie später deployt habe

Mal ganz davon abgesehen, dass Berechtigungen unter Windows ein unübersichtliches Chaos sind und man Diplom dafür braucht...
Wer gehört zu welcher Gruppe usw.

Ich hab einen Ordner, der für Authentifizierte Benutzer u.A. bei den effektiven Berechtigungen "Unterordner und Dateien löschen" zulässt. Das sollte sich doch eigentlich auf alle Unterordner und Dateien vererben, wenn ich das richtig verstanden hab.
Trotzdem ließ sich eine Datei zwei Hierarchien tiefer nicht löschen obwohl diese in den effektiven Berechtigungen für Authentifizierte Benutzer "löschen" zulässt.

Ich bin verwirrt. Wer erleuchtet mich?

Lieben Gruß
M@ndy


----------



## Wildcard (31. Okt 2011)

Eine Anwendung läuft immer mit den Rechten des Benutzers der sie startet (wenn man nicht runas oder ähnliche Konzepte verwendet).


----------



## mandypb86 (31. Okt 2011)

Das hieße also:
Angenommen mein Benutzer heißt X und gehört zur Gruppe der Administratoren.

Benutzer X ruft eclipse auf (Taskmanager sagt: eclipse läuft unter Benutzer X)
Benutzer startet aus eclipse RCP-Anwendung (Taskmanager sagt: javaw.exe läuft unter Benutzer X)

Aber müsste es dann nicht ohne Weiteres möglich sein aus der RCP-Anwendung heraus eine Datei mittels store.delete() zu löschen? X gehört doch zu den Administratoren. Die dürfen doch alles?!

Aber scheinbar macht es einen Unterschied, ob die zu löschende Datei der Gruppe "Administratoren" gehört oder dem Benutzer X, der "nur" Mitglied dieser Gruppe ist.
Gehört die Datei dem Benutzer X, lässt sie sich auch aus der Anwendung heraus löschen.

Das Verrückte ist aber:
*kopiere* ich eine Datei innerhalb meiner Anwendung mittels EFS und store.copy() gehört diese wieder der *gesamten Gruppe "Administratoren"* und nicht dem Benutzer X. Also hab ich für meine kopierte Datei wieder das gleiche Dilemma wie vorher. Ich hab sie zwar erzeugt, darf sie aber nicht löschen?!

Was macht Windows (7 professional) da und wie komm ich aus diesem Dilemma raus? Ich kann meinen Endanwendern ja später schlecht "befehlen" jedes Mal, wenn sie eine Datei aus meinem Programm heraus löschen wollen, erst die Sicherheitseinstellungen dieser Datei zu ändern. Dann können sie sie auch gleich im Explorer löschen, was ja nicht Sinn der Sache ist.

Verwirrte Grüße
M@ndy


----------



## code404 (1. Nov 2011)

Also unter Windows 7 ist man ja standardmäßig nur als normaler Benutzer unterwegs. Wenn Adminrechte benötigt werden poppt ja immer das nette Fensterchen auf ob man dies Aktion wirklich machen will. Wie man so etwas nun von JAVA / RCP macht: keine Ahnung.

Versuch doch mal deine Anwendung als Admin zu starten (Rechte Maustaste auf .exe und "Als Admin ausführen"

Grüße


----------



## Gast2 (1. Nov 2011)

code404 hat gesagt.:


> Also unter Windows 7 ist man ja standardmäßig nur als normaler Benutzer unterwegs. Wenn Adminrechte benötigt werden poppt ja immer das nette Fensterchen auf ob man dies Aktion wirklich machen will.


UAC :wuerg: ... ich hatte ein ähnliches Problem unter Vista mit Ecplise und Android SDK ... ohne UAC konnte ich es installieren - mit UAC aber nicht nutzen (Virtualisierung) -.-



> Wie man so etwas nun von JAVA / RCP macht: keine Ahnung.


ich war damals zu faul zum Suchen im internet - das dürfte voll sein davon ... seit dem programmiere ich Java auch kaum noch unter Windows 



> Versuch doch mal deine Anwendung als Admin zu starten (Rechte Maustaste auf .exe und "Als Admin ausführen"


UAC erstmal temporär abschalten um zu sehen ob es daran liegt


----------



## mandypb86 (1. Nov 2011)

code404 hat gesagt.:


> Also unter Windows 7 ist man ja standardmäßig nur als normaler Benutzer unterwegs. Wenn Adminrechte benötigt werden poppt ja immer das nette Fensterchen auf ob man dies Aktion wirklich machen will. Wie man so etwas nun von JAVA / RCP macht: keine Ahnung.
> 
> Versuch doch mal deine Anwendung als Admin zu starten (Rechte Maustaste auf .exe und "Als Admin ausführen"
> 
> Grüße



Ich bin als alleiniger Benutzer an meinem Rechner immer als Admin angemeldet bzw. als Mitglied der Administratoren-Gruppe. Deshalb hatte ich auch konkret diese Situation oben beschrieben.

UAC abschalten ist ja schön und gut, aber wenn es standardmäßig aktiviert ist, hab ich das gleiche Problem, wie oben schon beschrieben: ich kann es meinem Endanwender nicht zumuten diese Einstellung an seinem Rechner vorzunehmen, da die meisten Leute ja froh sind, wenn ihr System einfach funktioniert.


----------



## Wildcard (1. Nov 2011)

Wo schreibst du eigentlich die Dateien? Zb der 'Programme'/'Program Files' Folder hat ein spezielle Bedeutung und Implementierung und ist wohl Microsoft's Art Entwickler zu verärgern.


----------



## mandypb86 (1. Nov 2011)

Wildcard hat gesagt.:


> Wo schreibst du eigentlich die Dateien? Zb der 'Programme'/'Program Files' Folder hat ein spezielle Bedeutung und Implementierung und ist wohl Microsoft's Art Entwickler zu verärgern.



Die Dateien, die ich innerhalb meines Programmes erzeuge (und auch gerne wieder löschen würde) liegen auf einer normalen - also nicht System - Partition D.

Später soll der Löschvorgang in erster Linie von einem USB-Stick runter geschehen, evtl. aber auch aus den "Eigene Dateien"-Ordnern der Endanwender oder sonstwo auf einer Partition. Weiß ja nicht, wo die Leute ihre Nutz-Dateien alle so verstreuen.

Das Programm dient quasi u.a. dazu von einem USB-Stick Dateien auf den Rechner zu archivieren oder sie halt direkt von da zu löschen und auch neue drauf zu kopieren. Wohin die Daten archiviert werden bzw. von wo aus sie auf den USB-Stick kopiert werden steht den Anwendern frei.

Ich hab grad mal vom Rechner meiner Mutter (Win 7 Home, angemeldet als normaler Benutzer) eine einfache Textdatei so im Explorer angelegt: Die Datei gehört dem angemeldeten Benutzer.

Auf dem Rechner meines Vaters (Win XP, Benutzer gehört zur Admin-Gruppe): Datei gehört dem Benutzer, aber nicht der Admin-Gruppe.

Da scheint also alles ordentlich zu laufen.

Warum also gehört eine Datei, die ich unter Win 7 Professional als Mitglied der Administratoren-Gruppe anlege der Gruppe und nicht mir? Das geht mir immer noch nicht in den Kopf.


----------

