FTP-Accounts erzeugen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • FTP-Accounts erzeugen

    Gibt es die möglichkeit mit PHP einen FTP-Account zu erzeugen. Also nicht mit PHP über das FTP-Protokoll auf einen Server zuzugreifen, sondern einen Account zu erzeugen, sodass man mit einem FTP-Programm diesen später nutzen kann.

    Mal als Beispiel:
    Ich verwalte mehrere Benutzer, die Daten als Backup auf den Server laden können. Jeder Benutzer soll nun seinen Kunden innerhalb seines Verzeichnisses wiederum Unterverzeichnisse anlegen können, in die die Kunden wiederum per FTP ihre Daten ablegen.
    Natürlich möchte ich den Benutzern nicht erlauben über das Kofigurationsmenü des Servers einen FTP-Account anzulegen und auch nicht die Arbeit selber machen.
    Jeder Benutzer bekommet ein Verzeichnis, innerhalb diesem kann er weitere Anlegen und dafür jeweils einen FTP-Account anlegen.

    Dies nur als Beispielanwendung, bitte nicht näher drauf eingehen.

    Die Frage ist definitiv: Kann ich mit PHP einen FTP-Account für ein bestimmtes Verzeichnis anlegen und wenn ja, wie?
    In Confixx etc. läuft die Administration ja auch über PHP, es muß ja also irgend einen Weg geben

    Dank & Grüße,
    Der Andi

  • #2
    ich weiß jetzt nicht direkt, wie die daten für die accounts auf dem server abgelegt werden. aber wenn du das weißt, sollte es kein problem sein.

    eine fkt. dafür gibt es meines wissens nicht.

    Kommentar


    • #3
      Flasches Forum

      Confixx macht zwar die Oberfläche mit PHP, wird aber definitiv mit Perl und Python gesteuert oberhalb des Home-Pfades. Du musst dir das so denken, die erstellst einen User in der Datenbank und Confixx schaut halt alle 5 Minuten nach, ob es einen Neue User in der Datenbank gibt. Findet Confixx einen Neuen User in der Datenbank wird er per Perl-Script mit Root-Rechten angelegt. So kannst du das in etwa nachbauen.
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #4
        Also mit Perl kann ich FTP-Accounts anlegen?!? Dann werde ich mal im Perl-Forum mein Glück versuchen.

        Merci

        Kommentar


        • #5
          Ich habe nicht gesagt das du das mit Perl kannst!

          Du kannst das auch mit einer Batch-Datei mach. Wichtig ist das die Datei Root-Rechte hat und du sie vom Web her stoßen kannst.

          Da brauchst du mit ins Perl-Forum laufen, da konnen wir dir auch hier helfen.

          Du musst nur wissen wie wird unter Linux ein User angelegt. Wie wird deiser User einer gruppe zugeordnet. Und wie kannst du dem User das Recht geben auf seine Home-Verzeichnis. Wenn du das weißt, brauchst dir nur eine Script zusammen stellen was die Aufgaben abarbeitet und schon ist der user angelegt.
          EDIT:
          Um das zumachen brauchst du selber Root-Rechte auf dem Server, bei einem Webspace-Anbieter wird das woll nicht gehen.
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            Ich kann doch auch mittels PHP UNIX-Shell Befehle absetzen. Mit diesen müßte es doch auch möglich sein einen FTP-Account anzulegen.
            Da muß ich dann wohl auch mal in mein dickes UNIX-Buch schauen, dass ich mir mal zugelegt, aber nie benutzt habe

            Also es ist ein vollständig eigener Server mit Root-Rechten. Daher sollte es kein Problem sein das irgendwie einzurichten. Wenn man nur weis wie.

            Grüße,
            Andi

            Kommentar


            • #7
              Du musst dir eine PHP-Oberfläche machen und ein Script das die Ausführungen machen darf. Nur so geht es. Du kannst das aufgrunde des Apache-Users nicht aus der Oberfläche herraus machen, der hat nämlich keinen Rechte, ausser das anzeigen der Internetseiten.

              Du siehst, es ist nicht soeinfach.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar


              • #8
                Könnte ich das mit einem Cron-Job machen? Der wird ja Serverseitig ausgeführt. Oder ist da das Problem, dass dieser, falls er mit PHP gemacht ist wieder durch den PHP-Interpreter läuft, der wiederum von Apache ausgeführt wird?

                Wie soll ich weiter vor gehen? In welcher Programmiersprache sollte ich das Script machen, was den FTP-Account erzeugt? Ist das ein Shell-Script?
                Wie starte ich dieses dann über meine PHP-Oberfläche oder geht das dann nur wie zuvor von Wotan beschrieben: PHP schreibt daten in DB, Script schaut alle paar Minuten mal vorbei und legt dann den gefundenen Account an, oder löscht diesen.

                Dank & Grüße

                Kommentar


                • #9
                  CroneJob => Ja. Damit bist du wenigstens erstmal unabhängig.

                  Das Script selber kannst du in PHP, Python, Perl oder als Shell-Script schreiben. Wichtig ist nur der Besitzer und der Eigentümer muss in beiden Fällen Root sein von dem Script.


                  Meine vorgehensweise dafür:
                  Per Web-Oberfläche die Daten für den Ordner, Username und Passwort, sowie zu welchen Hauptuser er gehört in eine eigene Datenbank schreiben.
                  Jetzt läst du den CroneJob alle halbe Stunde schauen ob ein neuer User angelegt wurde. Wenn Ja, dann soll das Verzeichnis und der User angelegt werden. In der Tabelle nur noch zwei Spalten für das erfolgreichen Anlegen des Users durch den CronJob und zum Löschen eine Spalte, wenn der User gelöscht werden soll. Das sollte es gewesen sein.
                  *winks*
                  Gilbert
                  ------------------------------------------------
                  Hilfe für eine Vielzahl von Problemen!!!
                  http://www.1st-rootserver.de/

                  Kommentar


                  • #10
                    OK, so weit ist das klar.
                    Nun aber quasi wieder das Hauptproblem:
                    Meinen Cron mache ich also in PHP, nun wieder die Frage, was muß ich wie anlegen, dass es ein FTP-Account ist?
                    Ich lege erst mal ein neues Verzeichnis im WEB-Order an, auf welches der Account dann verweisen soll. Aber wie definiere ich denn nun den Benutzer und das Passwort für dieses Verzeichnis?

                    Ei isch hab doch kei Ahnung

                    Kommentar


                    • #11
                      Anlegen eines Benutzerkonto wird in der /etc/passwd gemacht und hat folgenden Aufbau:
                      Code:
                      rattle:x:503:503:Guy Rattlestern:/home/rattle:/bin/bash
                      Benutzername:Verschlüsseltes Passwort:Benutzernummer:Nummer der Login Gruppe:Kommentar:Home-Verzeichnis:Login-Shell

                      Das Passwort wird in der /etc/shadow gemacht unt hat folgenden Aufbau:
                      Code:
                      rattle:HcX5zb8cpoxmY:11088:0:99999:7:0::
                      Benutzername:verschlüsseltes Passwortatum der letzen Passwortänderungatum, ab dem eine Änderung des Passwortes erzwungen wirdatum, ab dem vor dem Ablauf des Passworte gewarnt wird:Relatives Verfallsdatum eines Konto:Absolutes Verfallsdatum des konto:Spezielle Kennung(Bleibt immer Leer)

                      Reihenfolge zum Anlegen[list=1][*]Anlegen des Datensatzes für den Benutzer in der Datei /etc/passwd[*]Festlegen des Passwortes für den Benutzer[*]Festlegen der Login-Shell für den Benutzer[*]Home-Verzeichnis für den Benutzer anlegen[/list=1]

                      An der Konsole sieht das ganz dan so aus:
                      useradd [-g gruppe] [-b home] [-s shell] benutzername

                      Wie du jetzt aber das Passwort für den Benutzer setzen kannst, fällt mir jetzt gerade nicht driekt ein, nur
                      Die passwd aufrufen
                      Code:
                      # passwd rattle
                      New UNIX Password:
                      Retype new UNIX password:
                      Den User eine Bestimmt Gruppe zuorden wird in der /etc/group gemacht:
                      Code:
                      rattle:x:503:
                      Benutzername:verschlüsseltes Passwort:GruppenID:

                      Das x => verschlüsseltes Passwort verweis auf die /etc/shadow. Muss also an diese Stelle nicht mit angegeben werden.
                      Zuletzt geändert von Wotan; 30.07.2003, 19:37.
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Kommentar


                      • #12
                        OK, ich sehe ein paar Unix-Kentnisse wären von Vorteil!

                        Was ist jetzt immer noch nicht kapiere, wie mache ich das in meinem PHP-Cron?
                        Lese ich die entsprechenden Dateien ein und erzeuge dann eine neue Zeile und speicher das zurück?
                        Oder dann doch per Shell-Befehl?
                        Ich schaue nachher mal in mein Unix-Buch vielleicht steht da ja auch was zum Thema FTP-Account drin.

                        So long...
                        Andi

                        Kommentar


                        • #13
                          Das kannst per Cron machen auch mit PHP. Nur darfst du dann die Datei nicht per URL aufrufen sondern per Pfad. Also /home/user-konto/ftp-user-anlegen.php
                          Das wird auch an der Konsole ausgeführt ohne Problem. Und nicht unter dem user wwwrun(Apache).

                          Was hast du für ein Root-Server und wo?
                          *winks*
                          Gilbert
                          ------------------------------------------------
                          Hilfe für eine Vielzahl von Problemen!!!
                          http://www.1st-rootserver.de/

                          Kommentar


                          • #14
                            ich weiss, ist schon alt ...hab nur grad was gesucht und bin auf den thread hier gestossen, weil ich vor kurzem ein ähnliches problem hatte

                            wollte nur anmerken: das geht ganz easy mit dem proftpd und den (my)sql modulen

                            Kommentar


                            • #15
                              wo finde ich die?

                              Kommentar

                              Lädt...
                              X