Andreas Lindig: Mein Provider zwingt mir bestimmte Dateirechte auf

Hallo Forum,

mein Provider hat ein Programm namens "suPHP" auf dem Server installiert und seitdem funktioniert fast nichts mehr - ständig wird der Zugriff auf Dateien verweigert. Nun will der, daß ich _allen_ Scripten und Dateien die Rechte 755 zuteile bzw. hat das jetzt einfach gemacht. Muß sowas eigentlich sein? Und kann mir vielleicht jemand erklären, welche Sicherheitsrisiken ich mir damit einhandle? Ich verstehe dieses Linux-Rechtesystem nicht wirklich, aber 755 kommt mir doch sehr hoch vor. Außerdem kann ich ja gar keine PHP-Dateierstellungsautomatik mehr nutzen, weil da immer Dateien mit niedrigeren Rechten erstellt werden (644 war das glaub ich - und hat auch immer funktioniert). Das muß ich ja jetzt alles umschreiben.

Gruß, Andreas

--
SELFFORUM - hier werden Sie geholfen,
auch in Fragen zu richtiges Deutsch
  1. Moin!

    mein Provider hat ein Programm namens "suPHP" auf dem Server installiert und seitdem funktioniert fast nichts mehr - ständig wird der Zugriff auf Dateien verweigert. Nun will der, daß ich _allen_ Scripten und Dateien die Rechte 755 zuteile bzw. hat das jetzt einfach gemacht.

    755? Der Besitzer darf lesen, schreiben, ausführen, die Gruppe und die ganze Welt auführen und, das ist bei Skripten dazu unumgänglich: lesen. Schreiben oder verändern wohl nicht. Die Zugriffsverweigerung ist damit nicht zu erklären.

    ein:
    Ich bin: <?php echo whoami; ?>

    Sollte Dir Klarheit verschaffen, unter welchem Benutzername Dein Skript ausgeführt wird.

    Falls Du für irgendwelche Zwecke weitere Informationen brauchst:
    <pre>
    <?php
    $strIam=whoami;
    echo "username:x:uid:gid:homedir:shell\n";
    echo grep ^$iam: /etc/passwd;
    echo "\n";
    echo "Gruppe: ";
    $strMyGroup id -ng;
    ?>
    <pre>

    <hr><pre>
    <?php echo ls -al; ?>
    <pre><hr>

    Zeigt Dir eine Liste der Dateien im aktuellen Verzeichnis, deren Autor, die Gruppe und die Rechte an.

    <?php phpinfo(); ?>

    Zeigt Dir auch, was ggf. zum Thema 'safe-mod' in der php.ini steht und in welchen Verzeichnissen Du Dateien verändern darfst.

    Wenn Deine Skripte gut sind, dann sind Dinge, wie Verzeichnisse einfach konfigurierbar, weil Du für jedes Deiner Webs eine Art Initialisierungsdatei verwendest, die Du in parktisch jedes Skript inkludierst und die Dir die Möglichkeit verschafft Verzeichnissnamen, Datenbankzugänge und dergleichen Konfigurationseinstellungen zentral zu ändern.

    Du hast keine solche Datei? Dann nehme diese Änderung gleich mit vor, spart beim nächsten Umzug oder bei der nächsten Veränderung eine Menge Arbeit.

    Muß sowas eigentlich sein? Und kann mir vielleicht jemand erklären, welche Sicherheitsrisiken ich mir damit einhandle? Ich verstehe dieses Linux-Rechtesystem nicht wirklich, aber 755 kommt mir doch sehr hoch vor.

    Die Erklärung steht oben. Einen Webauftritt sieht immer "die ganze Welt". Insofern sind die Rechte natürlich auf "für jeden lesbar" und "für jeden ausführbar" gesetzt. Wieso und ob letzteres bei nicht auszuführenden Dateien (Grafiken, statische Dateien, Datendateien) nötig sein soll- daran habe ich allerdings berechtigte Zweifel.

    Außerdem kann ich ja gar keine PHP-Dateierstellungsautomatik mehr nutzen, weil da immer Dateien mit niedrigeren Rechten erstellt werden (644 war das glaub ich - und hat auch immer funktioniert). Das muß ich ja jetzt alles umschreiben.

    Womöglich, womöglich nicht. Informiere Dich, was der Shell-Befehl chmod, chown, chgrp und vor allem umask für Dich tun kann. Ausführen kasst Du diese ja innerhalb von PHP-Skripten, soweit der save-mode dem nicht engegensteht. Es ist aber auch möglich

    Eventuell musst Du aber auch ein anderes Paket beim gleichen oder einem anderen Hoster buchen.
    Oder Dich halt mit den grundlegenden Befehlen des Betriebssystems auseineandersetzen, auf dem Deine Programme (Skripte sind Programme) laufen sollen. Ein paar wichtige Befhele für Linux/Solaris/BSD/SCO habe ich Dir freundlicherweise oben schon genannt. Nutze mindestens eine Probierversion wie Knoppix oder SuSE-Live-CD um an der Shell etwas zu üben und die Befehle kennenzulernen.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
    1. Moin!

      Jaja, der Teufel ist ein Eichhörnchen:

      Falls Du für irgendwelche Zwecke weitere Informationen brauchst:
      <pre>
      <?php
      $strIam=whoami;
      echo "username:x:uid:gid:homedir:shell\n";
      echo grep ^$strIam: /etc/passwd;
      echo "\n\n";
      echo "Name der Standardgruppe: ";
      echo id -ng;
      echo "\n\n";
      echo "Weitere Gruppenmitgliedschaften: ";
      echo id -nG;

      ?>
      <pre>

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development
  2. Hi,

    mein Provider hat ein Programm namens "suPHP" auf dem Server installiert und seitdem funktioniert fast nichts mehr

    Dann wechsel den Provider. Da durch suPHP die Scripte mit dem gleichen Benutzer ausgeführt werden, als wenn du per Konsole arbeitest, laufen Scripte norm. problemloser als beim "normalen" Setup (PHP als Modul und safe_mode on)
    Entweder hat dein Provider suPHP falsch kompiliert und führt deine Scripte als irgendein anderer User aus, oder einige deiner Scripte haben den falschen Besitzer. Das passiert, wenn du Dateien per Script angelegt hast, die jetzt den Benutzer des Apachen haben.

    Aber allein schon der "Tip", das du alle Dateirechte auf 755 stzen sollst, disqualifiziert deinen Provider und rechtfertigt einen sofortigen Wechsel. Vermutlich weiss der Mensch nicht mal, was er mit seinem Server macht und hat vom System soviel AHnung, wie ne Kuh vom Radfahren.

    1. Dann wechsel den Provider.

      vielleicht muß das jetzt mal sein - ist halt immer son Aufwand ;-)

      Da durch suPHP die Scripte mit dem gleichen Benutzer ausgeführt werden, als wenn du per Konsole arbeitest, laufen Scripte norm. problemloser als beim "normalen" Setup (PHP als Modul und safe_mode on)

      d.h. ich als User sollte von suPHP eigentlich keine weiteren Einschränkungen haben und kann auch bedenkenlos den safe_mode abschalten - verstehe ich das richtig?

      Entweder hat dein Provider suPHP falsch kompiliert und führt deine Scripte als irgendein anderer User aus,

      ah... ich habe das Script von Fastix noch nicht zum laufen gekriegt, weil der safe_mode bei mir erst in einigen Stunden deaktiviert wird. Kann ich das denn damit dann sehen? - hab es nicht verstanden ;-)

      oder einige deiner Scripte haben den falschen Besitzer. Das passiert, wenn du Dateien per Script angelegt hast, die jetzt den Benutzer des Apachen haben.

      das klingt interessant. Die Probleme treten mit Textdateien auf, auf die nun der Zugriff verweigert wurde. Diese Dateien wurden vor installation von suPHP angelegt (teils von Scripten ja). Würde es dann eigentlich ausreichen, diese Dateien zu löschen und neu anlegen zu lassen?

      Aber allein schon der "Tip", das du alle Dateirechte auf 755 stzen sollst, disqualifiziert deinen Provider und rechtfertigt einen sofortigen Wechsel.

      ja, sowas kann man leider nicht vorher sehen. Kannst Du einen empfehlen?

      Vermutlich weiss der Mensch nicht mal, was er mit seinem Server macht und hat vom System soviel AHnung, wie ne Kuh vom Radfahren.

      hehe :-)

      Gruß, Andreas

      --
      SELFFORUM - hier werden Sie geholfen,
      auch in Fragen zu richtiges Deutsch
      1. Würde es dann eigentlich ausreichen, diese Dateien zu löschen und neu anlegen zu lassen?

        nee, nicht wirklich. Ich habe das gerade probiert. Aber die Dateien werden jetzt gar nicht mehr angelegt...

        Gruß, Andreas

        --
        SELFFORUM - hier werden Sie geholfen,
        auch in Fragen zu richtiges Deutsch
        1. hi,

          Würde es dann eigentlich ausreichen, diese Dateien zu löschen und neu anlegen zu lassen?

          nee, nicht wirklich. Ich habe das gerade probiert. Aber die Dateien werden jetzt gar nicht mehr angelegt...

          Gehören denn die Verzeichnisse, in denen du sie anlegen willst, auch "dir"?

          Wenn nicht, dann bitte deinen Provider, das inOrdnung zu bringen - wenn er durch Installation einer "anderen" PHP-Umgebung das Problem "verursacht" hat, solltest du das verlangen können.

          Davon ab stellt m.W. suPHP, wie Manuel schon sagte, eigentich einen Fortschritt in Sachen Sicherheit dar - vorausgesetzt natürlich, es wird vernünftig konfiguriert.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. Gehören denn die Verzeichnisse, in denen du sie anlegen willst, auch "dir"?

            keine Ahnung. Ich hab mal ein Bildschirmfoto meines FTP-Programms gemacht, aber da kann man dergleichen nicht ablesen:

            Wenn nicht, dann bitte deinen Provider, das inOrdnung zu bringen -

            da scheint er kein Interesse dran zu haben - habe soeben so eine Art Kündigung erhalten ;-) Man hätte sich redlich bemüht und aus "seiner Sicht" würden meine Scripte jetzt wieder laufen. Er würde an meinem Webspace nichts mehr machen. In einem Projekt - ein Forum - hat er mir alle Dateien auf 777 gestellt. Das Dateien anlegen geht trotzdem nicht ;-)

            wenn er durch Installation einer "anderen" PHP-Umgebung das Problem "verursacht" hat,

            hat er! Die Scripte liefen ein Jahr lang tadellos.

            Gruß, Andreas

            --
            SELFFORUM - hier werden Sie geholfen,
            auch in Fragen zu richtiges Deutsch
      2. Hi,

        d.h. ich als User sollte von suPHP eigentlich keine weiteren Einschränkungen haben und kann auch bedenkenlos den safe_mode abschalten - verstehe ich das richtig?

        Da PHP ja eh als Benutzer ausgeführt wird, ist der safe_mod völlig überflüssig, da die Scripte eh nur darauf zugreifen können, wo der Benutzer selbst zugriff hat. safe_mod macht nur Sinn (und das nur bedingt), wenn Scripte als Apache-Benutzer (Modul) ausgeführt werden, um nicht auf Scripte von anderen virt. Hosts zugreifen zu können.

        Entweder hat dein Provider suPHP falsch kompiliert und führt deine Scripte als irgendein anderer User aus,

        ah... ich habe das Script von Fastix noch nicht zum laufen gekriegt, weil der safe_mode bei mir erst in einigen Stunden deaktiviert wird. Kann ich das denn damit dann sehen? - hab es nicht verstanden ;-)

        Das Script von Fastnix zeigt dir die Benutzerrechte und ein paar andere Dinge an, habs nur überflogen. Ob der safe-mode aus ist, siehst du auch mit phpinfo(). Welchen Besitzer die Dateien haben, kannst du IMO auch mit einem FTP-Programm sehen.

        das klingt interessant. Die Probleme treten mit Textdateien auf, auf die nun der Zugriff verweigert wurde. Diese Dateien wurden vor installation von suPHP angelegt (teils von Scripten ja). Würde es dann eigentlich ausreichen, diese Dateien zu löschen und neu anlegen zu lassen?

        Es würde auch ausreichen, das dein Provider den Besitzer ändert. Und das geht mit einem einzigen Befehl.
        Das er das nicht gemacht hat, zeigt nochmals, das er unfähig ist.

        Aber allein schon der "Tip", das du alle Dateirechte auf 755 stzen sollst, disqualifiziert deinen Provider und rechtfertigt einen sofortigen Wechsel.

        ja, sowas kann man leider nicht vorher sehen. Kannst Du einen empfehlen?

        Da ist selber Webspace anbiete, kann ich keine wirkliche Empfehlung aussprechen, die nicht eigennützig ist ;). Allerdings läuft bei mir PHP5.0.3 mit suPHP ohne safe_mode, ohne das ein Kunde Probleme hat. (Nur einer hat nen Shop, der Probleme macht. Allerdings läuft der nur ohne safe_mode und register_globals on. Dummerweise konnte ich ihn noch nicht von einem Shop-Wechsel überzeugen :D)

        1. Aber allein schon der "Tip", das du alle Dateirechte auf 755 stzen sollst, disqualifiziert deinen Provider und rechtfertigt einen sofortigen Wechsel.

          scheint mir jetzt auch so. Er geht auch da nicht drauf ein und hat mir stattdessen noch Scripte auf 777 gestellt.

          Da ist selber Webspace anbiete, kann ich keine wirkliche Empfehlung aussprechen, die nicht eigennützig ist ;).

          wenigstens ehrlich! Ich schau mich bei Dir mal um.

          Allerdings läuft bei mir PHP5.0.3 mit suPHP ohne safe_mode,

          gibt es Probleme beim Umstieg mit PHP4-Scripten?

          Gruß, Andreas

          --
          SELFFORUM - hier werden Sie geholfen,
          auch in Fragen zu richtiges Deutsch
          1. Hi,

            gibt es Probleme beim Umstieg mit PHP4-Scripten?

            Bedingt.
            PHP-Nuke benutzt z.B. Funktionen, die mit neuen aus PHP5 kollidieren.
            In solchen Fällen müssen Scripte angepasst werden.

            Wenn das nicht der Fall ist, gibt es keine Probleme mit PHP4 Scripten.