Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Benutzerrechte bei Indy FTP (https://www.delphipraxis.net/140384-benutzerrechte-bei-indy-ftp.html)

stho 17. Sep 2009 08:02


Benutzerrechte bei Indy FTP
 
Hallo Leute

Ich versuche seit einiger Zeit die Benutzerrechte auf einem FTP per Indy-Komponente ab zu fragen. :(

Weiß jemand von euch wie man das machen könnte?
Ich bin am verzweifeln... :wall:

Achja, ich benutzt Delphi 2007 mit Indy 10.1.5.0


Ich bitte um eure Hilfe!!!

Klaus01 17. Sep 2009 08:39

Re: Benutzerrechte bei Indy FTP
 
Guten Morgen,

du wirst wohl die Rechte des Users haben mit dem Du dich per FTP auf den
Server verbunden hast.
Eine Möglichkeit dediziert Rechte abzufragen sind mir für das FTP-Protokol nicht bekannt.

Was willst Du denn damit erreichen?

Grüße
Klaus

stho 17. Sep 2009 08:47

Re: Benutzerrechte bei Indy FTP
 
Ich bedanke mich schonmal für deine Antwort :-)


Nun, ursprünglich soll das Programm sich mit dem FTP verbinden, ein Archiv mit verändertem Namen (INCOMPLETE_ + Archivname)
hoch laden, nach dem hochladen, die Datei umbenennen (Archivname ohne IMCOMPLETE_) und diese Datei datei wohlweise downloaden.
Nach dem Download soll die Datei wieder gelöscht werden.

Nun macht es natürlich keinen Sinn diese Schritte zu beginnen wenn nichtmal einer davon funktioniert...
Sonst hätte der ganze vorgang keinen sinn wenn beispielweise das umbennennen nicht klappt.


Ich weiß, ich drücke mich etwas seltsam aus, aber ich hoffe es ist klar was ich versuche zu erreichen oder möchte.

Klaus01 17. Sep 2009 08:54

Re: Benutzerrechte bei Indy FTP
 
.. der Sinn hat sich mir noch nicht ganz erschlossen.

Aber wenn Du eine Datei hochladen kannst (also auf dem FTP-Server erstellen kannst)
sehe ich keinen Grund dass das Umbenennen fehlschlagen sollte.

Grüße
Klaus

franktron 17. Sep 2009 09:19

Re: Benutzerrechte bei Indy FTP
 
Zitat:

Zitat von Klaus01
.. der Sinn hat sich mir noch nicht ganz erschlossen.

Aber wenn Du eine Datei hochladen kannst (also auf dem FTP-Server erstellen kannst)
sehe ich keinen Grund dass das Umbenennen fehlschlagen sollte.

Grüße
Klaus

Das ist eine Fragen ob der FTP-Server das überhaupt unterstützt.

stho 17. Sep 2009 09:29

Re: Benutzerrechte bei Indy FTP
 
Nun, momentan arbeite ich zum testen mit einem localen FTP. Bei dem kann ich dem User bestimmte Rechte erteilen oder eben nehmen.
Doch dieses Programm soll auf FTPs zugreifen sie nicht unter meiner Kontrolle stehen, also bei denen ich kein Admin bin.

Die aktuelle Abfrage ob es möglich ist Dateien zu löschen oder um zu benennen, funktioniert auf dem localen FTP ganz gut. Doch leider hat sich bei dem Test mit einem richtigen FTP ergeben, dass dort die Zeit für die ganzen Überprüfungen fast 20-30 sekunden dauert! (bei reduziertem timeout)

deshalb jetzt meine Frage, kann man Rechte eigentlich auch anderweitig vom FTP erfragen?

(Momentan mache ich das über try ... except. Er versucht etwas zu tun, wenns klappt dann hab ich das Recht anscheinend und wenn nicht, dann nicht.)

franktron 17. Sep 2009 09:57

Re: Benutzerrechte bei Indy FTP
 
Es gibt FTP Server die ihre Befehlsliste sagen muss aber nicht.

Das habe ich auch schon mal bei gesehen das FTPs das machen ich kenne aber leider den Befehl nicht.

MisterNiceGuy 17. Sep 2009 10:20

Re: Benutzerrechte bei Indy FTP
 
Es gibt eine Indykomponente für Benutzerzugriffsberechtigungen die du einfach an die Komponente anflanschen kannst.
Weiß grad nicht wie die heißt, aber guck mal die Komponenten durch ;)

stho 17. Sep 2009 10:37

Re: Benutzerrechte bei Indy FTP
 
Ich beschäftige mich ja auch mit dem Problem und überlasse euch nicht die Arbeit ^^

Hab mir hier noch nen Diplom-Informatiker zu Rate gezogen der jetzt auch mal nen bissel guckt...


Die Komponente heißt idFSP und KÖNNTE meine Fragen beantworten...
... wenn es bei ihr eine Möglichkeit gäbe sich mit dem FTP zu verbinden :wall:

Leider gibts es keine property in die ich Usernamen, Passwort oder ähnliches eintragen kann :-(


Danke trotzdem für die rege Beteiligung...
:dp:

Klaus01 17. Sep 2009 10:45

Re: Benutzerrechte bei Indy FTP
 
.. habe mal schnell in die Delphi Hilfe geschaut:

Zitat:

F
ile
. IdFSP
. Declaration
. TIdFSP = class(TIdUDPClient)
Summary
. Implements a File Service Protocol (FSP) version 2 client.
Das ist ein eigenes Protokoll basierend auf UDP.
FTP arbeitet auf TCP.

Grüße
Klaus

stho 17. Sep 2009 11:15

Re: Benutzerrechte bei Indy FTP
 
Zitat:

Das ist ein eigenes Protokoll basierend auf UDP.
FTP arbeitet auf TCP.
Sei mir nicht böse aber ich verstehe leider nicht worauf du hinaus willst...
brauche ich denn etwa kein Passwort + Username bei UDP? :gruebel:

das währe mir dann nähmlich neu...

Klaus01 17. Sep 2009 11:26

Re: Benutzerrechte bei Indy FTP
 
So weit ich das aus der Hilfe verstanden habe.

a) ist FSP ein eigenes Protokoll (Deine Gegenstelle muss also auch FSP sprechen/verstehen können).
b) UDP und TCP sind zwei verschiedene Transportschichtprotokolle sie verstehn sich nicht untereinander
TCP kann nicht mit UDP kommunizieren.

Also aus rein technischer Sicht kann FSP sich nicht mit einem FTP Server unterhalten.

Grüße
Klaus

mjustin 17. Sep 2009 11:36

Re: Benutzerrechte bei Indy FTP
 
Zitat:

Zitat von stho
Hallo Leute

Ich versuche seit einiger Zeit die Benutzerrechte auf einem FTP per Indy-Komponente ab zu fragen. :(

Weiß jemand von euch wie man das machen könnte?
Ich bin am verzweifeln... :wall:

Achja, ich benutzt Delphi 2007 mit Indy 10.1.5.0

Benutzerrechte sind betriebsystemabhängig. Testweise kann man mit FileZilla FTP Client mal auf einem konkreten FTP Server schauen, ob Rechte / Gruppen angezeigt werden. Wenn man davo ausgehen kann, dass nur ein bestimmter Server(typ) eingesetzt wird, kann man die dazu passende DirectoryListParser Klasse in Indy verwenden.

Eventuell als Einstieg brauchbar:

http://www.indyproject.org/KB/index....ngisreturn.htm


Indy 10.5.6 ist die aktuelle Version (sogenannter Tiburon Branch, funktioniert auch mit alten Delphi Versionen).

Cheers,

stho 17. Sep 2009 11:51

Re: Benutzerrechte bei Indy FTP
 
VIelen Dank für die Antwort :wink:


Leider ist der Servertyp variabel. :-(
Ich benutze FlashFXP zum FTP-Connect...

Hm... bin noch immer dran das Problem zu lösen...

Auch wenn ich jetzt doof frage, idFSP kann mir hier bei meinem FTP also gar nicht helfen, oder sehe ich das falsch? :roll:

nahpets 17. Sep 2009 11:52

Re: Benutzerrechte bei Indy FTP
 
Hallo,

eine nicht hilfreiche Antwort: Der Total-Commander kann das, es muss also einen Weg geben.

Laut Hilfe geht das über:
Code:
SITE chmod xyz datei.ext
Dies wird allerdings nicht von allen FTP-Servern unterstützt.
Da er die gesetzten Rechte auch in einem Dialog anzeigen kann, muss die Abfrage ebenfalls möglich sein.

Schau Dir dazu mal folgendes an:
Delphi-Quellcode:
 
IdFTP1.DirectoryListing[0].OwnerPermissions;
IdFTP1.DirectoryListing[0].GroupPermissions;
idFTP1.DirectoryListing[0].UserPermissions;
idFTP1.DirectoryListing[0].OwnerName;
idFTP1.DirectoryListing[0].GroupName;
Das sind alles String, die die entsprechenden Informationen enthalten müssten.

stho 17. Sep 2009 12:02

Re: Benutzerrechte bei Indy FTP
 
Zitat:

IdFTP1.DirectoryListing[0].OwnerPermissions;
IdFTP1.DirectoryListing[0].GroupPermissions;
idFTP1.DirectoryListing[0].UserPermissions;
idFTP1.DirectoryListing[0].OwnerName;
idFTP1.DirectoryListing[0].GroupName;

Das ist natürlich ne super sache, doch leider gibts es diese Einträge bei mir nicht :?

Kann es sein oder besteht die möglichkeit das ich diese Properties irgendwie hinzu füge? :glaskugel:

franktron 17. Sep 2009 12:28

Re: Benutzerrechte bei Indy FTP
 
Das heißt unter Indy 10 z.b. idftp1.DirectoryListing.Items[i].Size

nahpets 17. Sep 2009 12:34

Re: Benutzerrechte bei Indy FTP
 
Hallo,

naja, meine Indy-Version ist (ab in die Ecke stellen) 9.00.10, also schon ein bisserl älter.

Aber mit IdFTP1.DirectoryListing.Items[0].OwnerPermissions geht's bei Indy 9 und 10, wie franktron schon geschrieben hat.

stho 17. Sep 2009 12:44

Re: Benutzerrechte bei Indy FTP
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich habe nochmal überprüft was ihr geschrieben habt doch leider leider gibts den begriff wirklich nicht... :(

Habe ein Bild angehängt wo ihr das draus erkennen könnt...


Ich glaube Delphi mag mich nicht... :|



Achja, entschuldigt das ich den restlichen Code überschrieben habe... Leider weiß ich net wie die firma reagiert wenn ich den code hier rein stelle...

nahpets 17. Sep 2009 13:02

Re: Benutzerrechte bei Indy FTP
 
Hallo,

was zeigt Dir denn die Autovervollständigung an, wenn Du IdFTP1.DirectoryListing.Items[0]. eingibst?

stho 17. Sep 2009 13:11

Re: Benutzerrechte bei Indy FTP
 
Liste der Anhänge anzeigen (Anzahl: 1)
na diese Frage beantworte ich doch so schnell es geht :zwinker:

Die Liste ist zusammengeschnitten weil er mir nicht alles auf eine Seite gemacht hat ^^

Klaus01 17. Sep 2009 13:26

Re: Benutzerrechte bei Indy FTP
 
.. na, das PermissionsDisplay liest sich doch eigentlich ganz gut?

Grüße
Klaus

stho 17. Sep 2009 13:34

Re: Benutzerrechte bei Indy FTP
 
stimmt schon. daran hatte ich zuerst auch gedacht...

-rwx------ (Rückgabewert)

Ich teste das ja aktuell mit einem localen FTP und der Rückgabewert ist unabhängig von den Einstellungen IMMER der selbe :cry:
Egal ob der Upload erlaubt ist oder nicht, egal ob Rename, Delete oder ähnliches möglich ist oder nicht...

Klaus01 17. Sep 2009 13:38

Re: Benutzerrechte bei Indy FTP
 
Zitat:

Zitat von stho
stimmt schon. daran hatte ich zuerst auch gedacht...

-rwx------ (Rückgabewert)

Ich teste das ja aktuell mit einem localen FTP und der Rückgabewert ist unabhängig von den Einstellungen IMMER der selbe :cry:
Egal ob der Upload erlaubt ist oder nicht, egal ob Rename, Delete oder ähnliches möglich ist oder nicht...

.. wo änderst Du denn die Einstellungen?
Der Rückgabewert zeigt die Verzeichnisberechtigung an.
(duuugggooo)
1. Zeichen: - -> Datei
d -> Verzeichnis
2-4 Zeichen - rwx (read write execute) für den user
5-7 - rwx für die Gruppe
8-10 - rwx für alle anderen

Testest Du mit einem Windows FTP Server oder Linux/Unix?

Grüße
Klaus

stho 17. Sep 2009 13:43

Re: Benutzerrechte bei Indy FTP
 
Also dieses Wissen was du mir hier vermittelst finde ich sehr interessant :-) Danke schonmal dafür

Nun, leider kann ich deine Frage nicht ganz verstehen aber ich versuch mal drauf zu antworten:

Das System ist ein XP Pro mit (vermutlich) SP3
Also FTP nutze ich -Quick 'n Easy FTP Server 3.1 Lite-

Ich ändere die Zugriffsrechte mithilfe der Account-Verwaltung in dem FTP-Prog

Klaus01 17. Sep 2009 13:49

Re: Benutzerrechte bei Indy FTP
 
Zitat:

Zitat von stho
Also dieses Wissen was du mir hier vermittelst finde ich sehr interessant :-) Danke schonmal dafür

Nun, leider kann ich deine Frage nicht ganz verstehen aber ich versuch mal drauf zu antworten:

Das System ist ein XP Pro mit (vermutlich) SP3
Also FTP nutze ich -Quick 'n Easy FTP Server 3.1 Lite-

Ich ändere die Zugriffsrechte mithilfe der Account-Verwaltung in dem FTP-Prog

Nun, ich weiß nicht, ob der Windows FTP Server solche Permissions bereitstellt.
Ich weiß auch nicht, ob Dein FTP Server die Dateiberechtigungen ändert
oder nur die GET und PUT Befehle ausfiltert und entsprechend reagiert.

Auf Linux/Unix wird das über die Verzeichnisberechtigung gehandhabt.
Hat ein User keine Schreibberechtigung in dem Verzeichnis kann er auch per FTP nichts
in das Verzeichnis einspielen.

Grüße
Klaus

stho 17. Sep 2009 13:54

Re: Benutzerrechte bei Indy FTP
 
das kann ich dir leider auch nicht sagen :(

Und genau das ist ja was mich so traurig macht...
Im moment arbeite ich frei nach dem Prinzip "versuchen und verlieren"
Und das um JEDE Berechtigung zu überprüfen...


Delphi-Quellcode:
try
  idFTP1.Put(XYZ);
  //Funktioniert!!!
except
  //Funktioniert nicht!!!
end

1. Dauert diese Methode elendig lange (Er liefert mir ja ein Time-Out zurück wenn er keine Rechte hat) und
2. ist die alles andere als ein Vorzeigemodell...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz