Eigenes Programm anderem User zuordnen?

Windowsspezifisches Forum , API ,..
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Eigenes Programm anderem User zuordnen?

Beitrag von Kukulkan »

Hallo,

Mein Problem:
Mein Programm soll auf Netzwerk-Shares zugreifen auf die der benutzende User definitiv keinen Zugriff hat. Eine versteckte Freigabe ist nicht sicher genug! Mein Programm kennt nach dem Starten aus seiner Datenbank einen speziellen Benutzernamen, Domain und Kennwort um auf diese Shares zugreifen zu können.

Die Frage:
Wie schaffe ich es dass mein Programm sich selbst zur Laufzeit die Rechte dieses speziellen Users verschafft um so auf die Shares zugreifen zu können? Der 'echte' Benutzer darf niemals Zugriff auf diese Shares erhalten.

Ich hatte die Idee mit LogonUser_() und ImpersonateLoggedOnUser_() (MSDN: http://msdn2.microsoft.com/en-us/library/aa378612.aspx), aber dazu muss der 'echte' Benutzer das SE_TCB_NAME Privileg haben. Und das hat normalerweise nichtmal ein Admin. :freak:

Ideen?

PS. Nein, ein "Ausführen als..." fällt definitiv weg da der Benutzer, der das Programm startet, diese Rechte ja definitiv nicht haben soll! Und auch einen "Loader" zu schreiben ist nicht möglich, da sich dieser zuerst auf die Datenbank verbinden müsste. Das kann ich aber nicht ohne einen Logon zu machen und dann klappt gar nix mehr....

Volker
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Häkel Dir einen Service mit hinreichenden Rechten für das Share mit dem
Du per Programm kommunizierst.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Rings
Beiträge: 977
Registriert: 29.08.2004 08:48

Beitrag von Rings »

geht kein 'NET use' um laufwerke kurz zu mappen ?
Dort kann man benutzer/PWD mit angeben. Selbiges sollte auch direkt gehen mit Api soviel ich weiss......... oder du meinst was total anderes.
Anyway, BBB's service geht natürlich, da der mit nem anderen Account laufen kann.......
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo Bobobo,

Mein Programm besteht aus über 41'000 Zeilen Code und macht an etwa 45 Stellen einen Zugriff auf diese Shares. Dabei sind auch Dateizugriffe über ZIP- und Verschlüsselungs-DLL's die ich nicht beeinflussen kann (nur den Pfad).
Ich kann ja nicht alle diese Zugriffe über einen Service gestalten. Da bin ich alleine mit dem anschliessenden Testen aller Funktionen schon zwei Monate beschäftigt. Die Performance wird sicher auch leiden...

Die neuen Rechte müssen komplett für den ganzen Thread/Process des Programmes gelten. So müssen keine Zugriffe verändert werden. Desshalb möchte ich ja auch den User des Programmes ändern - damit das Programm mit diesen Rechten auf die Shares zugreift.

Volker
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo Rings,
Rings hat geschrieben:geht kein 'NET use' um laufwerke kurz zu mappen ?
Dort kann man benutzer/PWD mit angeben. Selbiges sollte auch direkt gehen mit Api soviel ich weiss......... oder du meinst was total anderes.
Anyway, BBB's service geht natürlich, da der mit nem anderen Account laufen kann.......
Dann kann der aktuelle User ja während der Laufzeit meines Programmes munter den Share verwenden... Das wäre eine Katastrophe!

Volker
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Volker Schmid hat geschrieben:Hallo Bobobo,

Mein Programm besteht aus über 41'000 Zeilen Code und macht an etwa 45 Stellen einen Zugriff auf diese Shares. Dabei sind auch Dateizugriffe über ZIP- und Verschlüsselungs-DLL's die ich nicht beeinflussen kann (nur den Pfad).
Ich kann ja nicht alle diese Zugriffe über einen Service gestalten. Da bin ich alleine mit dem anschliessenden Testen aller Funktionen schon zwei Monate beschäftigt. Die Performance wird sicher auch leiden...

Die neuen Rechte müssen komplett für den ganzen Thread/Process des Programmes gelten. So müssen keine Zugriffe verändert werden. Desshalb möchte ich ja auch den User des Programmes ändern - damit das Programm mit diesen Rechten auf die Shares zugreift.

Volker
na klar doch, kannst Du alles über den Service regeln
Der Service beinhaltet eben die notwendigen Funktionen aus dem
Thread/Process.
In der Kommunikation mit dem Service steckt letztlich Deine auf-
zuwendende Programmierenergie.

Ich denke da musst Du durch.

Frage: Ein Zugriff auf etwas auf das Du keinen Zugriff hast be-
werkstelligst Du wie?

Antwort: Du fragst jemanden der Zugriff hat. Denjenigen nennt man auch Proxy (glaub ich)
glaub ich.


Wenn Du da ne andere Lösung findest dann tu die bitte kund .. Tät mich schon interessieren.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Kukulkan
Beiträge: 1066
Registriert: 09.09.2004 07:07
Wohnort: Süddeutschland
Kontaktdaten:

Beitrag von Kukulkan »

Hallo bobobo,

Dank für deine guten Tipps.
na klar doch, kannst Du alles über den Service regeln
Ok, aber wie bringe ich das den zugekauften DLL's für ZIP und Crypto bei?

Also einen User je Thread ändern geht nicht?

Volker
funk.munich
Beiträge: 123
Registriert: 27.03.2006 09:45

Beitrag von funk.munich »

Hi zusammen,

ich habe zwar auch keine Idee wie man das lösen könnte wollte auch nur kurz mitteilen, dass damit unter Vista noch mehr Probleme auftauchen werden.

Es gibt da doch den neuen security Level UAC. Dort existiert das Problem, wenn Du mit dem eingeloggten User shares einrichtest Du nur mit dem User darauf zugreifen kannst.
Wenn Du jetzt z.B. ein DOS Fenster mit "Run As Administrator" aufrufst und "net use" eingibst, zeigt Dir Vista zwar die shares an, kann jedoch darauf nicht zugreifen.

Aber dafür muss es irgenwie einen API call geben, denn wenn ich das mit dem Explorer ausprobiere (also den als Run as Admin aufrufe) kann ich darauf zugreifen.

Ich habe aber leider noch keine Infos dazu finden können :-(

Gruß,
Daniel
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

auch da hilft der Service .. nicht ein User loggt sich um, sondern
ein vorhandener Dienst HAT schon passende Rechte und wird nur entsprechend wachgekitzelt.

Die Kommunikation mit dem Dienst bleibt das Problem.

Auch ein Dienst kann Programme starten und die haben dann
üblicherweise die Rechte des Dienstes und dürfen dann das tun,
was der Dienst könnte (wenn er denn könnte, denn der Dienst ist ja
erstmal doof und wird).

Als nettes Prinzipdemo gilt für mich der WindowsInstaller
http://de.wikipedia.org/wiki/Windows_Installer
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten