Dateien verwalten über SSH
Um Dateien auf den Raspberry Pi2 zu kopieren oder zu bearbeiten, kann natürlich ebenfalls ssh
verwenden werden. Dies können wir zum einen wieder direkt in Putty über das Terminal mit dem scp
-Kommando erledigen, weitaus einfacher wird es für die meisten aber mit einer grafischen Oberfläche sein.
Während sich für Windows-Benutzer das Programm WinSCP anbietet, welches nachinstalliert werden muss, haben Linux-Benutzer, zumindest viele von ihnen, alles notwendige schon vorinstalliert. Dateimanager wie Nautilus, Nemo, Dolphin und auch noch andere können sich ohne zusätzliche Installationsarbeiten direkt auf dem Raspberry Pi per ssh
verbinden. Über eventuelle Eigenheiten von so manchem Dateimanager können sie hier näheres lesen. Wer FileZilla schon auf seinem Rechner installiert hat, kann auch diesen benutzen.
Die Einrichtung für den Zugriff auf den Raspberry Pi gestaltet sich alles andere als schwierig und ist mit Sicherheit von jedem zu bewältigen.
Nemo unter Linux Mint – Datei – mit Server verbinden – Server: IP des Raspberry Pi – Typ: SSH – Benutzername und das Passwort vom Raspberry eingeben und verbinden.
WinSCP unter Windows – Übertragunsprotokoll: SFTP – Rechnername: IP des Raspberry Pi – Benutzername und das Passwort – eventuell im Zuge des Speicherns noch eine Verknüpfung auf dem Desktop anlegen und verbinden.
FileZilla (Linux – Windows – Mac) – Datei – Servermanager – Neuer Server (eventuell noch benennen) – Server: IP des Raspberry Pi – Protokoll: SFTP – Verbindungsart: Normal – Benutzername und Passwort eingeben und verbinden.
Bei allen anderen Programmen die es noch so gibt, wird es auch kein unlösbares Problem sein, sich mit dem Raspberry Pi zu verbinden. Was jedoch derzeit noch ein Problem darstellt ist, dass wir als Benutzer pi
noch keinen Schreibzugriff auf das Verzeichnis html
haben, also auf den Webserver. Dazu fügen wir den Benutzer pi
in die Gruppe www-data
hinzu, überprüfen ob pi
zur Gruppe www-data
hinzugefügt wurde und übernehmen anschließend als Benutzer pi
das Verzeichnis des Webservers.
// pi zu Gruppe www-data hinzufügen sudo usermod -a -G www-data pi // Überprüfen groups pi // Webroot übernehmen als pi sudo chown -R pi /var/www/html
Als Benutzer pi
können wir ab sofort auch in das Verzeichnis abspeichern. Einige PHP Anwendungen erfordern allerdings bei so manchen Verzeichnissen die Besitzrechte als www-data
. Als Beispiel könnte man hier die Installation von Rainloop anführen. Um Rainloop überhaupt ausführen zu können, wird ohnehin zuerst noch die Nachinstallation eines Paketes verlangt.
// Nachinstallation wegen cUrl Fehler von Rainloop sudo apt-get install php5-curl // Apache2 Neustart sudo /etc/init.d/apache2 restart
Nachdem wir das erledigt haben, stehen wir schon wieder vor dem nächsten Problem. Rainloop hat ein Rechte-Problem mit dem Verzeichnis data
, wo es gerne hineinschreiben möchte, da wir ja die Dateien mit unserem Raspberry Pi Benutzer pi hochgeladen haben.
[202] Data folder permissions error [is_writable]
Dieses Problem können wir auf mehrer Arten beheben.
Indem wir das Verzeichnis data
wieder dem Apache Benutzer www-data
zuweisen.
sudo chown -R www-data:www-data /var/www/html/RAINLOOP/data
Indem wir dem Verzeichnis data
auch mit Gruppenschreibrechten ausstatten.
sudo chmod 775 /var/www/html/RAINLOOP/data
Wenn der Webserver über das Internet erreichbar sein soll, kann ich die zwei folgenden Methoden nicht empfehlen. Für eine lokale Testumgebung, wie bei mir, mag es aber durchaus praktisch sein, wenn man sich nicht des öfteren mit diversen Verzeichnisrechten beschäftigen muss. Eine dieser Hardcore-Varianten wäre, dass wir überhaupt den Apache Benutzer von www-data
auf unseren lokalen Benutzer pi
ändern. Dazu bearbeiten wir die Datei envvars
.
sudo nano /etc/apache2/envvars // aus export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data // wird export APACHE_RUN_USER=pi export APACHE_RUN_GROUP=pi
Die Datei abschließend wieder mit STRG +X
-> Y
-> ENTER
abspeichern und anschließend Apache neustarten, damit die Änderungen wirksam werden.
sudo service apache2 restart
Elegant ist diese Lösung nicht, aber sie funktioniert. Statt dieser Lösung könnten wir auch einen neuen Benutzer anlegen den wir einfach mit der gleichen UID
und GID
ausstatten wie der Apache Benutzer www-data
. Ist auch nicht besonders elegant, funktioniert aber auch. Für nicht von außerhalb erreichbaren Testumgebungen ziemlich egal. Hier wären wieder ein bisschen mehr Schritte erforderlich. Als erstes wollen wir die UID
und GID
von www-data
herausfinden.
// Benutzer www-data id -u www-data // Gruppe www-data id -g www-data
Als Ausgabe sollten wir jeweils „33“ erhalten. Jetzt fügen wir den Benutzer piweb
hinzu und vergeben anschließend noch das Passwort für piweb
.
// Benutzer hinzufügen sudo useradd -o -u 33 -g 33 -d /var/www -M piweb // Passwort anlegen für piweb sudo passwd piweb
Abschließend übernehmen wir noch das Webserverhauptverzeichnis mit dem Benutzer piweb
.
sudo chown -R www-data:www-data /var/www/html
Unseren Dateienverkehr regeln wir in diesem Fall ab jetzt mit dem Benutzer piweb
statt pi
.
Bitte beachten Sie, dass dieser Beitrag bereits vor über einem Jahr geschrieben wurde und unter umständen nicht mehr aktuell ist.