Diese Woche in der Konsole #7

Posted on August 16th, 2009 in Konsole, Ubuntu | 10 Comments »

  1. Einen SSH key auf den Server kopieren muss nicht unbedingt ein langwieriger Prozess sein, das geht auch mit einem Kommando.
    ssh-copy-id user@host
  2. Wieder mal genervt von Programmen die immer eine Eingabeaufforderung brauchen? Noch dazu immer ein Y Enter?
    Dann hilft das Programm yes, das nicht mehr macht als ein “Y” gefolgt von einen Enter zu senden.

    yes | nervende_anwendung
  3. Rar Datei mit einem Passwort öffnen.
    unrar e datei1.rar -pmeinpasswort
  4. Den Computer um Mitternacht runterfahren lassen. Hier wird der Befehl at verwendet der im Gegensatz zu cron nur einmalig gilt.
    sudo halt | at midnight

    Eine Alternative von HogBeard:

    sudo shutdown -hP 00:00
  5. Stresstest für einen Web-Server mit dem Apache Benchmarking Programm ab.

    -n : Anzahl der Anfragen (requests) pro Session.
    -c : Anzahl der multiplen Anfragen pro Durchgang.

    ab -n 1000 -c 1000 http://localhost
  6. Festplatten oder USB sticks sicher Überschreiben mit Nullen, sd23 bitte mit Laufwerknamen ersetzen.
    dd if=/dev/urandom of=/dev/sd23

Zugriff auf ein Symlink-Verzeichnis mit Apache2

Posted on May 20th, 2009 in Ubuntu | 3 Comments »

apache_logo

Ich bin gerade dabei meinen Hauptrechner von Ubuntu 8.10 (Intrepid Ibex) auf Ubuntu 9.04 (Jaunty Jackalope) upzudaten bzw. neu zu installieren. Ich installiere gern jede Version neu, da ich immer sehr viel Software manuell installiert habe bzw. sehr viel am System geändert habe. Daher schreibe ich mir gerade ein Installskript, welches meine gewünschte Software installiert, mein Backup zurückspielt und die wichtigsten Einstellungen vornimmt. Dies sollte mir den nächsten Versionwechsel erleichtert.

Das Installationsskript entsteht gerade auf meinem Testrechner, wo ich dann natürlich die wichtigsten Sachen nach der Installation teste. Da ich auch an einer Webseite arbeite, läuft diese auch lokal auf meinem Rechner. Dazu benötige ich natürlich Apache2, PHP+MySql. Dies benötige ich für die alte Version der Webseite, welche ich übernommen habe. Aktuell versuche ich gerade diese auf Django umzustellen. Mit diesem Umstieg soll auch die Verwendung von MySql durch PostgreSQL abgelöst werden.

Aber zurück zum Thema. Der Sourcecode der Homepage liegt bei mir in meinem Homeverzeichnis. Sagen wir als Beispiel unter:

/home/bernd/homepage

Um diese jetzt mit dem Webserver unter http://localhost/homepage aufrufen zu können, erstelle ich einen Symlink vom Dokument-Root des Apache Webservers in mein Homeverzeichnis

cd /var/www
ln -s /home/bernd/homepage homepage

Zu meiner Überraschung musste ich feststellen, dass Apache diesen Link nicht auflösen kann (Fehlermeldung: Forbidden – You don’t have permission to access /homepage on this server.), obwohl in der Datei /etc/apache2/sites-enabled/0000-default alle Optionen standardmäßig richtig gesetzt sind

....
        
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        
....

Auch das Ziel des Symlinks hat die notwendigen Berechtigungen um vom Apache-User www-data korrekt ausgelesen zu werden

bernd@jaunty:~$ ls -ld ~/homepage
drwxr-xr-x 17 bernd bernd 4096 2009-05-18 20:08 homepage

Das Problem liegt jetzt aber darin, dass seit Ubuntu 9.04 (Jaunty Jackalope) das Homeverzeichnis aus Sicherheitsgründen mit den Berechtigungen 0600 angelegt ist! Der Apache-User braucht jedoch für den gesamten Pfad Leseberechtiungen. Also auch für /home und /home/bernd. Daher ist die einfachste Problemlösung die Berechtigungen auf das Verzeichnis /home/bernd zu lockern.

bernd@jaunty:/home$ ls -l
total 4
drwx------ 85 bernd bernd 4096 2009-05-19 08:15 bernd
bernd@jaunty:/home$ chmod 755 bernd
bernd@jaunty:/home$ ls -l
total 4
drwxr-xr-x 85 bernd bernd 4096 2009-05-19 08:15 bernd

Bitte überlegt euch genau ob auch ihr die Berechtigungen auf euer Homeverzeichnis für alle lesbar stellen wollt. Da der PC ausschließlich von mir genutzt wird, sehe ich in meinem Fall kein Problem darin. Wenn auf dem Computer jedoch mehrere Benutzer arbeiten, sollte man sich diesen Schritt genauer überlegen.