Willkommen zu einer neuen Ausgabe von Georg´s Brave GNU World. Diese Ausgabe wird zunächst ein paar Projekte vorstellen und dann auf etwas weniger praktische Fragen eingehen, die mir im Rückblick auf die Systems in München recht wichtig erscheinen. Doch zunächst zur Praxis.
Userv
Userv ("you serve") [5] von Ian Jackson ist ein Projekt, mit dem ein Programm ein anderes aufrufen kann, wenn nur begrenztes Vertrauen zwischen ihnen herrscht. Da dies den meisten Leuten auf Anhieb nicht viel sagen wird, möchte ich darauf ein wenig genauer eingehen.
Sehr oft entstehen auf einem Unix-System Situationen, in denen ein Programm für bestimmte Tätigkeiten andere Benutzerrechte benötigt. Für solche Situationen gibt es zwar einige Lösungen, es entstehen dabei aber fast zwangsweise Sicherheitslücken. So können privilegierte Teile über einen C-Wrapper aufgerufen oder direkt in C geschrieben werden. Ein solches Programm besitzt dann alle Rechte, die auch unser ursprüngliches Programm hatte, man muß dem aufgerufenen Programm also 100%ig trauen können. Zudem schleichen sich hier leicht Fehler ein: Aufgerufene Prozesse erben je nach Unix Variante verschiedene Eigenschaften ihrer "Eltern". Dabei kann es leicht vorkommen, daß etwas vergessen wird oder unportabel wird.
Sehr oft wird zu diesem Zweck auch das "sudo" Programm eingesetzt, welches zumeist erfordert, daß zumindest eine Seite als root arbeitet. Dies verletzt mindestens das "Least Privilege" Prinzip, nach dem jeder Prozeß nur so viele Privilegien erhalten sollte, wie zur Durchführung seiner Aufgabe nötig sind. Oft kommt es auch dazu, daß vom Elternteil geerbte Ressourcen nicht ordentlich verwaltet werden und dadurch nur eine mangelhafte Isolation der Prozesse entsteht.
Diese Probleme sucht userv zu lösen. So ist es damit beispielsweise möglich, eine Version von cron zu schreiben, die nicht mehr als root laufen muß. Ein Sicherheitsloch würde dann dem potentiellen Eindringling nur noch die Möglichkeit geben, Cron-Jobs zu anderen Zeiten laufen zu lassen, anstatt die volle Kontrolle über das System zu erlangen.
Auch gerade im Bereich der Webserver mit CGI-Skripts ist dies interessant, so verwendet die Universität Cambridge userv beispielsweise, um einen zentralen Webserver sauber von den Daten der einzelnen Abteilungen zu trennen.
Die Version 1.0 von userv steht unmittelbar vor der Tür und da es der GNU General Public License unterliegt, ist es frei einsetzbar. Auch wenn der Autor zugibt, daß die Konfiguration anfangs etwas ungewohnt ist, sollte man sich dieses Projekt ruhig etwas näher ansehen.
Die nächsten beiden Projekte unterstehen ebenfalls der GNU General Public License und wurden von Jason Nunn geschrieben.
Clobberd
Mit Clobberd [6] ist es möglich, die Useraktivität und Zeit- bzw. Netzwerkresourcen zu überwachen. Der Daemon holt seine Informationen aus dem utmp File und die User können ihre aktuellen Statistiken über clobbertool auf einem Webserver ansehen. Für Administratoren gibt es zudem clobberedit, mit dem Usereinstellungen getätigt werden können.
Die Vorteile von Clobberd liegen darin, daß es extrem einfach zu installieren und benutzen ist. Leider erwartet der Autor aber Probleme unter anderen Unix Systemen als GNU/Linux und Clobberd sollte immer hinter einer Firewall eingesetzt werden.
Das Haupteinsatzgebiet sind sicherlich Netzwerke mit großen Userzahlen; jedoch erzählte Jason Nunn von einem Mann, der sein Netzwerk zu Hause über ein GNU/Linux Gateway an das Internet angeschlossen hat. Bei ihm wird Clobberd benutzt, um seinen Sohn zu überwachen, damit dieser mehr Hausaufgaben macht und weniger im Netz surft. Es zeigt sich, daß selbst das nützlichste Programm dem Bösen dienen kann. .-)
La51
Bei la51 [7] handelt es sich um einen kleinen 8051 (MCS-51) Cross-Compiler, der speziell auf den Siemens sab80c537 ausgerichtet ist. Das Programm basiert auf auf dem Buch 'The 8051 Microcontroller' 2nd Ed. von IS Mackenzie und ist sehr klein und kompakt.
Auch wenn der Compiler von seinem Autor als nicht perfekt bezeichnet wird, so hat er ihm doch schon gute Dienste geleistet. Beispielsweise schrieb Jason Nunn mit seiner Hilfe eine VT52 Terminalemulation. In seinen Augen ist das einzig echte Problem, daß der Compiler nur Intel Hex Files erzeugt, jedoch ist er intensiv erprobt, was dieses Manko mehr als ausgleichen sollte.
Dies ist vermutlich nur für einen kleinen Teil der Leser interessant, daher geht es direkt weiter mit dem nächsten Thema.
CUPS
CUPS ("Common Unix Printing System") [8] von Easy Software Products ist ein möglicher Ersatz für die alte Unix-Druckarchitektur. Seine erweiterten Funktionen machen es gerade für diejenigen interessant, die mit den aktuellen Druckdiensten nicht zufrieden sind. Da es der GNU General Public License untersteht, sind auch keine Nutzungsbeschränkungen zu befürchten.
Neben den traditionellen Funktionen gibt es bei CUPS die Möglichkeit, per Kommandozeile die Mediengröße und Auflösung zu wählen, doch es kann noch mehr. So gibt es spezielle "Backend" Module, die eine Kommunikation über verschiedenste Hardware erlauben und CUPS unterstützt die Authentifizierung von Benutzern. Ein Feature, für das wohl besonders die Administratoren größerer Netzwerke dankbar sein werden, ist die Fähigkeit, Netzwerkdrucker automatisch zu finden und einzurichten.
Das drängendste Problem ist, daß CUPS kein generisches lpd Druckinterface anbietet, so daß Clients, die darauf angewiesen sind, Probleme haben. Es wird jedoch an einer Lösung gearbeitet.
Pläne für die nächsten Versionen beinhalten ein noch stärkeres Job/User Handling und eine Verschlüsselung der übertragenen Daten.
Wem diese Themen etwas zu "intern" waren, den kann ich vielleicht für den nächsten Beitrag interessieren.
SADP
Der Sing Along Disc Player (SADP) [9] untersteht ebenfalls der GNU General Public License und ist ein CD-Player mit vielen Extras. So bietet SADP beispielsweise einen Spectrum Analyzer und einen Oszillator die beide "on the fly" reskaliert werden können. Zudem hat es einen internen Mixer und einige andere Dinge, die von einem guten CD-Player erwartet werden können.
SADP verfügt über eine lokale CD-Datenbank und kann via Internet auf externe Datenbanken zugreifen. Da es dabei die CD-Datenbankprotokolle CDDB, FreeDB und CD-INDEX versteht, können vorhandene Datenbanken direkt angezapft werden.
Dem Autor war es wichtig, daß sich SADP den lokalen Gegebenheiten anpassen kann. Daher ist es zwar in der Lage, mit Internet und Soundkarte zu arbeiten, ist aber nicht auf diese angewiesen. Zudem ist es klein, stabil und recht benutzerfreundlich. Die größten Probleme bestehen momentan in "geschwätzigen" CD-Treibern und ein paar Fehlern in den XForms.
Übrigens hat SADP im Oktober einen Preis von 4Front Technologies erhalten, es lohnt sich also, einmal einen Blick zu riskieren.
Damit möchte ich die technische Seite für diesen Monat schließen und zum ersten Teil meiner persönlichen Nachlese der Systems '99 kommen.
Zur GNU GPL
Es ist nicht erst seit gestern so, daß Gegner der GNU General Public License diese bewußt abfällig als "viral" titulieren. Mir ist jedoch aufgefallen, daß diese Bezeichnung viel zu oft unwidersprochen hingenommen wird.
Es wird in diesem Zusammenhang davon gesprochen, die GPL "infiziere" den mit ihr lizensierten Code. Durch die Virus-Analogie wird dabei impliziert, die GPL verbreite sich dann unkontrollierbar und zum allgemeinen Schaden.
Wenn von Schaden gesprochen wird, sollte man sich zunächst überlegen, von wessen Schaden hier eigentlich die Rede ist. Die GNU General Public License garantiert jedem Benutzer das uneingeschränkte Recht, Software zu benutzen, zu verändern und in originaler oder veränderter Form weiterzugeben. Die einzige Einschränkung dabei ist, daß dieses Recht niemandem vorenthalten werden darf. Geschädigt kann sich also höchstens derjenige fühlen, der diese Rechte anderen vorenthalten möchte.
Darauf wird gerne erwidert, daß die GNU General Public License auch zu anderen Lizenzen Freier Software, wie etwa der FreeBSD Lizenz, inkompatibel sei. Dies ist richtig.
[Dec 31 1999] Dies ist leider nicht ganz korrekt. Es war unmöglich, Code unter der GPL und der alten BSD Lizenz zu verbinden. Kombinationen von FreeBSD und GPL lizensiertem Code sind möglich, sofern das Endprodukt unter der GPL steht. Die Lizensierung der Einzelteile bleibt dabei erhalten. Da dieser Abschnitt jedoch recht passabel die Gedanken hinter den beiden Lizenzen erklärt, werde ich ihn nicht entfernen.
Allerdings wird dabei vergessen, woher die Inkompatibilität stammt. Sollen zwei Programmteile verbunden werden, so ist dies nur möglich, sofern sich ihre Lizenzen nicht widersprechen.
Theoretisch kann durchaus Code unter der GNU GPL mit Code unter einer anderen Lizenz verbunden werden. Praktisch jedoch ist die GNU General Public License gerade durch ihren Schutz der Rechte des Benutzers noch so einzigartig, daß selbst eine Verbindung mit anderen Lizenzen Freier Software problematisch wird.
Die klassische Erwiderung ist, daß die FreeBSD Lizenz "freier" als die GNU GPL sei. Die daraus resultierende Grundsatzdiskussion führt in letzter Konsequenz zur Staatsphilosophie, die sich schon lange mit dem Dilemma beschäftigt hat, daß es für das Zusammenleben von Menschen bei größtmöglicher Freiheit und Selbstbestimmung notwendig ist, dem Einzelnen keine absolute Freiheit einzuräumen. Durch die Staatsbürgerschaft eines Landes erkennen wir an, daß gewisse Freiheiten zugunsten der Allgemeinheit aufgegeben werden. So verzichten wir beispielsweise auf die Freiheit, anderen mit dem Knüppel über den Kopf zu ziehen, weil uns dessen Lebensabschnittsgefährte gefällt.
Wenn es darum geht, die Rechte der Benutzer bei Software einzuschränken, so ist dies eigentlich immer ein "einer gegen alle" Fall. Was wiegt schwerer? Die Freiheit des Einen, die Freiheiten der restlichen Menschheit zu beschneiden oder der Schutz der Freiheit für die Allgemeinheit? An dieser Frage scheiden sich die Geister und meiner Ansicht nach sollte es genug Platz für beide Meinungen geben.
Die bereits erwähnte Inkompatibilität rührt also letztlich von einer unterschiedlichen philosophischen Ansicht her. Auf die Existenz zweier verschiedener Meinungen damit zu reagieren, die GNU General Public License als "viral" zu verunglimpfen, halte ich jedoch für falsch und recht intolerant - daher möchte ich Euch bitten, diese Bezeichnung nicht mehr so ohne weiteres zu akzeptieren.
Fast vorbei...
Das war vermutlich genug starker Tobak für diesen Monat, daher werde ich den zweiten Teil der Nachlese wohl nächsten Monat folgen lassen. Es gibt allerdings noch ein paar Dinge, die ich gerne erwähnen wollte.
Zunächst einmal wurde die "We run GNU" [4] Seite von mir etwas umgestellt und übersichtlicher gemacht - dadurch sollten es jetzt auch von langsameren Verbindungen möglich sein, sich diese Seite anzusehen. Außerdem gibt es mal wieder ein paar lustige neue Motive wie z.B. der PenGNUin von Ben Stickan.
Interessenten für "Brave GNU World" T-shirts haben sich mittlerweile etliche gemeldet, so dass die kritische Masse bald erreicht ist. In jedem Fall habe ich mal begonnen, mir ein paar Gedanken zum Design zu machen. Eine Idee, die dabei an mich herangetragen wurde, war, ein Gnu als Atlas mit der Welt auf den Schultern zu zeichnen. Da meine graphischen Talente hierzu leider nicht ausreichen, gebe ich die Anregung gerne weiter.
Das war es mal wieder für diesen Monat, bitte spart nicht mit Ideen, Fragen, Anregungen und Kommentaren an die übliche Adresse [1].
Infos |
[1] Ideen, Anregungen, Kommentare an die Brave GNU World:
column@gnu.org
|
Zurück zur vorherigen Ausgabe / Brave GNU World home page
Return to GNU's home page.
Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.
Please send comments on the Brave GNU World column to column@gnu.org, send comments on these web pages to webmasters@www.gnu.org, send other questions to gnu@gnu.org.
Copyright (C) 1999 Georg C. F. Greve and Linux-Magazin
Permission is granted to make and distribute verbatim copies of this transcript as long as the copyright and this permission notice appear.
Last modified: Sun Jan 16 13:52:06 CET 2000