Felix Riesterer: novell client unter linux - wie den apachen daran anmelden?

Liebe Linux-Experten,

mit Linux mache ich gerade erste Gehversuche und habe schon eine Aufgabe, die mich an den Rand meines für Linux eh schon stark begrenztes Wissen bringt:

In unserer Schule verwenden wir eine "Musterlösung", die auf Novell NetWare 5 basiert. Da ich im Intranet der Schule einen Apachen unter SUSE10 aufsetzen möchte, der auch Zugriff auf das Internet haben soll, braucht dieser irgendwie die Möglichkeit, sich bei Novell NetWare 5 anzumelden.

Hat jemand schoneinmal von soetwas gehört? Nach allem, was ich zu diesem Client auf der Dokuseite auf Novell.com habe lesen können, müsste man irgendwie den Apachen dazu bringen, dass er sich am Server mit Benutzernamen und Passwort über diesen Novell Client anmeldet, um von diesem dann die notwendige Resource für HTTP oder sogar FTP (welches bei uns irgendwie nicht verfügbar ist) nutzen zu dürfen. Aber der Apache ist ja kein menschlicher Benutzer, der mal eben eine Shell öffnen und einen Login vornehmen könnte... Außerdem sollte der Apache unter einem (ist das bei Linux nicht so üblich) eigenen Benutzerkonto laufen, egal welcher menschliche Benutzer sich gerade am Desktop angemeldet hat.

Wer hat mit dieser oder einer ähnlichen Thematik schon Erfahrungen sammeln können und weiß Rat?

Liebe Grüße aus Ellwangen,

Felix Riesterer.

  1. Hallo Felix,

    mir fällt gerade die Kinnlade 'runter!

    In unserer Schule verwenden wir eine "Musterlösung", die auf Novell NetWare 5 basiert. Da ich im Intranet der Schule einen Apachen unter SUSE10 aufsetzen möchte, der auch Zugriff auf das Internet haben soll, braucht dieser irgendwie die Möglichkeit, sich bei Novell NetWare 5 anzumelden.

    Ein Webserver, so auch der Apache, nimmt keinen Zugriff auf das internet, sondern wartet -Diva like- auf Zugriffe aus dem Internet.

    Nach allem, was ich zu diesem Client auf der Dokuseite auf Novell.com habe lesen können, müsste man irgendwie den Apachen dazu bringen, dass er sich am Server mit Benutzernamen und Passwort über diesen Novell Client anmeldet, um von diesem dann die notwendige Resource für HTTP oder sogar FTP (welches bei uns irgendwie nicht verfügbar ist) nutzen zu dürfen.

    Ich habe mir das referenzierte Dokument nicht mit allen Kapiteln angesehen; genau genommen bin ich am Teil der Überschrift "Client" hängengeblieben. Der Apache ist kein Clienet sondern ein Server! Nach Deiner Schilderung wird er auch nicht auf NetWare betrieben, sondern auf SUSe.

    Gruß aus Berlin!
    eddi

    1. Lieber eddi,

      Der Apache ist kein Clienet sondern ein Server! Nach Deiner Schilderung wird er auch nicht auf NetWare betrieben, sondern auf SUSe.

      Du hast sicher Recht. Aber dieser Apache soll per Cronjob alle 30 Minuten eine JPEG-Datei auf unseren Webspace hochladen. Damit wird er (ich mag mich täuschen) auf eine Internetverbindung angewiesen sein, die ihm aber nur NetWare geben kann. Und genau deshalb soll sich der Apache (den man "von außen" überhaupt nicht erreichen können soll[1]) über einen Novell-Client diesen Internet-Zugang holen.

      Oder kennt jemand eine andere Möglichkeit, wie der Apache aus unserem Intranet einen HTTP-Fileupload hinbekommen soll (FTP ist aus unserem Intranet aus welchen Gründen auch immer nicht möglich, fragt bitte net, warum >:-[)?

      Liebe Grüße aus Ellwangen,

      Felix Riesterer.

      [1] das regle ich mit einer <Directory>-Direktive

      1. hallo Felix,

        dieser Apache soll per Cronjob alle 30 Minuten eine JPEG-Datei auf unseren Webspace hochladen.

        Wo befindet sich dieser "Webspace"? Ist das ein Verzeichnis im Intranet oder ist das etwas online bei einem Provider?
        Unabhängig davon: sowas ist keine Aufgabe für den Apache. Für einen Cronjob sehr wohl, da schreibst du eben ein kleines Script, das diese JPEG per FTP-Aufruf dahin schiebt, wo sie hinsoll.

        Damit wird er (ich mag mich täuschen) auf eine Internetverbindung angewiesen sein

        Du täuschst dich grundsätzlich.

        der Apache (den man "von außen" überhaupt nicht erreichen können soll[1])

        Kann man aber, sofern er port 80 benutzt.

        Oder kennt jemand eine andere Möglichkeit, wie der Apache aus unserem Intranet einen HTTP-Fileupload hinbekommen soll

        Nein. Der Apache ist ein HTTP-Webserver und hat mit FTP nichts zu tun.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. Lieber Christoph,

          vielleicht hätte ich gleich die ganze Geschichte erzählen sollen, denn ich habe das Gefühl, dass ich missverstanden werde.

          Es geht um eine WebCam, die die Baustelle unseres Erweiterungsbaus "fotografieren" soll. Dieses Bild soll alle 30 Minuten auf unserer Schulhomepage aktualisiert werden.

          Die Baufirma benutzt uns und unsere Internetanbindung, um das Bild ihrer WebCam ins Netz zu stellen.

          Da ich keine Idee hatte, wie ich (als Webmaster war ich automatisch der dafür Verantwortliche) diese Aufgabe anders lösen sollte, habe ich mir folgendes Konzept ausgedacht:

          Die Kamera lässt sich via HTTP ansprechen. Sie enthält einen http-Server, der über eine HTML-Oberfläche die Wartung/Einstellung der Kamera ermöglicht. Das tatsächliche Bild bekomme ich z.B. über ein Kamera-internes CGI-Skript geliefert, welches die Abmessungen aus dem Searchstring entnimmt usw...

          Da ich mich am ehesten mit PHP auskenne, hatte ich die Idee, mit einem PHP-Script auf einem Apachen die Kamera auszulesen, das Bild zu speichern und per http-upload (FTP geht bei uns einfach nicht!!!) seitens des PHP-Scripts auf unseren Webspace im Internet hochzuladen.

          Daher kommt hier ein im Intranet agierender Apache (wohl eher ein PHP-Script) in meiner Problembeschreibung vor.

          Da unser Internetzugang über Novell NetWare5 geregelt ist, kann mein Script (oder der Apache, oder wie man das jetzt nennen mag) nur dann auf das Internet zugreifen, wenn es der Novell-NetWare-Server zulässt. Dieses tut er gerne und bereitwillig, wenn man sich bei ihm mit einem Novell-Client eingeloggt hat.

          Wie also kann sich mein PHP-Script auf meinem SUSE-Apachen beim Novell-NetWare-Server einloggen, damit der es ins Intenet uploaden lässt?

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

          1. Hallo,

            Daher kommt hier ein im Intranet agierender Apache (wohl eher ein PHP-Script) in meiner Problembeschreibung vor.

            ... eben, das _PHP-Script_ muss über das _System_ auf das Internet zugreifen können.

            Wie also kann sich mein PHP-Script auf meinem SUSE-Apachen beim Novell-NetWare-Server einloggen, damit der es ins Intenet uploaden lässt?

            Via System-exec und Shell Commands des Novell Clients.

            btw.: Wie regelt Euer Novell den Internetzugang? Mit Hilfe des Proxys im BorderManager?

            viele Grüße

            Axel

            1. Lieber Axel,

              hurra, jemand der das schoneinmal gehört (oder gar gesehen / in der hand gehabt) hat!!! Axel, ich baue auf Dich!

              Via System-exec und Shell Commands des Novell Clients.

              Das klingt für mich nach Böhmischen Dörfern, aber auch sehr verheißungsvoll. Werde mir das mal zu Gemüte führen.

              btw.: Wie regelt Euer Novell den Internetzugang? Mit Hilfe des Proxys im BorderManager?

              Exakt. Es ist mir gelungen den Novell-Client auf einem SUSE10 zu installieren, und es ist mir sogar auch noch gelungen mich damit am Server anzumelden, der mir dann Prompt diverse Netzlaufwerke als Verzeichnisse in meinem Home gemountet hat.

              Nur eine Internetseite konnte ich im Browser trotz eingestelltem Proxy nicht aufrufen... Das PHP-Script meldete auch, dass es keine Namensauflösung vornehmen kann. Nach Deiner Nachfrage erscheint mir das immer logischer.

              OK. Wenn ich mir die Commands reingezogen habe, melde ich mich wieder. Bis dahin werde ich sicherlich neue Fragen haben.

              Bis hierher jedenfalls vielen Dank für den Hinweis!

              Liebe Grüße aus Ellwangen,

              Felix Riesterer.

              1. Hallo,

                wenn ich es richtig verstehe, willst Du auf einer Zweitmaschine, die mit SUSe betrieben wird, einen Apachen zum laufen bringen, um PHP-Scripte auszuführen, die dafür sorgetragen, daß Bilder einer WebCam zu einer anderen Maschien transportierte werden?!

                AUA!

                Wenn Du Dich mit PHP soweit auskennst und Dir auch am ehesten vorstellen kannst, Dein Vorhaben mit PHP umzusetzen, dann solltest Du hierbei PHP als Command Line Interface nutzen. Denn so kannst Du erheblich einfacher den CronJob ausführen lassen und von der Programmierung innerhalb PHPs ändert sich auch fast nichts. Die für die Scripte erheblichen Parameter holst Du nur aus $argv, statt aus $_GET.

                Gruß aus Berlin!
                eddi

                1. Lieber eddi,

                  Danke für das 'AUA!' ;-)

                  Es mag Dir reichlich nach Hose-mit-Beißzange vorkommen, aber die Linux-Kiste soll neben dieser WebCam-Geschichte auch Server-Funktionalitäten (deswegen Apache) mit MySQL für Unterrichtszwecke bereitstellen. Deswegen möchte ich sie vollständig in unser Netzwerk integrieren. Dass für die WebCam-Geschichte PHP auf der Kommandozeile völlig ausreichen würde ist mir zwar theoretisch klar, aber mit einer Kommandozeilenversion habe ich noch nie gearbeitet. Zudem ist ein Testen meiner geplanten Funktionalitäten in der mir vertrauten Apache-Umgebung am schnellsten realisierbar gewesen. Ich war ja schon glügklich, dass es von meinem DSL-WindowsXP-Testaufbau aus auch geklappt hat, wenngleich auch nur per Browser-Request, und noch nicht per Taskplaner/Cronjob. Aber das wollte ich erst im nächsten Schritt lösen.

                  Wenn Du Dich mit PHP soweit auskennst und Dir auch am ehesten vorstellen kannst, Dein Vorhaben mit PHP umzusetzen, dann solltest Du hierbei PHP als Command Line Interface nutzen. Denn so kannst Du erheblich einfacher den CronJob ausführen lassen und von der Programmierung innerhalb PHPs ändert sich auch fast nichts. Die für die Scripte erheblichen Parameter holst Du nur aus $argv, statt aus $_GET.

                  Vielen Dank für diesen für mich nicht unwichtigen Hinweis! Ich werde mich selbstverständlich im Zusammenhang mit Cronjobs (die ich mir auch erst anlesen muss) PHP als Commandline-Tool aneignen. Aber soweit bin ich noch nicht, da ich zuerst die Verbindung mit dem Internet über diese Novell-Hürde systemweit erreichen muss, denn sonst kann keine Anwendung, egal ob Browser oder Commandline-PHP erfolgreich auf Internet-Resourcen zugreifen.

                  Liebe Grüße aus Ellwangen,

                  Felix Riesterer.

              2. Hallo,

                hurra, jemand der das schoneinmal gehört (oder gar gesehen / in der hand gehabt) hat!!! Axel, ich baue auf Dich!

                Leider nicht. Ich kenne Novell-Netware etwas und ich habe auch schon Windows- und Linux-Clients an Novell-Netware gebracht. Fürs Internet gab es da im Netz allerdings immer Linux-Proxies.

                btw.: Wie regelt Euer Novell den Internetzugang? Mit Hilfe des Proxys im BorderManager?
                Exakt. Es ist mir gelungen den Novell-Client auf einem SUSE10 zu installieren, und es ist mir sogar auch noch gelungen mich damit am Server anzumelden, der mir dann Prompt diverse Netzlaufwerke als Verzeichnisse in meinem Home gemountet hat.

                Ja, soweit kenne ich das auch. Die Frage nach dem BorderManager habe ich gestellt, weil ich den noch nie konfigurieren musste. Wie gesagt, gab es in den Netzen, mit denen ich es bisher zu Tun hatte, immer einen Linux-Rechner dafür.

                Nur eine Internetseite konnte ich im Browser trotz eingestelltem Proxy nicht aufrufen...

                Das sollte aber gehen, wenn Du angemeldet bist. Was meldet der Browser?

                Das PHP-Script meldete auch, dass es keine Namensauflösung vornehmen kann. Nach Deiner Nachfrage erscheint mir das immer logischer.

                Das kann sein. Wenn die Clients nur via Proxy ins Internet sollen, brauchen diese ja keine internetweite Namensauflösung. Das würde Deine Aufgabe aber erschweren, weil Du dann natürlich schlecht über die shell aufs Internet zugreifen kannst. Du müsstest dann einen eigenen Proxy-Client programmieren.

                Wer administriert denn den Novell-Server? Der könnte eventuell auch an den Logs des BorderManagers sehen, was da mit Deine Linux-Client falsch läuft.

                viele Grüße

                Axel

                1. Lieber Axel,

                  btw.: Wie regelt Euer Novell den Internetzugang? Mit Hilfe des Proxys im BorderManager?
                  Exakt. Es ist mir gelungen den Novell-Client auf einem SUSE10 zu installieren, und es ist mir sogar auch noch gelungen mich damit am Server anzumelden, der mir dann Prompt diverse Netzlaufwerke als Verzeichnisse in meinem Home gemountet hat.
                  Ja, soweit kenne ich das auch. Die Frage nach dem BorderManager habe ich gestellt, weil ich den noch nie konfigurieren musste. Wie gesagt, gab es in den Netzen, mit denen ich es bisher zu Tun hatte, immer einen Linux-Rechner dafür.

                  nach meinen bisherigen Recherchen, darunter einem sehr netten und aufschlussreichen Skype-Telefonat mit einem Herrn Braunstein weiß ich nun folgendes:

                  Windows-Rechner benutzen zusätzlich zu ihrem Novell Client ein Programm namens Client Trust, welches die Novell-Anmeldung auf eventuelle andere Novell-Dienste "ausweitet", was man als User unter Windows aber nicht merkt. Es "funzt" halt einfach...

                  Diese Ausweitung der Anmeldung gelingt unter Linux (wo man beim Anmelden am Linux-Rechner nicht automatisch auch eine Anmeldung am Novell-Client vornimmt, da das getrennte Dinge sind und bleiben) nicht, da dieses Programm für Linux offenbar nicht existiert, bzw. erst im aktuellsten BorderManager als Tarball-Datei für Linux-Kisten enthalten ist. Wie das dann aber technisch funktioniert entzieht sich (noch) meiner Kenntnis. Ich muss erst wieder in unserem Schulnetzwerk nachsehen, ob es überhaupt aktuell genug ist, um mir diese Möglichkeit überhaupt erst zu bieten.

                  Ob dann mit diesem Äquivalent zur Windows-Lösung auch auf Shell-Ebene ein Proxy nutzbar wird, das kann ich auch nicht sagen. Einen Proxy für Shellscripte zu schreiben traue ich mir definitiv nicht zu - egal unter welchem OS.

                  Ich werde wohl sprichwörtlich Himmel und Hölle in Bewegung setzen müssen (in etwa solch einen Aufwand werde ich benötigen, um die für unsere Musterlösung zuständige Firma auf Trab zu bringen... und was die dann berechnen werden, davon träume ich dann in meinen schlaflosen Nächten), um eine Servereinstellung zu erwirken, die dieser Linux-Kiste besondere Internet-Zugangsmöglichkeiten (vielleicht auf IP-Ebene?) gewährt. Oder aber diese Firma bequemt sich tatsächlich dazu, unser System auf den neuesten Stand zu bringen, sprich: alle Softwarekomponenten auf aktuelle Versionen zu patchen/upzugraden. Mein Gott! Ich lebe hier wirklich in der Provinz!

                  Ich werde wohl frühestens am Montag Näheres in Erfahrung bringen können.

                  Liebe Grüße aus Ellwangen,

                  Felix Riesterer.

  2. Nachtrag,

    es ist mir nun gelungen, mit meinem Linux-Testsystem per Browser online zu gehen. Diese Nachricht schreibe ich bereits am Linux-Rechner.

    Dieses habe ich erreicht, indem ich ein Programm namens "Client Trust" (clntrust) zusätzlich zum Novell Client ausgeführt habe. Ähnlich wie unter Windows dehnt es meine Anmeldung am Novell-NetWare-Server aus, sodass ich mit meinem Browser ins Internet kann, da nun auch der BorderManager mich "kennt".

    Wie das auf Cronjob-Ebene werden wird, weiß ich nicht (muss erst noch lernen, einen solchen einzurichten), aber ein Test per Browser-Request-an-Apache-der-HTTP-upload-ins-Internet-probiert ist wieder gescheitert. Exakte Fehlermeldung sah so aus:

    Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /subdomain/webcam/camera.php on line 46

    Warning: fsockopen(): unable to connect to www.peutinger-gymnasium.de:80 in /subdomain/webcam/camera.php on line 46

    Auch ein Wechsel auf Port 8080, der für den Proxy eingestellt ist, brachte keine Änderung. Wie schon angesprochen, muss ich wohl PHP einen Proxy zuweisen... aber wie?

    Einen ersten Hinweis darauf habe ich in den User-Comments auf der Seite zu fsockopen() erhalten, wo jemand ICQ-Statusrequests per PHP erhalten möchte. Aber verstanden habe ich die Vorgehensweise nicht. Auch nicht, ob mir das weiterhelfen würde.

    Wer weiß Rat? Sollte oben verlinkte Methode mir das Schreiben eines Proxyclients ersparen, wäre das RIESIG!!!

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Hallo,

      es ist mir nun gelungen, mit meinem Linux-Testsystem per Browser online zu gehen. Diese Nachricht schreibe ich bereits am Linux-Rechner. Dieses habe ich erreicht, indem ich ein Programm namens "Client Trust" (clntrust) zusätzlich zum Novell Client ausgeführt habe. Ähnlich wie unter Windows dehnt es meine Anmeldung am Novell-NetWare-Server aus, sodass ich mit meinem Browser ins Internet kann, da nun auch der BorderManager mich "kennt".

      neben Glückwünschen, wieder etwas weitergekommen zu sein, bitte ich Dich Dir zu verdeutlichen, was dort im einzelnen geschieht:

      clntrust und ncl_tray sorgen für ein Login Am NetWare-Server, der die Internetverbingunen regelt. Bist Du dort eingeloggt, ist der Weg für den Browser frei. Aber Du meldest Dich mit bspw. dem Benutzernamen "Felix" an. Meldes sich auch der Apache Deines Linux-Rechners beim NetWare-Server an ;)
       Genau da liegt Dein Problem.

      Einen ersten Hinweis darauf habe ich in den User-Comments auf der Seite zu fsockopen() erhalten, wo jemand ICQ-Statusrequests per PHP erhalten möchte. Aber verstanden habe ich die Vorgehensweise nicht. Auch nicht, ob mir das weiterhelfen würde.

      Wenn der NetWare-Server einen Proxy für das Internet anbietet, brauchst Du keinen Novell Client auf dem Linuxsystem, müßtet aber diesen Proxy für Deinen Browser konfigurieren.

      Wer weiß Rat? Sollte oben verlinkte Methode mir das Schreiben eines Proxyclients ersparen, wäre das RIESIG!!!

      Nix da! Ein Proxy-Client-Script ist nach meiner Auffassung Deiner Lage im moment das einfachste, vorausgesetzt der NetWare-Server hat einen Proxy. Ich nehme mal auf das Beispiel:

        
      function proxy_client($url)  
      {  
         $proxy_name = 'netware.server'; /* hier trägst Du die Domain oder IP-  
                                            Adresse des NetWare-Server ein */  
        
         $proxy_port = 8080;             // hier der Port des Proxy-Server  
        
         /* $proxy_user und $proxy_pass werden nur benötigt, wenn NetWare-S.  
            eine Authentifizierung braucht. Das kannst Du mit dem Browser  
            vorher testen, wenn Du den Proxy besuchst und eine typische  
            User-Passwort-Eingabe erscheint. */  
        
         $proxy_user = "";  
         $proxy_pass = "";  
        
         $proxy_cont = '';  
        
         $proxy_fp = fsockopen($proxy_name, $proxy_port);  
         if (!$proxy_fp)  
             return false;  
        
         fputs($proxy_fp, "GET $request_url HTTP/1.0\r\nHost: $proxy_name\r\n");  
         if ($proxy_user!="")  
             fputs($proxy_fp, "Proxy-Authorization: Basic ".  
                              base64_encode ("$proxy_user:$proxy_pass").  
                              "\r\n");  
        
         fputs($proxy_fp, "\r\n");  
        
         while(!feof($proxy_fp)){  
             $proxy_cont .= fread($proxy_fp,4096);  
         }  
         fclose($proxy_fp);  
        
         return $proxy_cont;  
      }  
      echo proxy_client('http://www.peutinger-gymnasium.de/');
      

      Gruß aus Berlin!
      eddi

      1. Hallo,

        Nix da! Ein Proxy-Client-Script ist nach meiner Auffassung Deiner Lage im moment das einfachste, vorausgesetzt der NetWare-Server hat einen Proxy. Ich nehme mal auf das Beispiel:

        fputs($proxy_fp, "Proxy-Authorization: Basic ".
                                base64_encode ("$proxy_user:$proxy_pass").
                                "\r\n");

        Es wäre interessant zu wissen, ob das so funktioniert. Ich glaube es aber eher nicht. Novell wird hier ein proprietäres eigenes Authorization-Scheme nutzen.

        Anzubieten hätte ich noch:

        http://www.stress-free.co.nz/content/view/160/59
        http://cl4others.sourceforge.net/

        viele Grüße

        Axel

        1. Re:

          fputs($proxy_fp,"Proxy-Authorization: Basic ".base64_encode("$proxy_user:$proxy_pass")."\r\n");

          Es wäre interessant zu wissen, ob das so funktioniert. Ich glaube es aber eher nicht. Novell wird hier ein proprietäres eigenes Authorization-Scheme nutzen.

          Ein HTTP-Proxy spricht HTTP. Da gibt es nur Basic und Digest (RFC 2617).

          Gruß aus Berlin!
          eddi

          1. Hallo,

            Ein HTTP-Proxy spricht HTTP. Da gibt es nur Basic und Digest (RFC 2617).

            *g* Ja, standardisiert, aber Microsoft kennt schon einige mehr und Novell Bordermanager kennt als Authetication Scheme nur komisches Zeug wie:
            ...
            Select an authentication scheme: single sign-on or SSL
            ...

            viele Grüße

            Axel

      2. Lieber eddi,

        vielen herzlichen Dank für Deine umfangreichen Bemühungen. Ich bin so glücklich, hier im Forum solche Unterstützung zu erfahren!!

        neben Glückwünschen, wieder etwas weitergekommen zu sein,

        Hihihihi, das tut in der Tat gut! :-)

        clntrust und ncl_tray sorgen für ein Login Am NetWare-Server, der die Internetverbingunen regelt.

        Jein. Nach meinen Recherchen regelt ncl_tray nichts, sondern bietet nur Zugriff auf das Login bzw. Logout Script via Icon im Tray. Diese Scripts wiederum regeln den Login (-out) - aber das ist ja auch vollkommen Schnuppe. Bei erfolgreichem Login werde ich mit Resourcen ("Netzlaufwerken") beglückt, die in meinem Home gemountet werden. Von Internet ist da keine Spur!

        Selbst wenn ich meinen Browser auf den Proxy des BorderManagers eingerichtet habe, verweigert der mir jeglichen Zugang nach "draußen", da er von der Anmeldung über das Loginscript (genauen Namen müsste ich jetzt nachschlagen) nichts mitbekommt. Dafür hat Novell im Servicepack 4 für den BorderManager 3.8 eigens das clntrust entwickelt, das ein "SSO", ein Single Sign-On ermöglichen soll.

        Meine Erfahrungen bestätigen: Nur durch das Zusammenspiel von Login (also dem Novell-Client) und clntrust lernt der BorderManager mich kennen und macht den Weg frei.

        So ganz nebenbei: Ich bin ja sowas von heilfroh, dass das mit unserem derart veralteten BorderManager tatsächlich so klappt! Angeblich ist die Version eine 3.1 oder 3.2, jedoch längst keine aktuelle (3.8.4)...

        Aber Du meldest Dich mit bspw. dem Benutzernamen "Felix" an. Meldes sich auch der Apache Deines Linux-Rechners beim NetWare-Server an ;)
        Genau da liegt Dein Problem.

        Das genau wollte ich ergründen: Kann clntrust verschiedene Logins gleichzeitig verkraften (z.B. einen Daemon mit eigenem Novell-Login parallel zu einem User-Login)? Wenn dem so wäre, dann hätte unser Admin schon einen Account eigens für den Apachen eingerichtet, bzw. für irgendwelchen Proxybedarf irgendwelcher Applikationen (und seien es Cronjob-Shell-Skripte o.ä.).

        Wenn der NetWare-Server einen Proxy für das Internet anbietet, brauchst Du keinen Novell Client auf dem Linuxsystem, müßtet aber diesen Proxy für Deinen Browser konfigurieren.

        Wie oben schon erwähnt, ist mein Browser Internetfähig, da dort die Proxy-Einstellungen vorgenommen sind. Für das Skript müsste ich ja dann das Browserverhalten emulieren (oder heißt das hier simulieren?). Genau da kam mir das Beispiel auf php.net sehr gelegen, da es anscheinend einen HTTP-GET-Request an einen Server schickt, an den es weitere Dinger dranhängt. In meinem Falle müsste ich einen HTTP-POST-Request schicken, da ich ja ein <form enctype="multipart/form-data"> absenden will (auch wieder emu-/simuliert).

        Nix da! Ein Proxy-Client-Script ist nach meiner Auffassung Deiner Lage im moment das einfachste, vorausgesetzt der NetWare-Server hat einen Proxy.

        Hat er: BorderManager.

        Ich nehme mal auf das Beispiel:

        function proxy_client($url)
        {
           $proxy_name = 'netware.server'; /* hier trägst Du die Domain oder IP-
                                              Adresse des NetWare-Server ein */

        $proxy_port = 8080;             // hier der Port des Proxy-Server

        /* $proxy_user und $proxy_pass werden nur benötigt, wenn NetWare-S.
              eine Authentifizierung braucht. Das kannst Du mit dem Browser
              vorher testen, wenn Du den Proxy besuchst und eine typische
              User-Passwort-Eingabe erscheint. */

        $proxy_user = "";
           $proxy_pass = "";

        $proxy_cont = '';

        $proxy_fp = fsockopen($proxy_name, $proxy_port);
           if (!$proxy_fp)
               return false;

        fputs($proxy_fp, "GET $request_url HTTP/1.0\r\nHost: $proxy_name\r\n");
           if ($proxy_user!="")
               fputs($proxy_fp, "Proxy-Authorization: Basic ".
                                base64_encode ("$proxy_user:$proxy_pass").
                                "\r\n");

        fputs($proxy_fp, "\r\n");

        while(!feof($proxy_fp)){
               $proxy_cont .= fread($proxy_fp,4096);
           }
           fclose($proxy_fp);

        return $proxy_cont;
        }
        echo proxy_client('http://www.peutinger-gymnasium.de/');

          
        Ich werde mich dranklemmen, sobald ich kann. Vielen lieben Dank!!!  
          
        Liebe Grüße aus [Ellwangen](http://www.ellwangen.de/),  
          
        Felix Riesterer.
        
        1. Lieber eddi,

          ich habe das Script ausprobiert und die Parameter etwas angepasst. Unter anderem war da eine vorher nie definierte Variable $request_url im Script, dem aber eine Variable $url übergeben wurde... egal.

          Das Script nutzt tatsächlich den Proxy! Allerdings nimmt der Proxy in der von Dir vorgeschlagenen Art und Weise keine Login-Daten entgegen. Wenn ich mein clntrust nicht im Hintergrund laufen habe, das meine erfolgreiche CLient-Anmeldung auf mein System ausdehnt, dann verweigert sich mir der BorderManager.

          Ich werde nun sehen, inwieweit ich nicht nur GET, sondern auch POST verwenden kann, denn das ist ja der einzige Zweck der ganzen Übung...

          Liebe Grüße aus Ellwangen,

          Felix Riesterer.

          1. Nachtrag

            Ich werde nun sehen, inwieweit ich nicht nur GET, sondern auch POST verwenden kann, denn das ist ja der einzige Zweck der ganzen Übung...

            tja, und da dachte ich, ich ersetze einfach den GET-Request durch einen POST-Request (wie in diesem Beispiel) und erhalte dabei dieses Script:

            <?php  
            // Funktion zum uploaden eines JPEG-Bildes via HTTP-POST  
              
            function proxy_client($data_to_send)  
               {  
               $proxy_name = '10.1.1.2';  
               $proxy_port = 8080;  
               $proxy_user = "";  
               $proxy_pass = "";  
               $proxy_cont = '';  
               $request_url = 'http://www.peutinger-gymnasium.de/html/webcam_upload.php';  
              
               $proxy_fp = fsockopen($proxy_name, $proxy_port);  
               if (!$proxy_fp) return false;  
              
               fputs($proxy_fp, "POST $request_url HTTP/1.0\r\n");  
               if ($proxy_user!="")  
                   fputs($proxy_fp, "Proxy-Authorization: Basic ".  
                                    base64_encode("$proxy_user:$proxy_pass").  
                                    "\r\n");  
               fputs($proxy_fp, "\r\n");  
              
               fputs($proxy_fp, "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\r\n");  
               fputs($proxy_fp, "Accept-Charset: iso-8859-1,*,utf-8\r\n");  
               fputs($proxy_fp, "Content-type: multipart/form-data; boundary=$bo\r\n");  
              
               foreach($data_to_send as $key=>$val)  
                  {  
                  $ds =sprintf("--%s\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n", $bo, $key, $val);  
                  $dc += strlen($ds);  
                  }  
              
               $dc += strlen($bo)+3;  
               fputs($proxy_fp, "Content-length: $dc \r\n");  
               fputs($proxy_fp, "\r\n");  
              
               foreach($data_to_send as $key=>$val)  
                  {  
                  $ds =sprintf("--%s\r\nContent-Disposition: form-data; name=\"%s\"\r\n\r\n%s\r\n", $bo, $key, $val);  
                  fputs($proxy_fp, $ds );  
                  }  
               $ds = "--".$bo."--\r\n";  
               fputs($proxy_fp, $ds);  
              
               while(!feof($proxy_fp))  
                  {  
                  $proxy_cont .= fread($proxy_fp,4096);  
                  }  
              
               fclose($proxy_fp);  
              
               return $proxy_cont;  
               }  
              
            /********************  
            * Jetzt geht's los! *  
            *********************  
            *  
            * HTTP-FileUpload  
            */  
              
            // Diese Bilddatei existiert garantiert  
            $data = exif_read_data('webcambild.jpg');print_r($data);  
              
            // erforderliche EXIF-Daten zum Senden bereit machen  
            foreach($data as $key => $value) if (is_array($value)) unset ($data[$key]);  
              
            $data['webcambild"; filename="webcambild.jpg'] = implode('', file('webcambild.jpg')); Bilddaten holen  
            // Mich wundern zwar die seltsam verwendeten doppelten Anführungszeichen, aber so hat es ohne Proxy von meinem DSL aus tatsächlich funktioniert...  
              
            echo proxy_client($data);  
            ?>
            

            Wo das Problem liegt? Es ist ja schön, dass der BorderManager (Proxy) mit mir verhandelt, aber meine Requests kommen beim Server nicht so an, wie beabsichtigt. Eine Debug-Ausgabe meldet mir, dass $_POST keine Elemente enthält, ebensowenig $_FILES. Das kann nur heißen, dass meine geposteten Daten im Proxy hängenbleiben, oder nicht?

            Wie kann ich meinen POST-Request durch den Proxy hindurchschleusen?

            Liebe Grüße aus Ellwangen,

            Felix Riesterer.

            1. Hallo,

              habe ich das übersehen oder wird $bo nirgendwo definiert?

              Kannst Du es nicht erst mal mit Textdaten statt gleich einem Fileupload probieren? Eventuell den Post auch mal ausgeben lassen. Das sollte etwa so: http://forum.de.selfhtml.org/archiv/2005/12/t119862/#m769129 aussehen.

              viele Grüße

              Axel

              1. Lieber Axel,

                habe ich das übersehen oder wird $bo nirgendwo definiert?

                Du hast garnichts übersehen, sondern ich. Vielen Dank für das Aufzeigen dieses Irrtums. Jedoch kommt beim Zielserver noch immer keine Datei an... :-(

                Kannst Du es nicht erst mal mit Textdaten statt gleich einem Fileupload probieren? Eventuell den Post auch mal ausgeben lassen. Das sollte etwa so: http://forum.de.selfhtml.org/archiv/2005/12/t119862/#m769129 aussehen.

                Vielen Dank für diesen genialen Link! Da mein Fileupload in der Version ohne Proxy tadellos funktioniert hatte, sah ich noch keine Notwendigkeit diesbezüglich das Archiv zu befragen.

                Hier ist (unvollständig: Bilddaten sind abgekürzt!) der POST-Request:

                POST http://www.peutinger-gymnasium.de/html/webcam_upload.php HTTP/1.0

                Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
                Accept-Charset: iso-8859-1,*,utf-8
                Content-type: multipart/form-data; boundary=-----------------------------305242850528394
                Content-length: 41283

                -------------------------------305242850528394
                Content-Disposition: form-data; name="FileName"

                webcambild.jpg
                -------------------------------305242850528394
                Content-Disposition: form-data; name="FileDateTime"

                1144866533
                -------------------------------305242850528394
                Content-Disposition: form-data; name="FileSize"

                40444
                -------------------------------305242850528394
                Content-Disposition: form-data; name="FileType"

                2
                -------------------------------305242850528394
                Content-Disposition: form-data; name="MimeType"

                image/jpeg
                -------------------------------305242850528394
                Content-Disposition: form-data; name="SectionsFound"

                COMMENT
                -------------------------------305242850528394
                Content-Disposition: form-data; name="webcambild"; filename="webcambild.jpg"

                (jede Menge wundersamer Zeichen in der Quelltext-Anzeige meines Firefoxes)
                -------------------------------305242850528394--

                Meine Debug-Ausgabe des Zielservers gibt mir die Inhalte der Server-Variablen in den Arrays $_SERVER, $_POST, $_GET und $_FILES aus. Über einen Searchstring prüfe ich, ob da niemand anderes, als eben nur das zugelassene Script einen Fileupload probiert. Anfragen, die nicht den exakt erwarteten Search-String mitliefern, werden mit einer faden Entschuldigung abgewiesen. Dieser Searchstring wird auf dem Zielserver korrekt erhalten und erscheint auch in der Debug-Ausgabe. Jedoch enthält $_POST kein einziges Element! $_FILES übrigens auch nicht!

                Anscheinend werden meine $_POST-Daten vom Proxy "aufgefressen" ... Was könnte noch (außer der fehlenden Variablendeklaration) schief laufen?

                Liebe Grüße aus Ellwangen,

                Felix Riesterer.

            2. Hallo,

              nochwas:

              fputs($proxy_fp, "POST $request_url HTTP/1.0\r\n");

              ...

              fputs($proxy_fp, "\r\n");

              ^das hier ist hier falsch

              fputs($proxy_fp, "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*\r\n");

              ^weil das hier unmittelbar eine Zeile unter die Zeile mit dem POST gehört.

              viele Grüße

              Axel

              1. Lieber Axel,

                fputs($proxy_fp, "\r\n");
                                        ^das hier ist hier falsch

                als ich diese Zeile entfernt hatte, bekam ich einen 404er von meinem Server geliefert...

                Liebe Grüße aus Ellwangen,

                Felix Riesterer.

                1. Nachtrag

                  fputs($proxy_fp, "\r\n");
                                          ^das hier ist hier falsch

                  als ich diese Zeile entfernt hatte, bekam ich einen 404er von meinem Server geliefert...

                  Ein Einfügen dieser Zeile direkt vor
                  $anfrage .= "Content-type: multipart/form-data; boundary=$boundary\r\n";
                  hat den 404er wieder beseitigt. Jedoch landet noch immer keine Datei auf dem Ziel-Server.

                  Liebe Grüße aus Ellwangen,

                  Felix Riesterer.

                  1. nächster Nachtrag

                    als ich diese Zeile entfernt hatte, bekam ich einen 404er von meinem Server geliefert...

                    Ein Einfügen dieser Zeile direkt vor
                    $anfrage .= "Content-type: multipart/form-data; boundary=$boundary\r\n";
                    hat den 404er wieder beseitigt. Jedoch landet noch immer keine Datei auf dem Ziel-Server.

                    Nach Auskunft meines Providers schreibt der Server im Fehlerfall (bei entfernter zusätzlicher Leerzeile - siehe vorangegangene Postings) folgende Fehlermeldung: "Error processing request body: Multipart: final boundary missing".

                    Das verstehe ich nun überhaupt nicht. Als "final boundary" verstehe ich eine letzte Zeile mit den vielen Minuszeichen und der langen alphanumerischen Zeichenfolge, die am Ende durch zwei zusätzliche Minuszeichen eingeleitet, als auch durch zwei zusätzliche Minuszeichen beendet wird (zumindest stand es so im zugrundeliegenden Script notiert). Warum soll also diese final boundary plötzlich fehlen, wo sie doch in der Debug-Ausgabe ganz klar nachzulesen ist?

                    Wer kann mir weiterhelfen?

                    Liebe Grüße aus Ellwangen,

                    Felix Riesterer.

                    1. Hallo,

                      als ich diese Zeile entfernt hatte, bekam ich einen 404er von meinem Server geliefert...

                      Ein Einfügen dieser Zeile direkt vor
                      $anfrage .= "Content-type: multipart/form-data; boundary=$boundary\r\n";
                      hat den 404er wieder beseitigt. Jedoch landet noch immer keine Datei auf dem Ziel-Server.

                      Nein, innerhalb des Head-Teils darf definitiv keine leere Zeile stehen, sonst ist der Request dort zu Ende.

                      Es muss also minimal so:

                      POST http://www.peutinger-gymnasium.de/html/webcam_upload.php HTTP/1.0
                      Content-type: multipart/form-data; boundary=-----------------------------305242850528394
                      Content-length: 167

                      -------------------------------305242850528394
                      Content-Disposition: form-data; name="FileName"

                      webcambild.jpg
                      -------------------------------305242850528394--

                      aussehen. Versuch doch zunächst mal so eine Minimalversion, also ohne Fileupload, nur mit Textdaten.

                      Nach Auskunft meines Providers schreibt der Server im Fehlerfall (bei entfernter zusätzlicher Leerzeile - siehe vorangegangene Postings) folgende Fehlermeldung: "Error processing request body: Multipart: final boundary missing".

                      Berechnest Du die Content-length eventuell nicht richtig?

                      In meienm Beispiel:
                                                                           2 (CR/LF)
                      -------------------------------305242850528394      48 (46+CR/LF)
                      Content-Disposition: form-data; name="FileName"     49 (47+CR/LF)
                                                                           2 (CR/LF)
                      webcambild.jpg                                      16 (14+CR/LF)
                      -------------------------------305242850528394--    50 (48+CR/LF)

                      167

                      viele Grüße

                      Axel

                      1. Lieber Axel,

                        In meienm Beispiel:
                                                                             2 (CR/LF)
                        -------------------------------305242850528394      48 (46+CR/LF)
                        Content-Disposition: form-data; name="FileName"     49 (47+CR/LF)
                                                                             2 (CR/LF)
                        webcambild.jpg                                      16 (14+CR/LF)
                        -------------------------------305242850528394--    50 (48+CR/LF)

                        167

                        DAS muss es sein! Ich werde mich gleich daran machen, mein Script eine korrekte Länge der Anfrage zu ermitteln, damit beim Server auch alles nicht nur ankommt, sondern auch alles akzeptiert wird!

                        Ich poste meine Ergebnisse, wenn ich welche habe!

                        Liebe Grüße aus Ellwangen,

                        Felix Riesterer.

                        1. Axel, my hero!

                          ich habe ja schon gepostet, dass mein Upload auf einem Script aus den FAQs der Newsgroups unter http://www.php-faq.de basiert. Dort wurden aber die Zeilenumbrüche nicht mit CR/LF, sondern nur mit CR erzeugt. In meinem Script habe ich das einfach geändert, ohne auf eine kleine Winzigkeit in der Zeile
                          $dc += strlen($bo)+3;
                          zu achten. Dort wird die Content-Length fest um drei erhöht, da der Scriptautor seine CRs aufaddiert hat. Ich musste diesen Wert verdoppeln, da meine Zeilenumbrüche ja doppelt soviele Zeichen verbrauchen.

                          DAS WAR'S!

                          Liebe Grüße aus Ellwangen,

                          Felix Riesterer.

                          1. Hallo,

                            ich habe ja schon gepostet, dass mein Upload auf einem Script aus den FAQs der Newsgroups unter http://www.php-faq.de basiert. Dort wurden aber die Zeilenumbrüche nicht mit CR/LF, sondern nur mit CR erzeugt.

                            <anmerkung modus="Krümelkacker">Nein nur mit NewLine.</anmerkung>
                            Was aber trotzdem falsch ist, weil in HTTP konsequent CR/LF als Zeilenumbruch definiert ist.

                            In meinem Script habe ich das einfach geändert, ohne auf eine kleine Winzigkeit in der Zeile
                            $dc += strlen($bo)+3;
                            zu achten. Dort wird die Content-Length fest um drei erhöht, da der Scriptautor seine CRs aufaddiert hat. Ich musste diesen Wert verdoppeln, da meine Zeilenumbrüche ja doppelt soviele Zeichen verbrauchen.

                            Hm, eigentlich hast Du doch aber nur _ein_ Zeichen mehr, nämlich \r\n statt \n. Nein, der Scriptautor hat einen wirklichen _Fehler_ dort im Script. Er zählt beim ersten Schleifendurchlauf:

                            $dc += strlen($bo)+3;

                            also Länge von %bo + 3 Zeichen, gibt aber dann im zweiten Schleifendurchlauf aus:

                            $ds = "--".$bo."--\n";

                            also 2 Zeichen + Länge von $bo + 3 Zeichen.

                            Bei Dir sind das

                            $ds = "--".$bo."--\r\n";

                            also 2 Zeichen + Länge von $bo + 4 Zeichen.

                            viele Grüße

                            Axel

                          2. Hallo,

                            Axel, my hero!

                            *g*
                            Naja, der Vorschlag mit dem Script stammte von eddi.

                            DAS WAR'S!

                            Hast Du das Problem mit der Authentifizierung am Bordermanager nun auch gelöst? Klappt das nun ständig oder nur, wenn Du angemeldet bist?

                            viele Grüße

                            Axel

                            1. Lieber Axel,

                              DAS WAR'S!
                              Hast Du das Problem mit der Authentifizierung am Bordermanager nun auch gelöst? Klappt das nun ständig oder nur, wenn Du angemeldet bist?

                              tja, das ist die nächste Hürde. Es gibt im Servicepack 4 für den BorderManager 3.8 eine Linux-Version des Client Trust Programmes. Ohne dieses kann ich am BorderManager nicht vorbei. Und dieses Programm setzt einen erfolgreichen Login des Novell Clients voraus. Es klappt also nur, wenn ich angemeldet bin. Der Login am Proxy mit Basic base64_encode("login:pass") wird vom BorderManager nicht akzeptiert.

                              Das allerschönste an dieser Sache ist: Der PC, der diese Aufgaben übernehmen soll, hat einen 64bit-Prozessor. Das Aufspielen der 32bit-Ausgabe von SUSE10 führte beim Booten zu einem System Freeze. Ich habe zu wenig Fachkenntisse, um die SATA-Treiber des Motherboards in das System einzuspielen und habe mir daher mit der 64bit-SUSE10 beholfen. Nun habe ich ein tadellos funktionierendes SUSE10, für das es aber keinen 64bit-fähigen clntrust gibt. Novell hinkt da seiner Zeit stark hinterher, denn unter "Installation Issues" schreiben sie dort, dass es nur auf 32bit-Plattformen unterstützt wird.

                              Wenn ich den BorderManager (inzwischen hat man mir zur Lösung dieser Aufgabe einfach ein Admin-Konto eingerichtet *freu*) nicht dazu bekomme, auf IP-Ebene den Zugang zu ermöglichen, dann habe ich ein Problem...

                              Liebe Grüße aus Ellwangen,

                              Felix Riesterer.

                              1. Hallo,

                                Hast Du das Problem mit der Authentifizierung am Bordermanager nun auch gelöst? Klappt das nun ständig oder nur, wenn Du angemeldet bist?
                                Das allerschönste an dieser Sache ist: Der PC, der diese Aufgaben übernehmen soll, hat einen 64bit-Prozessor.

                                Wah! Du lässt aber auch keine Unmöglichkeit aus ;-).

                                Ohne diese Ausnahme wäre eventuell http://www.stress-free.co.nz/content/view/160/59 und also Client Trust 4 Others was für Dich.

                                Naja Client Trust 4 Others gibt es ja mit Quellen. Man könnte also versuchen es unter einem 64-bit-System neu zu kompilieren.

                                Wenn ich den BorderManager (inzwischen hat man mir zur Lösung dieser Aufgabe einfach ein Admin-Konto eingerichtet *freu*) nicht dazu bekomme, auf IP-Ebene den Zugang zu ermöglichen, dann habe ich ein Problem...

                                Nach dem, was ich wusste und mir jetzt wieder neu angelesen habe, gibt es den BorderManager nur ganz mit oder ganz ohne Proxy-Authentication. Man kann also keine Ausnahmen definieren. Entweder müssen sich also alle Clients authentifizieren oder eben keiner mehr. Hierzu könnte man ja aber bei Novell noch mal nachfragen.

                                viele Grüße

                                Axel

                                1. Lieber Axel,

                                  Das allerschönste an dieser Sache ist: Der PC, der diese Aufgaben übernehmen soll, hat einen 64bit-Prozessor.
                                  Wah! Du lässt aber auch keine Unmöglichkeit aus ;-).

                                  tja, es könnte alles so einfach sein, wenn da nicht... aber lassen wir das. Wenn "Schulen-ans-Netz" auf Novell baut, die wiederum M$ Windoof vorraussetzen und für die Penner, die wirklich Linux nehmen müssen nur 32bit unterstützen, dann bleibt mir halt nimmer viel Raum.

                                  Naja Client Trust 4 Others gibt es ja mit Quellen. Man könnte also versuchen es unter einem 64-bit-System neu zu kompilieren.

                                  Davon verstehe ich nun wirklich noch überhaupt nichts. Reicht es einfach, die Quellen auf dem 64bit Rechner mit dem dortigen Compiler zu kompilieren, damit es 64bit Software ist? Das könnte ich mit diversen Anleitungen aus dem Netz vielleicht noch schaffen... Aber davor graut mir etwas. Das FTP-Archiv zu diesem NCPFS habe ich mir jedenfalls dafür schoneinmal geholt.

                                  Nach dem, was ich wusste und mir jetzt wieder neu angelesen habe, gibt es den BorderManager nur ganz mit oder ganz ohne Proxy-Authentication. Man kann also keine Ausnahmen definieren. Entweder müssen sich also alle Clients authentifizieren oder eben keiner mehr.

                                  Mach mir keine Angst! Auf dieser Novell-Seite steht unter drittens (ganz unten):
                                  "3. You can selectively proxy authenticate by making use of the 'Authenticate only when ....' option in the Authentication Context menu in BorderManager Setup in NWADMN32. You must be careful to structure your access rules correctly, allowing desired (non-authenticated) traffic using source=any or IP address."
                                  Das klingt so, als hättest Du dich in einem Detail vertan und ich eine reelle Chance, das Compilieren zu umgehen... Das wäre ein ganz besonderer Osterhase für mich. Ich werde mich jetzt am Karfreitag in die Schule aufmachen, um diese Möglichkeit zu ergründen.

                                  Ich melde mich hier wieder.

                                  Liebe Grüße aus Ellwangen,

                                  Felix Riesterer.

                                  1. UPDATE

                                    Naja Client Trust 4 Others gibt es ja mit Quellen. Man könnte also versuchen es unter einem 64-bit-System neu zu kompilieren.

                                    Am Client Trust scheint es nicht zu liegen. Linux meldet folgenden Fehler: "novfs scheint nicht richtig installiert zu sein"

                                    Ich habe daraufhin versucht, dieses NCPFS unter 64bit SuSE 10.0 neu zu kompilieren. Problem: Nach erfolgreichem "./configure" versuchte ich "./make", welches mir folgende Fehlermeldung nannte: "für 'all' ist kein Ziel definiert". Ein anschließendes "./make install" scheiterte jedesmal an eben diesem Problem.

                                    So langsam keimt in mir der Verdacht auf, dass der Novell Client selbst mit dieser 64bit-Architektur nicht zurecht kommt. Die Linux-Komponente namens "NCPFS" ist ja schon vor diesem Client vorhanden gewesen, sodass es am angeblich falsch installierten "novfs" ja eigentlich nicht liegen kann.

                                    Gibt es denn zum Novell Client selbst eine Alternative, oder eine 64bit Quelle, die ich mir kompilieren könnte? Die Version 1.2 des Novell Clients benötigt SuSE 10.1, welche ich aber nicht habe(n will), sodass die benötigten Vorrausetzungen (Abhängigkeiten der RPM-Module) nicht gegeben sind und eine Installation dessen auch scheitert.

                                    Mein altes Notebook kommt wunderbar mit allem klar! Das könnte ich anstelle des dafür vorgesehenen neuen PCs ins Netzwerk hängen und die Aufgaben erledigen lassen. Nur, ich möchte es für andere Aufgaben behalten! Ausserdem muss der (64bit)-PC langfristig so soder so ins Netzwerk integriert werden, sodass ich jetzt eine Lösung finden muss. Daher wundert es mich, dass Novell für 64bit-Hardware noch keine Binaries (Quelle werden sie ja nie herausrücken, oder?) anbietet...

                                    Gefrustete Grüße aus Ellwangen,

                                    Felix Riesterer.

                                    1. Hallo,

                                      Am Client Trust scheint es nicht zu liegen. Linux meldet folgenden Fehler: "novfs scheint nicht richtig installiert zu sein"
                                      Gibt es denn zum Novell Client selbst eine Alternative,

                                      Soweit ich das verstanden habe, soll cl4others doch genau das sein, also _ohne_ clntrust.exe und Novell Client auskommen.

                                      Andererseits sind Deine Probleme jetzt so Novell-spezifisch, dass ich hier auch nicht weiter weiß. Zumal ich ein 64-bit-System noch nicht mal laufen gesehen habe ;-).

                                      Vielleicht versuchst Du mal eine direkte Support-Anfrage bei Novell. Das Recht dazu hast Du Dir schließlich mit dem Kauf von Novell Netware und SuSE-Linux erworben.

                                      viele Grüße

                                      Axel

                                      1. Lieber Axel,

                                        ich danke Dir herzlich für Deine Anteilnahme und aufrichtige Hilfsbereitschaft!

                                        Soweit ich das verstanden habe, soll cl4others doch genau das sein, also _ohne_ clntrust.exe und Novell Client auskommen.

                                        |

                                        Andererseits sind Deine Probleme jetzt so Novell-spezifisch, dass ich hier auch nicht weiter weiß.

                                        Ich bin sowieso schon hellauf begeistert, in welche Nischen der Computerwelt die Kompetenzen und das Wissen dieses Forums reichen. Für meinen Teil empfinde ich das als hellen Wahnsinn!

                                        Zumal ich ein 64-bit-System noch nicht mal laufen gesehen habe ;-).

                                        Das war nicht so schwer: Ein AMD Sempron3000 auf ein passendes Motherboard, ein wenig Speicher dazu, eine günstige Grafikkarte - und der "neue" ist schon so gut wie fertig! Dazu lädt man sich per Torrent die OpenSuSE10 herunter und installiert neugierig sein erstes 64bit-System.

                                        Ach ist das schön, dass "mein erstes Mal" mit linux sein durfte... Hihihi.

                                        Vielleicht versuchst Du mal eine direkte Support-Anfrage bei Novell. Das Recht dazu hast Du Dir schließlich mit dem Kauf von Novell Netware und SuSE-Linux erworben.

                                        Ähm... also ich habe da nix gekauft! Unser Schul-Intranet läuft mit Novell-Software (die ich nie in meinem Leben freiwillig kaufen würde!!!), und SuSE habe ich auch legal kostenlos heruntergeladen.

                                        Eine Supportanfrage an Novell ist wohl nicht sehr erfolgversprechend, da auch die mit 64bit erst am Spielen sind.

                                        Tja, was habe ich jetzt gemacht? Ich habe - extremst WIDERWILLIG(!!!) - meine SuSE10 auf 32bit ge-downgraded, damit ich mein Projekt endlich fertigstellen kann. Sehr traurig, aber leider wahr. Ich werde mich wohl noch eine geraume Weile damit gedulden müssen, ehe Novell auch auf 64bit-Systemen seine Software unterstützt.

                                        Ich werde jetzt zusehen, ob der Cronjob auch brav alle 30 Minuten das Bild aktualisiert. Amen.

                                        Liebe Grüße aus Ellwangen,

                                        Felix Riesterer.

                                        1. Hallo Felix,

                                          Vielleicht versuchst Du mal eine direkte Support-Anfrage bei Novell. Das Recht dazu hast Du Dir schließlich mit dem Kauf von Novell Netware und SuSE-Linux erworben.
                                          Ähm... also ich habe da nix gekauft! Unser Schul-Intranet läuft mit Novell-Software (die ich nie in meinem Leben freiwillig kaufen würde!!!),

                                          auch die Novell-Pakete für Schulen mussten bezahlt werden (diese waren zwar ziemlich günstig, aber nicht umsonst). Ähnliches gilt für Microsoft :-)

                                          Freundliche Grüße

                                          Vinzenz

  3. Hi,

    Aber der Apache ist ja kein menschlicher Benutzer, der mal eben eine Shell öffnen und einen Login vornehmen könnte...

    Der Apache nicht, aber was hindert dich daran, ein Script zu schreiben, das eben genau das macht und beim Start ausgeführt wird? Wenn ein Anmelden an Novell per Kommandozeile möglich ist, musst du "nur" diese Befehlsfolge in ein Bash-Script klemmen und per rc.local (Je nach Distri auch woanders) beim Booten ausführen lassen.