AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Dateikopie ohne Rechte im Zielverzeichnis?
Thema durchsuchen
Ansicht
Themen-Optionen

Dateikopie ohne Rechte im Zielverzeichnis?

Ein Thema von Billa · begonnen am 10. Mär 2013 · letzter Beitrag vom 11. Mär 2013
Antwort Antwort
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Dateikopie ohne Rechte im Zielverzeichnis?

  Alt 10. Mär 2013, 08:12
Hallo zusammen,

der Titel ist wahrscheinlich mehr als unklar. Dahinter verbirgt sich ein einfaches Problem:
auf einer Win7-Maschine sollen Dateien an ein "sicheren" Ort (Verzeichnis) kopiert werden, ohne dass der
angemeldete Benutzer selbst dort schreiben/lesen darf. Meine Idee ist also, dass der Kopiervorgang nicht
vom Benutzer, sondern von einem Programm (Dienst?!) ausgeführt wird, damit keine höheren Rechte oder
fremde Passworte benötigt und auch nicht jedesmal abgefragt werden müssen. Dieser Vorgang soll von einem
kleinen Programm angestossen werden, dass die Dateien wie in einer Bibliothek protokolliert und so immer
"weiß", welche Dateien im geschützten Bereich liegen.

Zum Stichwort "Dienst" habe ich z.B. in den Tutorials einiges gelesen (zugegebenermassen aber noch nicht alles
ausprobiert). Soweit ich es verstanden habe, drehte es sich in diesen Fällen immer um kontinuierliche
Prozesse (Messwerte etc.), ich möchte aber den "Dienst" nur bei Bedarf aus einem Programm mit eigenen Parametern
(zwei Dateinamen inkl. Pfad) aufrufen.

Vielleicht gibt es aber auch etwas viel Eleganteres. Ach ja, es darf (ausser meiner Zeit ) möglichst
nix kosten.

Ich hoffe auf Anregungen ...


Was ich bisher ausprobiert habe sind mehrere Varianten mit RunAs, MachMichAdmin etc. die mein "Bibliotheksprogramm" starten. Der Vorgang klappt dann, ABER: entweder muss doch einmal zu Beginn
einer Sitzung ein Passwort eingegeben werden oder - fast schlimmer - danach das "geschützte" Verzeichnis
für den User (z.B. Explorer) offen ist. So komme ich immer wieder auf die "Dienst"-Lösung, weiß aber
nicht, wie mein Programm mit dem Dienst kommunizieren soll.
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....

Geändert von Billa (10. Mär 2013 um 12:55 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Dateikopie ohne Rechte im Zielverzeichnis?

  Alt 10. Mär 2013, 23:06
Dienste dürfen nur Administratoren starten und stoppen. Du verlagerst das Problem also nur.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Dateikopie ohne Rechte im Zielverzeichnis?

  Alt 10. Mär 2013, 23:13
Die billigste Lösung wäre wohl ein FTP-Server im Dienst und in der Anwendung den FTP-Client.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Dateikopie ohne Rechte im Zielverzeichnis?

  Alt 11. Mär 2013, 06:12
Danke erstmal Euch beiden.

@Luckie:

Dass ist doch durchaus erwünscht, damit "nix kaputtgeht". Aber Du hast Recht: vielleicht löst man das Problem grundsätzlich besser mit einem Server. Dann könnte der Dienst dort mit allen notwendigen Rechten laufen. Zusätzlich ergäben sich über eine Domäne weitere Steuerungsmöglichkeiten z.B. für das Benutzerverzeichnis. Dagegen steht natürlich, das ein Server nicht für lau zu haben ist. Bei vier Nutzern ist man aber mit weniger als 5€ im Monat dabei.

@Sir Rufo:

Interessanter Gedanke. In Kombination mit dem Server ginge dann auch die Anbindung der "Außenwelt". Es lohnt sich auf alle Fälle darüber nachzudenken (und mit den vier potentiellen Benutzern zu diskutieren).


Bei FTP ist die Funktionsweise einigermaßen klar. Aber darüberhinaus? Kennt jemand ein Tutorial o.ä., in dem nicht nur die Programmierung eines Dienstes, sondern auch die Ansteuerung durch Software beschrieben ist?
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Dateikopie ohne Rechte im Zielverzeichnis?

  Alt 11. Mär 2013, 06:42
Deine Frage ist doch nach einem Transport Protokoll. Wie kommst du jetzt auf einen Server?

Sollen die Dateien lokal oder zentral abgelegt werden?

Soweit erstmal egal, denn um einen Dienst kommst du nicht herum (und schlimm ist das auch nicht).
Der Dienst läuft mit den Rechten, die zum Lesen und Schreiben der Dateien notwendig sind.
Mit dem Transport Protokoll (z.B. FTP = File Transport Protokoll) werden die Daten an den Dienst geliefert, abgerufen oder sogar gelöscht.
Dort wird jetzt entschieden, ob und wie diese Daten gespeichert werden, bzw. welche Datei zurückgeliefert wird bzw. wie die Löschung ausgeführt wird.

Einen Client für FTP zu schreiben ist auch kein Geheimnis und dafür sollten sich auch zig Beispiele finden.

Welches Protokoll du auch verwendest (FTP, WebDAV, HTTP, ein eigenes) die Funktionsweise nach dem Protokoll bleibt gleich. FTP lässt sich hierfür aber am einfachsten benutzen, da es genau dafür (Übertragung von Dateien) gedacht ist. Ob es das Beste in dieser Situation ist, musst du allerdings selber entscheiden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Billa
Billa

Registriert seit: 11. Aug 2003
237 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: Dateikopie ohne Rechte im Zielverzeichnis?

  Alt 11. Mär 2013, 09:00
Der Gedanke an einen Server entstand durch Luckies berechtigten Einwand, dass das Problem der Berechtigung durch einen Dienst (auf einem Win7-Rechner) nur verlagert wird. Also ist meine augenblickliche Vorstellung:
  • Zentrale Speicherung auf einem Server.
  • Dort läuft ein (FTP-) Server mit Zugriffsrechten auf die zentrale Ablage.
  • Ebenfalls dort angesiedelt ist eine Datenbank, die Buch über "Rein" und "Raus" führt.
  • Die User verwalten Ihre Dateien mit Hilfe eines lokalen Programms, das auf die Datenbank auf dem Server zugreift und via FTP-Client Daten mit dem FTP-Server tauscht.
  • Mit Hilfe des Programms ist jeder Nutzer in der Lage, anderen Nutzern Zugriff auf seine Dateien zu gewähren, ohne selbst Admin-Rechte haben zu müssen.

... jetzt wo ich es schreibe, fällt mir auf, dass man das Ganze auch ohne Server in einer Datenbank auf der Win7-Maschine erledigen kann .... der DB ist schließlich egal, ob neben den Berechtigungen auch gleich die Dateien selbst gespeichert werden. Hätte ich auch vorher drauf kommen können. Danke jedenfalls für die offenbar nötigen Denkanstösse ...
Gruß Billa

Nur weil ich paranoid bin, heißt das nicht, daß die da draussen nicht hinter mir her sind....
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Dateikopie ohne Rechte im Zielverzeichnis?

  Alt 11. Mär 2013, 09:19
Dann hast du Luckie nicht verstanden ...

Wenn du zum kopieren einer Datei den Dienst starten willst, dann benötigst du (der aktuelle Anwender) Administratoren Rechte. Was nutzt es also, einen Bereich zu schützen, wenn der Benutzer "Administrator" sein muss um mit deinem Programm arbeiten zu können. Als "Administrator" kann er sich auf alles einen Zugriff holen.

Starte einfach den Dienst und übergib diesem (z.B. per FTP) das was du erreichen möchtest (laden,speichern,löschen,etc.) und der Dienst führt diese Aktion dann im eigenen Kontext aus.

Auf einen Server bezog sich die Aussage von Luckie noch nicht einmal ansatzweise
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Dateikopie ohne Rechte im Zielverzeichnis?

  Alt 11. Mär 2013, 09:35
BTW

Dem FTP-Server ist es sowas von egal ob es sich um echte Dateien handelt. Der FTp-Server arbeitet einfach nur mit Streams. Wo dieser Stream herkommt, wie du den verwaltest, dass ist deine Sache.

Du könntest also das Dateisystem nebst den Inhalten selber komplett in einer Datenbank verwalten (ob das Sinn macht ist erstmal egal).

Auch ist es dem FTP-Server schnuppe, wo die Dateien liegen (solange er darauf zugreifen kann).

Du kannst also die gesamte Dateistruktur in deiner DB halten und die Datei-Inhalte werden unter einem beliebigen Dateinamen auf der Platte abgelegt.
Die Datenbank führt z.B. ein ID-Feld für jede Datei. Diese ID ist nun auch gleichzeitig der reale Dateiname auf der Platte.

Damit die Verzeichnisse nicht übervoll werden kannst du diese nach folgender Logik ablegen:

Eine ID ist idR. ein Int64 und kann als 8-stellige Hex-Zahl dargestellt werden.
Die Datei MeineDatei.txt mit der ID 485325 in Hex 000767CD ist dann real auf der Platte unter {Ablage-Verzeichnis}\00\07\67\CD.txt zu erreichen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


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 +1. Es ist jetzt 10:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz