AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Softwareentwicklung im Allgemeinen Projektplanung und -Management Temporäre Dateizugriffsrechte setzen, geht das?

Temporäre Dateizugriffsrechte setzen, geht das?

Ein Thema von Kostas · begonnen am 5. Dez 2020 · letzter Beitrag vom 7. Dez 2020
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
883 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Temporäre Dateizugriffsrechte setzen, geht das?

  Alt 5. Dez 2020, 13:13
Hall Zusammen,

das Thema ist genauso blöd wie der Titel, sorry dafür.

Ein User soll in ein bestimmtes Verzeichnis überhaupt kein Zugriffsrecht haben.
Aus einer Delphi Anwendung heraus, sieht es eine TStringList an Dateien aus diesem gesperrten Verzeichnis die er bearbeiten dürfte.
Wenn der Anwender die Datei bearbeiten möchte, müsste die Delphi Anwendung vorher Ihm die Rechte auf diese eine Datei geben, anschließend die registriere Anwendung starten um diese eine Datei bearbeiten und speichern zu können. Wenn Delphi beendet wird, oder der User sich abmelden würde, müssten diese temporären Zugriffsrechte wieder gelöscht werden.

Bei Setup-Programmen wird manchmal der User als Admin hochgestuft und kann damit die Anwendung installieren. Das wäre in diesem Scenario nicht erwünscht da er dann vollen Zugriff über den Explorer auf das Verzeichnis hätte. Man müsste also schon die Rechte diese einen Daten setzen und zwar temporär. Nach dem beenden der Delphi-Anwendung oder spätestens nach dem Abmelden müssen diese Rechte verloren gehen.

Gibt es soetwas?
Hat jemand irgend eine Idee dafür?

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.269 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Temporäre Dateizugriffsrechte setzen, geht das?

  Alt 5. Dez 2020, 13:20
Berechtigungen im Dateisystem sind permanent. (bis vor Kurzem gab es mal Transaktionen im NTFS, welche man temporär nutzen und dann reverten könnte, aber das wird leider gerade wieder ausgebaut ... MSDN-Library durchsuchenCreateFileTransacted usw.)
Zitat:
Nach dem beenden der Delphi-Anwendung oder spätestens nach dem Abmelden müssen diese Rechte verloren gehen.
Wenn das Programm oder der Rechner abstürzt (abgeschossen wird), dann gibt es niemanden der das zurücksetzt und es bleibt ewig offen?
Außerdem kann auch jeder Andere bzw. jedes andere Programm dann auf die Dateien zugreifen, so lange dieses Programm offen wäre.

Nicht "Admin", sondern man erstellt einen Benutzer, der die "nötigen" Rechte und Freigaben bekommt.
Und mit diesem Benutzer/Rechten kann dann das Programm gestartet werden, bzw. es holt sich wärend der Arbeit diese User-Berechtigungen. (Impersonate im Thread/Process oder CreateProcess mit Unterprogramm)


Oder er greift nicht direkt auf das Dateisystem zu.
Temporär mit der Netzwerkfreigabe verbinden (Programm nutzt dafür einen passenden Nutzer/Passwort)
oder über einen Dateiserver mit Zugangkontrolle, wo das Programm die Datei runterlädt, lokal speichert+bearbeitet und am Ende die Änderung hochladen kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 5. Dez 2020 um 13:27 Uhr)
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
883 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Temporäre Dateizugriffsrechte setzen, geht das?

  Alt 5. Dez 2020, 13:51
Danke für die Antwort.

raus- und wieder reinkopieren ist nicht erwünscht. Die Struktur soll so bleiben.

Die temporäre Netzfreigabe wäre eine Option. Die Schwierigkeit dabei ist, es gibt geschätzt ca. 50 Verzeichnisse aus diesen einzelne Dateien bearbeitet werden dürfen. Die temporäre Dateifreigabe wäre dafür gut geeignet. Wenn die Anwendung abschmiert wird die Freigabe nicht gleich entzogen aber wenigstens beim abmelden. Die User werden zu einer bestimmten Uhrzeit täglich zwangsgetrennt. Bis zur dieser Zeit hätte der User auch über den Explorer Zugriff aber nur auf diese eine Datei. Wenn es das nicht mehr geben soll, ist das sehr schade.

Ein Dateiserver-Anwendung bringt leider auch nichts da es Fremdprogramm sind die diese Dateien bearbeiten dürfen wie z.B. Office, CAD-Programme usw.
  Mit Zitat antworten Zitat
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
863 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Temporäre Dateizugriffsrechte setzen, geht das?

  Alt 5. Dez 2020, 14:57
Man könnte zwei unterschiedliche Freigaben für dasselbe Verzeichnis einrichten. Auf die eine hat der normale Benutzer nur Lesezugriff. Auf die zweite hat er gar keinen Zugriff, aber ein anderer, dafür eingerichteter Account darf schreiben. Dann muss man nur noch das Programm unter diesem zweiten Account zugreifen lassen, analog zu
Code:
net use \\server\share /user:xxxx
Wobei, war da nicht was, dass man sich von einem PC aus bei einem Server nur mit einem Account zur gleichen Zeit anmelden konnte? Falls das immernoch so ist, kann man sich behelfen, indem man das Programm nicht auf den Servernamen sondern auf die IP-Adresse zugreifen lässt:
Code:
net use \\<ip des Servers>\share /user:xxxx
Zitat:
da es Fremdprogramme sind die diese Dateien bearbeiten dürfen wie z.B. Office, CAD-Programme usw.
Hm, das ist schwieriger. Vielleicht ein Vorschaltprogramm, welches die Dateien lokal kopiert, sie dort bearbeiten lässt und dann wie oben beschrieben unter einem anderen Account zurück auf den Server kopiert?
Thomas Mueller

Geändert von dummzeuch ( 5. Dez 2020 um 15:00 Uhr)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
893 Beiträge
 
Delphi 6 Professional
 
#5

AW: Temporäre Dateizugriffsrechte setzen, geht das?

  Alt 6. Dez 2020, 06:16
Hmm..

Also das mit der Freigabe kannst Du knicken...

Denn der User kann immer noch nicht auf die Dateien Zugreifen, wenn er auch ansonsten nicht das Recht hat, auf diese direkt zuzugreifen. Windows unterscheidet zwischen 'Freigabe' und 'NTFS' Zugriffsrechte.
Egal was in Freigabe steht, ohne die NTFS Rechte kein Zugriff....

Kann der User sich die Verzeichnisinhalte auflisten lassen? Hat er diese Rechte?

Wenn ja, dann Dateien auflisten und durch den User auswählen lassen. Dann das externe Programm zur Bearbeitung mit einem 'anderen' User starten, welcher die notwendigen Rechte hat.

Problem hierbei:
Dein 'Starterprogramm' müsste die Zugriffsrechte des 'anderen' Users kennen...

Zugriffsrechte erteilen, ob nun dauerhaft oder temporär, kann nur ein 'anderer' User, welcher die Rechte schon hat. Sonst könnte sich ja jeder die Rechte selber geben und die Zugriffsrechte würden keinen Sinn mehr machen.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
7.916 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Temporäre Dateizugriffsrechte setzen, geht das?

  Alt 6. Dez 2020, 07:46
Bei Setup-Programmen wird manchmal der User als Admin hochgestuft und kann damit die Anwendung installieren. Das wäre in diesem Scenario nicht erwünscht da er dann vollen Zugriff über den Explorer auf das Verzeichnis hätte. Man müsste also schon die Rechte diese einen Daten setzen und zwar temporär. Nach dem beenden der Delphi-Anwendung oder spätestens nach dem Abmelden müssen diese Rechte verloren gehen.
Dafür kann man ganz simpel ein zweites Programm mit den entsprechenden Rechten unsichtbar starten und mitlaufen lassen. Alle Zugriffe auf die gewünschten Daten wickelt man dann über dieses Programm ab. Das Originalprogramm selbst hat diese Rechte nie, so dass der Benutzer auch nicht sichtbar über diese Rechte verfügt.

Alternativ (sauberer, am Ende einfacher zu nutzen, aber komplizierter zu schreiben) wäre ein Out-of-process COM server. Wie das funktioniert ist hier beschrieben:
https://www.informit.com/articles/ar...30494&seqNum=4
http://docwiki.embarcadero.com/RADSt...Remote_Servers
Auch der bekäme dann im Hintergrund die benötigten Rechte und würde die Operationen mit diesen Rechten ausführen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
241 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Temporäre Dateizugriffsrechte setzen, geht das?

  Alt 6. Dez 2020, 08:25
Wenn auf dem Server ein Datenbankserver läuft, dann die Dateien in ein Blobfeld importieren, per Stored Procedure.
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
335 Beiträge
 
Delphi XE6 Enterprise
 
#8

AW: Temporäre Dateizugriffsrechte setzen, geht das?

  Alt 7. Dez 2020, 11:43
Vielleicht ein virtuelles Filesystem, wie CBFS (ehemals Eldos Solid File System)? Solange der "Treiber" nicht läuft, ist das einfach eine Datei.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 23:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf