Der Weg zum Full-Stack-Developer
In meinem Blog beschreibe ich welche Methoden und Ressourcen ich benutze, um mir das Fachwissen beizubringen und werde viele nützliche Artikel zum Thema Softwareentwicklung schreiben, die Anfängern den Weg zum Profi erleichtern wird.
Seit Jahren kämpfen Web-Developer mit dem Problem mit den Benutzerrechten in /var/www/html/. Mal schnell ein kleines PHP-Skript direkt auf der Kommandozeile zu schreiben sah bspw. immer aus wie folgend:
sudo vim phpinfo.php sudo chown www-data:www-data phpinfo.php
Oder man hat eine weitere Gruppe erstellt, falls mehrere Nutzer (grundsätzlich ohne Root-Rechte) die Dateien bearbeiten dürfen sollten. Ich habe auch Ansätze gesehen in der die Apache-Konfiguration auf ein Verzeichnis im Home-Directory zeigt oder einfach mit symbolischen Links gearbeitet wurde.
Die Lösung heißt bindfs und macht was der Name bereits vermutet, nämlich bindet ein Verzeichnis in das Dateisystem ein. Das Webverzeichnis wird in eurem Home-Verzeichnis gemountet. Man arbeitet mit den Verzeichnissen und Dateien als wäre man der Besitzer, wobei sie tatsächlich dem Web-Server gehören. Das löst sämtliche Probleme, die wir bisher hatten:
Solltest du dich das wirklich fragen, dann hoffe ich, dass man dir keine Root-Rechte erteilt für ein Produktiv-System mit sensiblen Kundendaten und hohen Kosten bei Ausfällen.
Nämlich aus diesem Grund. Um Leute, die nicht wirklich wissen, was sie da tun, den Zugriff zu verweigern, damit sie keinen Schaden anrichten können. Und selbstverständlich aus diversen weiteren Sicherheitsgründen.
Ein ausreichendes Verständnis für Sicherheit ist auch im Leben eines Entwicklers essentiell und ich werde auch regelmäßig zu diesem Thema Beiträge veröffentlichen.
Ich arbeite auf Ubuntu 16.04 LTS auf meinem Notebook und mit Ubuntu 16.04 Server auf meinem Dedicated-Server, folglich ist diese und alle folgenden Anleitungen für dieses System ausgelegt. Vermutlich funktionieren diese mit anderen Linux-Distributionen ziemlich ähnlich. Wer nur sein Windows zur Verfügung hat, sollte sich Gedanken darüber machen ein Linux-System einzurichten. Dazu könnt ihr Windows und Linux im Dual-Boot benutzen, einen alten Rechner herauskramen (eventuell einen eigenen Home-Server einrichten) oder euch einen virtuellen Server für kleines Geld anmieten.
Fall ihr absolut nichts davon tun könnt, wollt oder euch nicht zutraut, so gibt es auch die Möglichkeit eine Ubuntu Bash für Windows zu installieren. Das ist kein wirkliches Ubuntu-Linux, fühlt sich jedoch sehr danach an und dies habe ich auch schon auf meinem Gaming-PC ausprobiert. In Kürze schreibe ich dazu einen Blog-Post und werden ihn hier auch verlinken.
Ubuntu Bash für Windows 10
Ich empfehle euch dringend euch mit Linux auseinanderzusetzen, denn Linux ist allgegenwärtig und ein Must-Have-Skill in eurem Lebenslauf.
Als erstes öffnen wir unser Terminal mit (Strg + Alt + T), installieren bindfs, erstellen einen Ordner in unserem Home-Verzeichnis und bearbeiten unsere /etc/fstab:
sudo apt install bindfs # optional, falls ihr euch bereits im Homeverzeichnis befindent cd # der Ordner für eure Applikation mkdir app1 # fstab bearbeiten mit einem Editor eurer Wahl, z.B. nano sudo vim /etc/fstab
Ich benutze grundsätzlich vim, was nicht gerade anfängerfreundlich ist. Es ist jedoch sehr komfortabel, wenn man sich daran gewöhnt hat. Mit dem Befehl vimtutor
kommt ihr auf ein nettes Tutorial zu vim. Ansonsten ersetzt ihr oben einfach vim
mit nano
oder eurem Lieblings-Editor.
In /etc/fstab
passiert nun die Magie. Fügt folgende Zeile (ganz am Ende) hinzu und ersetzt webdev1
und app1
mit eurem Benutzernamen und euer Verzeichnis für die Applikation.
# for Web Development bindfs#/var/www/html /home/webdev1/app1 fuse force-user=webdev1,force-group=webdev1,create-for-user=www-data,create-for-group=www-data,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0
Speichert die Datei ab und mountet den Ordner mit mount /home/webdev1/app1
. Das müsst ihr nur einmal machen, denn alles was in /etc/fstab
steht, wird automatisch beim Systemstart gemountet.
Nun könnt ihr in eurem eigenem Verzeichnis arbeiten ohne ständig die Rechte ändern zu müssen.