Dateirechte für Webserver richtig setzen

Friday, 21. February 2014 16:08

Die beste Lösung die ich je zu dem Thema gefunden habe:

When deciding what permissions to use, you need to know exactly who your users are and what they need. A webserver interacts with two types of user.

Authenticated users have a user account on the server and can be provided with specific privileges. This usually includes system administrators, developers, and service accounts. They usually make changes to the system using SSH or SFTP.

Anonymous users are the visitors to your website. Although they don’t have permissions to access files directly, they can request a web page and the web server acts on their behalf. You can limit the access of anonymous users by being careful about what permissions the web server process has. On many Linux distributions, Apache runs as the www-data user but it can be different. Use ps aux | grep httpd or ps aux | grep apache to see what user Apache is using on your system.

Notes on linux permissions

Linux and other POSIX-compliant systems use traditional unix permissions. There is an excellent article on Wikipedia about Filesystem permissions so I won’t repeat everything here. But there are a few things you should be aware of.

The execute bit
Interpreted scripts (eg. Ruby, PHP) work just fine without the execute permission. Only binaries and shell scripts need the execute bit. In order to traverse (enter) a directory, you need to have execute permission on that directory. The webserver needs this permission to list a directory or serve any files inside of it.

Default new file permissions
When a file is created, it normally inherits the group id of whoever created it. But sometimes you want new files to inherit the group id of the folder where they are created, so you would enable the SGID bit on the parent folder.

Default permission values depend on your umask. The umask subtracts permissions from newly created files, so the common value of 022 results in files being created with 755. When collaborating with a group, it’s useful to change your umask to 002 so that files you create can be modified by group members. And if you want to customize the permissions of uploaded files, you either need to change the umask for apache or run chmod after the file has been uploaded.

The problem with 777

When you chmod 777 your website, you have no security whatsoever. Any user on the system can change or delete any file in your website. But more seriously, remember that the web server acts on behalf of visitors to your website, and now the web server is able to change the same files that it’s executing. If there are any programming vulnerabilities in your website, they can be exploited to deface your website, insert phishing attacks, or steal information from your server without you ever knowing.

Define the requirements

  • Developers need read/write access to files so they can update the website
  • Developers need read/write/execute on directories so they can browse around
  • Apache needs read access to files and interpreted scripts
  • Apache needs read/execute access to serveable directories
  • Apache needs read/write/execute access to directories for uploaded content

Maintained by a single user

If only one user is responsible for maintaining the site, set them as the user owner on the website directory and give the user full rwx permissions. Apache still needs access so that it can serve the files, so set www-data as the group owner and give the group r-x permissions.

chown -R eve
chgrp -R www-data
chmod -R 750
chmod g+s
ls -l
drwxr-s--- 2 eve      www-data   4096 Feb  5 22:52

If you have folders that need to be writable by Apache, you can just modify the permission values for the group owner so that www-data has write access.

chmod g+w uploads
ls -l
drwxrws--- 2 eve      www-data   4096 Feb  5 22:52 uploads

The benefit of this configuration is that it becomes harder (but not impossible*) for other users on the system to snoop around, since only the user and group owners can browse your website directory. This is useful if you have secret data in your configuration files. Be careful about your umask! If you create a new file here, the permission values will probably default to 755. You can run umask 027 so that new files default to 640 (rw- r-- ---).

Maintained by a group of users

If more than one user is responsible for maintaining the site, you will need to create a group to use for assigning permissions. It’s good practice to create a separate group for each website, and name the group after that website.

groupadd dev-fabrikam
usermod -a -G dev-fabrikam alice
usermod -a -G dev-fabrikam bob

In the previous example, we used the group owner to give privileges to Apache, but now that is used for the developers group. Since the user owner isn’t useful to us any more, setting it to root is a simple way to ensure that no privileges are leaked. Apache still needs access, so we give read access to the rest of the world.

chown -R root
chgrp -R dev-fabrikam
chmod -R 775
chmod g+s
ls -l
drwxrwxr-x 2 root     dev-fabrikam   4096 Feb  5 22:52

If you have folders that need to be writable by Apache, you can make Apache either the user owner or the group owner. Either way, it will have all the access it needs. Personally, I prefer to make it the user owner so that the developers can still browse and modify the contents of upload folders.

chown -R www-data uploads
ls -l
drwxrwxr-x 2 www-data     dev-fabrikam   4096 Feb  5 22:52 uploads

Although this is a common approach, there is a downside. Since every other user on the system has the same privileges to your website as Apache does, it’s easy for other users to browse your site and read files that may contain secret data, such as your configuration files.

You can have your cake and eat it too

This can be futher improved upon. It’s perfectly legal for the owner to have less privileges than the group, so instead of wasting the user owner by assigning it to root, we can make Apache the user owner on the directories and files in your website. This is a reversal of the single maintainer scenario, but it works equally well.

chown -R www-data
chgrp -R dev-fabrikam
chmod -R 570
chmod g+s
ls -l
dr-xrwx--- 2 www-data  dev-fabrikam   4096 Feb  5 22:52

If you have folders that need to be writable by Apache, you can just modify the permission values for the user owner so that www-data has write access.

chmod u+w uploads
ls -l
drwxrwx--- 2 www-data  dev-fabrikam   4096 Feb  5 22:52

One thing to be careful about with this solution is that the user owner of new files will match the creator instead of being set to www-data. So any new files you create won’t be readable by Apache until you chown them.

*Apache privilege separation

I mentioned earlier that it’s actually possible for other users to snoop around your website no matter what kind of privileges you’re using. By default, all Apache processes run as the same www-data user, so any Apache process can read files from all other websites configured on the same server, and sometimes even make changes. Any user who can get Apache to run a script can gain the same access that Apache itself has.

To combat this problem, there are various approaches to privilege separation in Apache. However, each approach comes with various performance and security drawbacks. In my opinion, any site with higher security requirements should be run on a dedicated server instead of using VirtualHosts on a shared server.

Additional considerations

I didn’t mention it before, but it’s usually a bad practice to have developers editing the website directly. For larger sites, you’re much better off having some kind of release system that updates the webserver from the contents of a version control system. The single maintainer approach is probably ideal, but instead of a person you have automated software.

If your website allows uploads that don’t need to be served out, those uploads should be stored somewhere outside the web root. Otherwise, you might find that people are downloading files that were intended to be secret. For example, if you allow students to submit assignments, they should be saved into a directory that isn’t served by Apache. This is also a good approach for configuration files that contain secrets.

For a website with more complex requirements, you may want to look into the use of Access Control Lists. These enable much more sophisticated control of privileges.

If your website has complex requirements, you may want to write a script that sets up all of the permissions. Test it thoroughly, then keep it safe. It could be worth its weight in gold if you ever find yourself needing to rebuild your website for some reason.

Thema: Uncategorized | Comments Off

Best Practice: Linux Server Backups via rsync

Sunday, 9. February 2014 12:28

Die Anwendung von rsync ist ähnlich wie die von scp. Die Paramter Ziel und Quelle können exakt beibehalten werden. Rsync bietet einige Funktionen die speziell für Backups vorteile bringen, während scp eher für rudimentäre Kopieraktionen gedacht ist.

Für Server-Backups ist folgender Befehl eine gute Wahl:

rsync -avzP Quelle Ziel

Das -a archive Flag inkludiert eine Reihe von wichtigen Funktionen, die ansonsten händisch ausgewählt werden müssten. Dazu läuft obiger Befehl im Verbose Modus, überträgt die Dateien komprimiert und zeigt den Fortschritt an. Die Komprimierung ergibt natürlich wenig Sinn, wenn Ordner mit größtenteils bereits komprimierten Bildern übertragen wird.


Thema: Uncategorized | Comments Off

Die Demokratie verteidigen im digitalen Zeitalter! – Unterschriftenliste

Tuesday, 10. December 2013 14:25

Es gibt bereits Unterschriftenlisten auf diversen Plattformen im Internet. Hier kann man sich auch als Normal-Bürger beteiligen und organisieren. Ich möchte in dem Zusammenhang auch auf meine mit Initiierte Webseite aufmerksam machen. Hier könnt ihr euch beteiligen:

Auf Globo Unterschriftenliste/Initiative: Die Demokratie verteidigen im digitalen Zeitalter.

Der komplette Aufruf:

In den vergangenen Monaten ist ans Licht gekommen, in welch ungeheurem Ausmaß wir alle überwacht werden. Mit ein paar Maus-Klicks können Staaten unsere Mobiltelefone, unsere E-Mails, unsere sozialen Netzwerke und die von uns besuchten Internet-Seiten ausspähen. Sie haben Zugang zu unseren politischen Überzeugungen und Aktivitäten, und sie können, zusammen mit kommerziellen Internet-Anbietern, unser gesamtes Verhalten, nicht nur unser Konsumverhalten, vorhersagen.

Eine der tragenden Säulen der Demokratie ist die Unverletzlichkeit des Individuums. Doch die Würde des Menschen geht über seine Körpergrenze hinaus. Alle Menschen haben das Recht, in ihren Gedanken und Privaträumen, in ihren Briefen und Gesprächen frei und unbeobachtet zu bleiben.

Dieses existentielle Menschenrecht ist inzwischen null und nichtig, weil Staaten und Konzerne die technologischen Entwicklungen zum Zwecke der Überwachung massiv missbrauchen.

Ein Mensch unter Beobachtung ist niemals frei; und eine Gesellschaft unter ständiger Beobachtung ist keine Demokratie mehr. Deshalb müssen unsere demokratischen Grundrechte in der virtuellen Welt ebenso durchgesetzt werden wie in der realen.

  • Überwachung verletzt die Privatsphäre sowie die Gedanken- und Meinungsfreiheit.
  • Massenhafte Überwachung behandelt jeden einzelnen Bürger als Verdächtigen. Sie zerstört eine unserer historischen Errungenschaften, die Unschuldsvermutung.
  • Überwachung durchleuchtet den Einzelnen, während die Staaten und Konzerne im Geheimen operieren. Wie wir gesehen haben, wird diese Macht systematisch missbraucht.
  • Überwachung ist Diebstahl. Denn diese Daten sind kein öffentliches Eigentum: Sie gehören uns. Wenn sie benutzt werden, um unser Verhalten vorherzusagen, wird uns noch etwas anderes gestohlen: Der freie Wille, der unabdingbar ist für die Freiheit in der Demokratie.

Wir fordern daher, dass jeder Bürger das Recht haben muss mitzuentscheiden, in welchem Ausmaß seine persönlichen Daten gesammelt, gespeichert und verarbeitet werden und von wem; dass er das Recht hat, zu erfahren, wo und zu welchem Zweck seine Daten gesammelt werden; und dass er sie löschen lassen kann, falls sie illegal gesammelt und gespeichert wurden.

Wir rufen alle Staaten und Konzerne auf, diese Rechte zu respektieren.

Wir rufen alle Bürger auf,  diese Rechte zu verteidigen.

Wir rufen die Vereinten Nationen auf, die zentrale Bedeutung der Bürgerechte im digitalen Zeitalter anzuerkennen und eine verbindliche Internationale Konvention der digitalen Rechte zu verabschieden.

Wir rufen alle Regierungen auf, diese Konvention anzuerkennen und einzuhalten.


Thema: Uncategorized | Comments Off

Cloud oder nicht Cloud?

Sunday, 23. June 2013 18:14

Auch Facebook setzt auf das gute alte memcached. Schöner Vortrag und Paper.

Viele nützliche Hinweise zu Caching mit Fokus auf memcached gibts bei Zum Beispiel gibt es dort diese wichtige Erkentniss:

“Always try to cache complex processed data like objects or even HTML snippets, rather than raw data coming straight from the database.”

Thema: Uncategorized | Comments Off

Abgelaufen: Gewinnspiel – Usenet Account mit 120 GB Volumen gewinnen!

Wednesday, 13. June 2012 14:37

Nach einer etwas ruhigeren Phase möchte ich hier wieder verstärkt bloggen. Als Auftakt und als Belohnung für die treuen Leser meines Blogs möchte ich drei Usenet Accounts verlosen.

Die Teilnahme ist ganz einfach, und Risiken gibt es auch keine. Der erste Platz bekommt einen Usenet Account beim Anbieter mit 120 GB Downloadvolumen, der Zweite 60 GB, der Dritte 30 GB. Die Accounts sind solange verfügbar, bis das Guthaben verbraucht ist. Es gibt keine Folgekosten. Ein gutes Angebot wie ich finde.

Wie nehmt ihr Teil?

  • Es reicht ein einfacher Kommentar in diesem Blogartikel. Damit erhaltet ihr ein Los.
  • Ihr könnt eure Chancen aber auch steigern indem ihr auf meinen Blog verlinkt, zum Beispiel mit einem Artikel in Eurem Blog oder auf Eurer Webseite. Dadurch erhaltet Ihr 3 Lose.
  • Oder Ihr schreibt auf Twitter oder Google+ über diesen Artikel = je 1 Los. Damit das zählen kann schreibt mir bitte einen Hinweis dazu in den Kommentaren.

Pro Aktion erhaltet ihr maximal ein Los. Ihr könnt aber beliebig viele verschiedene Aktionen erledigen und die Lose werden aufsummiert.

Viel Erfolg! Am 5. Juli wird der Gewinner gezogen. Einsendeschluss ist der 04. Juli 23:59 Uhr MESZ.


Die Gewinner stehen fest. Der dritte Patz mit 30 GB geht an Eisfeldt, der zweite mit 60 GB an Stefan und 120 GB hat Simon gewonnen. Glückwunsch! Ihr erhaltet in den nächsten Tagen Eure Zugangsdaten!

Thema: Sonstiges | Kommentare (7)

Webdesigner für Web 2.0 Projekt

Thursday, 17. February 2011 13:07

Vielleicht befindet sich unter den Lesern ein Webdesigner, der Erfahrung mit Web 2.0 Projekten hat, oder sich eine Mitwirkung vorstellen kann. Wer sich angesprochen fühlt, bitte weiterlesen:

Wir sind bisher ein kleines Team und haben eine interessante Idee für ein Web 2.0 Projekt. Leider sind wir nur technisch, aber nicht künstlerisch begabt. Um mit einem überzeugenden Prototypen der Webapplikation Geldgeber zu finden brauchen wir aber dringend auch eine ansprechende Benutzeroberfläche.

Gehalt nach Absprache. Eine Beteiligung in Form von Anteilen ist auch möglich.

Wir würden uns wünschen, wenn Du mit CSS und Ajax umgehen kannst. Als Dein Wohnort wäre Unterfranken oder Hessen ideal. Dieses Kriterium ist aber kein Muss.

Also wir beißen nicht, wenn Du mehr Informationen brauchst, schreib uns eine E-Mail an

Thema: Uncategorized | Comments Off

Dropbox – Dateien zwischen PC und Laptop oder Freunden synchronisieren

Thursday, 10. February 2011 17:20

Es gibt eine super einfache und praktische Lösung um Dateien einfach in einem bestimmten Ordner auf der Festplatte abzulegen, so dass diese automatisch in einen Cloud-Service synchronisiert werden und von jedem anderen PC ebenso einfach abrufbar sind.

Auf Deutsch: Bestimmte Ordner und Dateien auf Eurem PC sind von allen Euren PCs aus erreichbar. Ein Versenden von E-Mails an sich selbst oder ähnliche Tricks sind mehr notwendig.

Genau genommen gibt es mittlerweile duzente solcher Anbieter. Aber Dropbox bietet den Vorteil, das es recht verbreitet ist und die 2GB kostenlos auf bis zu 16GB erweitert werden können, wenn man Freunde wirbt.

Siehe auch: 10 Alternativen zu Dropbox

Eine Übersicht an Möglichkeiten, wie mit der Dropbox umgegangen werden kann, muss ich nicht nochmal nennen, denn auf gibt es eine gute Übersicht.

Achja, wer eine E-Mail Adresse hat in der ein “uni” im Domainnamen vorkommt bekommt 500 statt 250 MB wenn er Freunde wirbt und diese den Dropbox Client installieren. (Die Adresse muss hier nachträglich registriert werden)

Dropbox gibt es für Windows, Linux und Mac, sowie Smartphone Betriebssysteme.

Wer seine Daten lieber auf seinen eigenen Server oder PC speichert und überall darauf zugreifen möchte, dem empfehle ich WebDAV. Das ist eine Erweiterung des Apache Webservers und wird zum Beispiel von GMX unter dem Namen GMX Mediacenter verkauft (etliche andere Anbieter haben das auch, zum Beispiel T-Online als Mediencenter Aber wozu Geld ausgeben, was im Eigenbau kostenlos ist. Es ist empfehlenswert über WebDAV Daten über das SSL Protokoll verschlüsselt zuzugreifen.

Wer trotzdem Dropbox verwenden will, sollte aber für wichtige Daten auf jedenfall einen Truecrypt Container anlegen und diesen Container in der Dropbox speichern, anstelle der unverschlüsselten Datei. Eine Anleitung dazu findet sich bei blog.enplotz

Viel Spaß damit.

PS: Falls Ihr mir und Euch einen gefallen tun wollt, dann meldet Euch über diesen Link bei Dropbox an. Ich erhalte damit 500 MB extra und Ihr habt von anfang an 2GB+250 MB.

Thema: Uncategorized | Kommentare (1)

Das löchrichste Linux als Hackerspielwiese

Wednesday, 21. July 2010 13:01

Dr. Thorsten Schneider hat zu lehrzwecken eine Linuxdistribution zusammengestellt, die jedem Admin schlaflose nächte bereiten würde ( berichtete). Die Distribution “Damn Vulnerable Linux – Codename Infectious Disease” wird mit Anleitungen zum Ausnutzen von Buffer-Overflows, Shellcode-Entwicklung, Web-Exploits und SQL-Injection ausgeliefert. Ideal um in die Thematik Computersicherheit einzusteigen.

Auch für Computerbegeisterte mit der Frage “Wie werde ich Hacker?” dürfte das All-In-One Paket eine wertvolle Information sein. Ebenso lässt es sich auch am Unterricht in Berufsschulen verwenden.

Hier geht es direkt zum Projekt und Download.

Thema: Administration, News | Kommentare (1)

Würzburger Verkehrssituation

Tuesday, 20. July 2010 16:53

Das hat jetzt zwar nichts mit IT oder Internet zu tun, aber es beschäftigt mich trotzdem gewaltig. Wer hat denn noch nicht im Radio die Staumeldung von der A3 bei Würzburg gehört?

Nun wird zu allem Überfluss auch noch die B19 gewartet und der Zeller Block gesperrt. Schon davor hatte Würzburg kaum Verkehrs-Überkapazitäten. An allen Ecken und Enden spriesen Baustellen aus dem Boden. Auf der anderen Seite wird von den Würzburgern jedes Bauvorhaben neuer Straßen, die vielleicht wenigstens etwas Verkehrsentlastung bringen würden, boykottiert.

So zum Beispiel bei der B26n oder der B19-B8 Spange. Dabei ist Würzburg jetzt schon ein einziger Stauherd. Wenn das so weiter geht, wird Würzburg erst durch die Abwanderung einiger Staugeplagter verkehrsmäßig entlastet.

Die Straßenführung ist so ausgelegt, dass sie den Durchgangsverkehr in die Stadt lockt, anstatt den Stadtverkehr möglichst herauszuleiten. So zum Beispiel die B19. Mal abgesehen von der Überbrückung des Mains macht es verkehrstechnisch kaum Sinn, dass sie mitten durch Würzburg führt. Da dort sehr oft Stau herrscht würde doch kein Würzburger auf die Idee kommen, diese mehr als nur nötig für fahrten innerhalb der Stadt zu nutzen.

Jemand aus Würzburg unter den Lesern?

Thema: Schweinfurt und Unterfranken, Würzburg | Comments Off

Werbung “Top-News” in Horde entfernen

Monday, 16. November 2009 16:27

Für Personen die Plesk verwenden ist diese Information vielleicht interessant. Seit der letzten Version erscheint in der Weboberfläche von Horde Webmail immer diese nervige Werbung “Top News” mit “Sponsored Link” auf der linken Seite.

Man wird sie allerdings leicht los und muss keinen Source-Dateien suchen…

Einfach in Plesk einloggen und auf der Startseite auf “Skins” klicken.  Dort den Reiter “Sichtbarkeit von Oberflächen-Steuerelementen” anklicken und den Hacken bei “Keine Newsfeeds in WebMail und auf Standard-Domainseiten anzeigen” anwählen.

Die überall zu lesenden Tipps mit “Server -> interface administrator -> interface templates -> preferences -> Hide newsfeeds /Hide Virtuozzo promotion /Hide Fotolia promotion” funktionieren in der deutschen Version anscheinend nicht.

Viel Erfolg beim Entfernen der lästigen Fremd-Werbung von Eurem (!) Server.

Thema: Uncategorized | Kommentare (5)

Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien: