Michael Tyssen: ftp-> chmod

Hallo,

Ich verstehe nicht warum ich mit einfachen Befehlen zwar Dateien und Verzeichnisse auf einen Server laden kann, aber nicht die Rechte setzen.

$ftp=Net::FTP->new($urlhome, Debug=>0) || die "Keine Verbindung mit $urlhome.\n";
$ftp->login($fremduser, $fremdpass) || die "Fehler beim einloggen.\n";
$ftp->cwd("cgi-bin");
$ftp->mkdir($acount);
$ftp->cwd("admin");
$ftp->chmod (0777, admin)  // <======= das geht nicht! Warum?

Kan mir jemand helfen?

M.f.G.

Michael Tyssen

  1. Hoi,

    Ich verstehe nicht warum ich mit einfachen Befehlen zwar Dateien und
    Verzeichnisse auf einen Server laden kann, aber nicht die Rechte
    setzen.

    Das kannst du.

    $ftp->chmod (0777, admin)  // <======= das geht nicht! Warum?

    Weil das Objekt die Methode 'chmod' nicht implementiert hat.

    Kan mir jemand helfen?

    Ja, die Perldoc (http://www.perldoc.com/perl5.6.1/lib/Net/FTP.html#METHODS):

    site (ARGS)

    Send a SITE command to the remote server and wait for a response.

    Returns most significant digit of the response code.

    Mit anderem Worten:

    $ftp->site('chmod ....');

    chmod ist nicht im FTP-Protokoll implementiert und muss
    grundsaetzlich ueber SITE ausgefuehrt werden.

    Gruss,
     CK

    1. Hi,
      so klappt das auch nicht; habe wohl was falsch verstanden.

      $ftp->mkdir($server);
      $ftp->site('$server 0777');
      $ftp->cwd("$server");

      $ftp->put($datei1) || die "Fehler beim uploaden von $datei auf $server.\n";
      $ftp->put($datei2) || die "Fehler beim uploaden von $datei auf $server.\n";
      open(FILE,">$datei2");
      $ftp->site('chmod $datei2, 0777');
      print FILE "$server|$username|$adresse|$plz|$tel|$urlhome";
      close(FILE);

      Gruß
      Michael Tyssen

      1. Moin!

        so klappt das auch nicht; habe wohl was falsch verstanden.

        Offenbar. Das normale Kommando für chmod an der Kommandozeile lautet:

        chmod 777 dateiname

        Das sollte auch für FTP das richtige Kommando sein. Setze es in Anführungszeichen ins SITE-Kommando, und schau, was rauskommt.

        - Sven Rautenberg

        1. Danke Danke Super Super   Sven
          3Wochen habe ich daran rumgewürgt.

          Jetzt muß ich nur noch wissen wie man das mit Verzeichnissen mache.

          »»»» chmod 777 verzeichniss       funkt nicht.

          M.f.G
          Michael Tyssen

          1. Danke Danke Super Super   Sven
            3Wochen habe ich daran rumgewürgt.

            Jetzt muß ich nur noch wissen wie man das mit Verzeichnissen mache.

            Ganz genauso. Dateien und Verzeichnisse sind im wesentlich genau dasselbe.

            »»»» chmod 777 verzeichniss       funkt nicht.

            Bist Du sicher, dass Du im richtigen Verzeichnis bist? Sah mir vorhin bei Deinem Beispiel nicht so aus. Dort bist Du erst ins Verzeichnis admin, um dann "admin" zu chmodden (oder zumindest so zu tun). Faellt Dir da was auf?

            So long

            1. Jetzt bin ich mir sicher:

              »»»» chmod 777 verzeichniss       funkt nicht.

              kann ein Script nicht per FTP Verzeichnisse chmoden?

              Gruß
              Tyssen

              1. Hoi,

                Jetzt bin ich mir sicher:

                chmod 777 verzeichniss         funkt nicht.

                kann ein Script nicht per FTP Verzeichnisse chmoden?

                Das kommt darauf an, was du damit meinst. Wenn du meinst,
                dass sie rekursiv geaendert werden -- doch, aber dafuer
                musst du einen Parameter mehr angeben. Wenn du meinst,
                dass das Verzeichnis selber seine Rechte aendern soll --
                doch, auch das tut es.

                Gruesse,
                 CK

                1. genau das Verzecichniss muß 777 haben, da der Nutzer
                  dort selber seine Passwortdateien per Script setzen, kann, sollte.

                  Ich muß jetzt also nur noch wissen wie ich das dem Script sagen muß, das er per FTP dir Rechte eines Verzeicnissen setzen muß.
                  Bitte posteet mir einfach mal die Zeile wie Sie aussehen muß.

                  Ich danke.  Ist das Letzte Problem an einer 3Monatigen Arbeit.

                  Gruß
                  Tyssen

                  1. Re-Hi!

                    Ich muß jetzt also nur noch wissen wie ich das dem Script sagen muß, das er per FTP dir Rechte eines Verzeicnissen setzen muß.
                    Bitte posteet mir einfach mal die Zeile wie Sie aussehen muß.

                    Puh, na gut, damit das ein Ende findet.
                    $ftp->site('chmod 777 dateiname');

                    Da haettest Du nach Svens Posting aber wirklich selber drauf kommen koennen. Immerhin bietest Du ja sogar Perl Programmierung als Dienstleistung an.

                    So long

                    1. jamei! soweit war ich auch.
                      Aber damit konnte ich bis jetzt noch kein Verzeichniss chmoden.

                      Es ist eben noch kein Meister vom Himmel gefallen.
                      Dienstleistungen kann man Anbieten. Welche Aufgaben man dann annimmt ist eine andere Sache. Oder?

                      M.f.G.

                      Michael

                      1. Hallo, <-- so nennt man eine Begruessung

                        Aber damit konnte ich bis jetzt noch kein Verzeichniss chmoden.

                        Natuerlich. Wieso sollte man das nicht koennen?

                        Gruesse,
                         CK

                      2. jamei! soweit war ich auch.
                        Aber damit konnte ich bis jetzt noch kein Verzeichniss chmoden.

                        Tja, dann weiss ich leider auch nicht, was das Problem ist. Leider wirft Net::FTP auch nicht gerade mit Fehlermeldungen um sich. (Das ist eines der Dinge, die ich bei den ach so schoen vereinfachenden Perlmodulen immer so hasse.) Immerhin gibt site() die erste Ziffer der Fehlernummer zurueck. Wie lautet denn die? Uebrigens ist es so, dass nicht alle FTP server das chmod bereitstellen. Daher solltest Du vielleicht mal ueberpruefen, ob Du das mit einem normalen FTP client ueberhaupt hinkriegst.

                        So long