Autor Beitrag
Oliver Maas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 55



BeitragVerfasst: Mi 31.07.13 14:52 
Hi

das hier ist eigentlich keine echte Delphi Frage, sie bezieht sich auf Windows 7 und den SYSTEM User, den es ja immer gibt.
Wir haben eine Anwendung, die sich Rechte vom SYSTEM User holt. Das ganz praktische Problem dabei ist, dass der Anwender
damit manchmal (je nachdem wie das Konto konfiguriert ist) in der Anwendung andere Rechte hat als im Windows Explorer.

Im jetzigen Fall ist es so gewesen, dass der Anwender im Windows Explorer eine Datei auf ein Netzlaufwerk verschieben konnte,
aber über die Anwendung nicht (obwohl der SYSTEM User ja normalerweise noch mehr Rechte hat als selbst ein Admin-Account).
Meine Frage ist nun: ist das eine übliche Vorgehensweise (wie man sich die Rechte holt), oder eher ungewöhnlich/weniger empfehlenswert?!

Ich hätte nun angenommen, dass es mehr Sinn ergeben würde, innerhalb der Anwendung dieselben Rechte wie auch im Windows Explorer
zu verwenden (alles andere irritiert nur den Anwender m.E.). Ist nicht mein eigener Quellcode, ich kann da nur Vorschläge machen...

viele Grüße

Olli
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 31.07.13 15:59 
Der Systembenutzer ist für Dienste da. Legt nun der Benutzer ein Netzlaufwerk an, ist das auch nur für den Benutzer angelegt. Wenn das Netzlaufwerk aus einem Dienst heraus nutzbar sein soll, muss der Dienst im Kontext des Benutzers ausgeführt werden oder selbst das Netzlaufwerk im Dienstkontext anlegen.
Am besten ist natürlich, wenn der Dienst gleich über den UNC Pfad geht, vorausgesetzt dieser User hat auf dem Server die entsprechenden Zugriffsrechte.

Für diesen Beitrag haben gedankt: Oliver Maas
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 31.07.13 16:42 
Hat denn der lokale Windows-System-User zwangsläufig die Rechte des am Netzwerk angemeldeten Users?
Ich denke eher nicht.
Daher wird er in dem Fall auch nicht das Recht haben, auf das Netzwerk-Laufwerk zuzugreifen. Außer, dass es im Netzwerk so eingestellt ist.

Oder habe ich die Frage falsch verstanden?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 31.07.13 16:59 
Ich frage mich vor allem was eine Anwendung mit dem System-User zu tun hat. Das klingt nach einem Versuch einen interaktiven Dienst nachzubilden statt das ganze sauber zu lösen...
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Mi 31.07.13 22:11 
In einer Windows-Umgebung ist der Benutzer SYSTEM gleich der Computer, d.h. wenn Du Dich in einer Active Directory Domäne bewegst handelt es sich dabei um das Computerkonto. Ein Computerkonto im AD ist genauso ein Sicherheitsbjekt wie ein Benutzer und kann dementsprechend auch Rechte bekommen. In Deinem Fall muss er dann auch Rechte bekommen. Verbundene Netzlaufwerke gibt es hier nicht, Du musst dann per UNC-Pfad auf das Share zugreifen.

Wenn Du im Kontext des Benutzers arbeiten willst, muss das Programm auch in diesem Kontext laufen. Handelt es sich um einen Dienst, muss dieser also unter einem Service Account laufen, der entsprechende Rechte wie der Benutzer hat.

Für diesen Beitrag haben gedankt: Oliver Maas
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 01.08.13 05:22 
user profile iconUGrohne hat folgendes geschrieben Zum zitierten Posting springen:
Verbundene Netzlaufwerke gibt es hier nicht, Du musst dann per UNC-Pfad auf das Share zugreifen.
Es sei denn der Dienst verbindet das Netzlaufwerk selbst. (Das wäre dann allerdings im Standard als nicht verbunden bei allen Nutzern zu sehen.)
Besser ist sicher der UNC-Pfad. Es gibt aber Fälle, in denen der nicht funktioniert.