Hier gibt es einige Infos über verschiedene Linux-Dinge.
Ein paar Programme, die ich mir irgendwann mal anschauen wollte/will:
Diese Programme dienen der Information über verschiedene Bereiche des Systems. iostat dient z.B. zur Anzeige der Festplatten-Aktivität.
Was ich mir da mal anschauen wollte ist mod_authnz_external. Dieses httpd-Modul erlaubt UNIX-Authentifizierung von Benutzern über das Web. Informationen dazu liefert z.B. blog.innerwut.de.
Unter Ubuntu (Server 8.10) wird bei der Installation von MySQL automatisch auch ein MySQL-Benutzer mit dem Namen debian-sys-maint angelegt. Was macht man nach der Installation als erstes? Natürlich diesen Benutzer löschen! :)
Naja, nachdem der gelöscht war, war es nicht mehr möglich den MySQL-Server über /etc/init.d/mysql zu starten oder zu stoppen. Ups... :) Nach etwas Recherche habe ich unter ubuntuforums.org Hilfe gefunden: Folgendes SQL-Statement genügt, um den User wiederherzustellen:
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY PASSWORD 'password' WITH GRANT OPTION
Dabei muss password durch das Passwort ersetzt werden, welches man in der Datei /etc/mysql/debian.cnf finden kann.
Der nun neu angelegte Benutzer hat jetzt aber volle Rechte auf dem MySQL-Server. Im oben genannten Forums-Beitrag gibt es noch ein anderes Statement, welches den Benutzer mit weniger Rechten erzeugt.
ACL (Access Control List) ist eine Erweiterung des Standard-UNIX-Rechte-Systems. Manchmal kommt es vor, dass Benutzer/Gruppe/Andere zu wenig ist. Genau dann kommen ACL ins Spiel.
Ich habe diese derzeit in Verwendung, um meinem ~/public_html-Verzeichnis nur die Rechte zu geben, die nötig sind. Auf dieses Verzeichnis brauche nur ich und www-data (der Webserver) zugreifen. Alle anderen sollen das nicht können. Höchstens noch tomcat6 (der Tomcat-Server). Man könnte das zwar über Umwege auch einrichten (eine Gruppe mit den beiden Servern und mir erstellen, dann alle Dateien chgrpen und die Rechte entsprechend setzen), aber das ist nicht so schön. Außerdem müssten dann für jeden Benutzer eine eigene Gruppe erzeugt werden, sonst könnte Benutzer A auf ~/public_html des Benutzers B zugreifen (zwar nur lesend, wie auch die beiden Server, aber immerhin).
Um ACL verwenden zu können, muss es der Kernel und das Dateisystem unterstützen. Das Dateisystem muss auch mit der Option acl gemountet werden.
Die beiden wichtigsten Programme im Zusammenhang mit ACL sind getfacl und setfacl. Wie zu erraten war, kann getfacl ACLs lesen und setfacl ACLs setzen.
Der Umgang mit diesen Befehlen wird recht gut auf www.tuxhausen.de erklärt.
Ich habe mir ein kleines Skript geschrieben (wahrscheinlich eher etwas umständlich; ich bin nicht so geübt im Bash-Skripten schreiben), welches mir die Berechtigungen für mein public_html-Verzeichnis entsprechend setzt:
#!/bin/bash
setfacl -m u::rwx,g::0,o::0,u:www-data:x,u:tomcat6:x ~
setfacl -m u::rwx,g::0,o::0,u:www-data:x,u:tomcat6:rx,d:u::rwX,d:g::0,d:o::0,d:u:www-data:rX,d:u:tomcat6:rX ~/public_html
find ~/public_html/* -type d -exec setfacl -m u::rwx,g::0,o::0,u:www-data:x,u:tomcat6:rx,d:u::rwX,d:g::0,d:o::0,d:u:www-data:rX,d:u:tomcat6:rX {} \;
find ~/public_html/* -type f -exec setfacl -m u::rw,g::0,o::0,u:www-data:r,u:tomcat6:r {} \;
Dazu zu sagen ist, dass Tomcat unbedingt auch Lese-Rechte auf Verzeichnise haben will, Apache selber muss das nicht haben. Es werden auch Default-ACLs auf Verzeichnisen gesetzt, welche dafür sorgen, dass neu angelegte Dateien/Verzeichnise gleich die richtigen ACLs bekommen. Allerdings gibt es da einen kleinen Schönheitsfehler: www-data bekommt automatisch das r-Recht auf Verzeichnise, obwohl er das nicht brauchen würde. Ein durchlaufen dieses Skripts nach dem Anlegen des Verzeichnises behebt das aber.
Last changed: 2009-05-30T23:06+02:00