thinkretro.de

Jul 17, 2014

SSH-Server absichern

Seit geraumer Zeit betreibe ich einen kleinen stromsparenden Server, der auch über das Internet von überall mittels ssh erreichbar ist. Dieser dient mir als Zugangspunkt zu meinem Heimnetzwerk, falls ich doch einmal eine bestimmte Datei o. Ä. unterwegs brauche. Um diesen abzusichern, sollte man die Standardkonfiguration ein wenig anpassen. Die Konfigurationsdatei für den SSH-Server findet man unter '/etc/ssh/sshd_config'.

Port umlegen

Standardmäßig arbeitet der SSH-Server auf dem Port 22. Das ist leider auch so ziemlich jedem klar, der mit dem Begriff "SSH" etwas anfangen kann. Was liegt also näher, als einfach einen anderen - möglichst von keinem anderen Dienst belegten Port - einzustellen. Dazu trägt man in der 'sshd_config' folgendes ein:

...
Port 12345
...

Einziger Nachteil ist, dass man von nun an beim Aufruf von ssh mit der Option -p explizit den Port angeben muss. Allerdings bietet die Umlegung des Ports allein keinen wirklichen Sicherheitsgewinn. Ein vollständiger Portscan würde relativ schnell den richtigen Port enttarnen.

$ ssh -p 12345 user@serveradress.de

Rootlogin verbieten

Auf jeden Fall sollte man die Anmeldung als Root verbieten. So muss ein potentieller Angreifer nicht nur das Passwort, sondern auch gleich noch den richtigen Benutzernamen erraten. Um die Anmeldung als Root zu verbieten muss die Option

...
Permit RootLogin no
...

gesetzt werden. Danach kann man sich nur noch mit einem "normalen" User anmelden.

SSH-Keypair erzeugen

Wesentlich sicherer als die Eingabe eines bloßen Passwort ist die Authentifizierung mittels RSA-Key. Dabei wird auf dem Client ein Private Key und ein Public Key erzeugt und der Public Key anschließend auf den Server transferiert. Die Erstellung eines RSA-Schlüsselpaars geschieht über:

$ ssh-keygen

Danach kopiert man mittels folgendem Befehl den Schlüssel auf den Server:

$ ssh-copy-id user@serveradress.de

Von nun an wird man bei der Authentifizierung immer nach der RSA-Passphrase des RSA-Schlüssels gefragt, statt nach einem regulären Passwort.

Passwortbasierte Anmeldung verhindern

Hat man einmal eine solche Authentifizierung eingerichtet, kann man gleich auch die passwortbasierte Anmeldung unterbinden. Der Vorteil ist, dass sich jetzt nur noch derjenige anmelden kann, der über den passenden Schlüssel verfügt. Dazu muss man nur folgende Option setzen:

...
PasswortAuthentication no
...

Der Nachteil ist, dass man nun auf seinen private-Key Acht geben muss und ihn irgendwo sicher aufbewahren muss. Hat man physisch keinen Zugriff auf den Server, hilft bei Verlust des Schlüssels nur noch ein trauriger Anruf beim Hoster.

StrictHostKeyChecking

Hat man einmal die Authentifizierung mittels RSA-Keys eingerichtet, ist man im Prinzip schon recht gut abgesichert gegen Personen, die auf dem Server nichts zu suchen haben. Hat man allerdings seinen Private-Key verloren ist es prinzipiell dem Finder möglich sich auf dem Server einzuloggen (falls er die richtige Passphrase für den Private Key kennt). Zugegeben, dass sind schon recht viele Wenn's, aber 'Unverhofft kommt oft :-)'Jedenfalls kann man zusätzlich noch das Strict Host Key Checking aktivieren. Dazu setzt man folgende Option:

...
StrictHostKeyChecking yes
...

Das bewirkt, dass sich nur dem Server bereits bekannte Hosts anmelden dürfen. Dabei wird der Client-Host-Key mit denjenigen Keys in der Datei '\~/.ssh/known_hosts' bzw. '/etc/ssh/known_hosts' abgeglichen.

Fazit

Mit diesen relativ einfachen Mitteln hat man gegenüber der Standardkonfiguration schon einiges an zusätzlicher Sicherheit gewonnen. Absolute Sicherheit wird es wohl leider nie geben, sodass man auch weiterhin Serverlast und die Log-Files auf Unstimmigkeiten überwachen sollte. Man kann also nur hoffen, dass man es einem potentiellen Angreifer so schwer wie möglich macht und dass dieser sich dann lieber weniger aufwändigen Zielen zuwendet.

Jun 21, 2014

Bonjour T500

Jüngstes Mitglied in meiner immer umfangreicher werdenden Sammlung von Laptops ist ein gebrauchtes Lenovo Thinkpad T500. Seit längerer Zeit schon suchte ich nach einem gebrauchten Laptop mit einem ausreichend großen Bildschirm. Mein 12'' Zoll Thinkpad X60s ist mir mittlerweile zu klein, wenn es darum geht längere Texte, Webseiten oder Programme zu bearbeiten. Man wird halt alt und die Augen werden auch nicht besser :-) Eher zufällig stieß ich letztens auf der Seite eines bekannten Auktionsportals auf diesen gebrauchte Thinkpad. Et volià

Hardwareausstattung:

Zugegeben, die Hardwareausstattung dieses Laptops ist ganz und gar nicht mehr zeitgemäß und haut keinen mehr vom Hocker. Im Inneren werkelt ein schon etwas betagter Core2Duo mit 2 Kernen @ 2,26 Ghz sowie 2 GB DDR3-RAM. Verbaut war eine 160 GB SATA Festplatte von Seagate, welche ich durch ein größeres und performanteres Modell von Western Digital ersetzt habe. Größtes Plus - und der eigentliche Grund, warum ich dieses Modell schließlich gekauft habe - ist der große 15'' Bildschirm mit einer grandiosen Auflösung von 1680 x 1050 Bildpunkten. Gelitten hat über die Jahre lediglich der Akku, der nur noch eine verbleibende Restkapazität von etwa 48% aufweist. Alles in allem ist der T500 in einem sehr guten Zustand mit nur minimalen Gebrauchsspuren.

OS:

Wie immer, wenn ich einen Rechner neu einrichte, stehe ich vor der Qual der Wahl eines passenden Betriebssystems. Vor allem stellt sich die Frage, bleibe ich beim alten, vertrauten Weg und richte ein Debian-basiertes OS ein oder versuche ich mal etwas Neues und installiere z.B. ArchLinux? Letztendlich habe ich mich für Debian entschieden. Damit kenne ich mich momentan am besten aus und darüber hinaus möchte ich das Thinkpad produktiv einsetzen, sodass allzu umfangreiche Testereien an der Konfiguration des OS sich eh verbieten.
Da die Hardware nicht mehr ganz so taufrisch ist, war mir klar, dass hier nur die bewährte Methode Debian + leichtgewichtiger Fenstermanager zum Einsatz kommt. So habe ich mich auch hier wieder für i3 als Fenstermanager entschieden.
Die Installation von Debian-Wheezy klappte reibungslos. Lediglich die Firmware für die integrierte Intel-WLAN-Karte musste ich im Nachgang manuell installieren. Out of the work funktionieren leider ein paar Sondertasten nicht, darunter auch diejenigen für Mute, VolumeUp und VolumeDown. Ich habe aber im Internet dafür schon ein passendes Workaround gefunden; dazu demnächst mehr.
Die Installation von i3 und ein paar nützlichen Programmen war ebenso ein Kinderspiel und ist mittlerweile nur noch Routine.

Fazit:

Das Thinkpad T500 ist ein rundum solides Notebook, dass ich jedem vorbehaltlos empfehlen kann. Darüber hinaus bleibt es im Betrieb angenehm kühl und den Lüfter hört man kaum. Der Core2Duo mag aus heutiger Sicht zwar schon als total veraltet gelten, mit den richtigen, leichtgewichtigen Anwendungen blüht er jedoch richtig auf und in Sachen Schwuppdizität kann er sich durchaus mit einem aktuellen Core-I* messen. Mit gerade einmal etwa 180MB RAM-Verbrauch nach dem Boot, bleiben bei insgesamt 2GB RAM, noch genügend Reserven für eine ganze Reihe an parallel laufenden Anwendungen.

Mai 09, 2014

Retrocomputing als Hobby

Bei mir hat sich in den letzten Jahren ein ansehnliches Sammelsurium verschiedenster Rechner, vor allem Laptops, sowie ein ganzer Berg an Festplatten, Wlan-Karten, Netzwerkkarten und sonstiger Hardware angesammelt; eben alles was man immer mal so braucht :-) . Wenn ich allerdings gefragt wurde, was ich mit all dem "alten" Krempel will, musste ich bisher immer arg ausschweifend werden. Es fehlte mir immer ein einschlägiger Begriff für das was ich tue. Bis neulich. Eher durch Zufall fand ich einen Begriff, der mir sehr passend erscheint: Retrocomputing.

Die deutschsprachige Wikipedia sagt da folgendes zu:

"Retrocomputing (von lat. retro = rückwärts und Computer) ist das bewusste Nutzen veralteter Computer-Technologie als Hobby, zur Nutzung älterer Computerspiele
(Retrospiele), zur Datensicherung (indem die Inhalte alter Datenträger auf moderneren Medien gesichert werden) und zur Sicherung des Wissens über alte Technik und Software."

Das trifft es schon ziemlich genau (die englischsprachige Wikipedia ist da noch einmal genauer und listet sogar eine ganze Reihe an "Klassikern" auf.), aber weil sich da die meisten immer noch nicht so richtig etwas drunter vorzustellen vermögen habe ich mal selber überlegt, was mich daran eigentlich begeistert:

1. Kostenfaktor:

Ganz klar, alte Computer kosten nicht viel und Ersatzteile sind vergleichsweise billig. Zumindest was momentan die Hardware der späten 90er Jahre betrifft. Ältere Hardware
ist da schon schwieriger zu bekommen und wenn, dann mitunter auch (leider) nicht gerade billig. Für die richtigen Klassiker zahlt man bereits heute ein Vermögen.

2. Spielwiese:

Beim Übertakten ein wenig zu viel Spannung auf den Prozessor gegeben und nun ist er geschmolzen? Gut, dass das nicht der neue 8-Kern-Server-Prozessor war. Soll heißen: wenn ich mal einen Fehler mache und die Hardware kaputt geht (wobei man sich da schon ziemlich anstrengen muss), dann ist das nicht gleich der Weltuntergang und ein Ersatzgerät ist (momentan) schnell beschafft.

3. Experimentieren:

Nichts ist ärgerlicher, als ein Produktivsystem, dass nicht mehr booten will, nur weil man wieder einmal zu leichtsinnig in den Config-Files herumgeschraubt hat. Meistens führt dann kein Weg an einer Neuinstallation - mit allem was dazugehört - vorbei. Umso besser, wenn man einen separaten Rechner zum Herumspielen hat. Da stört es auch (meistens) nicht, wenn man mal was Dummes tut und sein System zerschießt :-)

4. Minimalismus:

Da könnte man jetzt eine ganze Philosophie 'drüber entwickeln, aber um es kurz zu machen ich verstehe darunter folgendes: Mit minimalen Mitteln (hard- und softwarewaretechnisch gesehen) das Maximale herausholen. Darüber hinaus stellt sich hier auch immer die sinnbildlich Frage "Brauche ich um bspw. eine CD zu brennen eine ganze Software-Suite, die mir auch noch das aktuelle Wetter in San Francisco mit auf die CD brennt?". Ich denke man kann viele Dinge des Alltags auch mit kleinen, ressourcensparenden Anwendungen erledigen. Daraus abgeleitet stelle ich an ein Programm auch nur eine zentrale Anforderung: "Do one thing, but do it well".

5. Ökologisches Bewusstsein

Generell trenne ich mich sehr ungern von einem Stück Technik, dass noch anstandslos funktioniert. Warum wegwerfen, was noch gut funktioniert und nicht weiternutzen? Bedenkt man zudem wie viele Ressourcen und Energie benötigt werden um nur einen Laptop herzustellen, erscheint es mir schon allein aus diesem Grund angeraten die einmal gekaufte Hardware auch so lange zu nutzen, wie sie funktioniert.

6. Nostalgie, Computergeschichte:

Zugegeben, ein etwas sentimentaler Geschichtspunkt. Aber ich komme immer wieder ins Schwärmen, wenn ich an meinen ersten Computer mit Pentium-II Prozessor und gigantischen 32 MB Arbeitsspeicher zurück denke. Aber: wirkten damals die 2 Gigabyte an Festplattenspeicherplatz noch schier unendlich, so würde heute nicht einmal mehr ein DVD-Spielfilm dort Platz finden. Blickt man auf die letzten fünfzehn Jahre zurück, so hat sich einiges getan und heutige Computer sind - verglichen mit denen aus den Anfängen der 2000er Jahre - so dermaßen leistungsstark, dass man gar nicht mehr weiß wohin mit der geballten Rechenpower :-) Fakt ist jedoch: das Herumfummeln an alten Computern lässt mich immer wieder eintauchen in diese längst vergangene Zeit :-)

Unspannend ist dabei auch nicht die Geschichte der Computer im generellen und die der Betriebssysteme im Speziellen. Viele der Verhaltensweisen und Eigenarten moderner Betriebssysteme tragen bspw. immer noch die Spuren ihrer Vorfahren in sich und es macht Spaß diese zu entdecken.

7. Nerdfaktor

Matrix gegen den Framebuffer gucken, macht doch einiges her :-)

Fazit:

Ich bin mir sicher, wenn ich noch eine Weile weiter brainstormen würde, würde ich bestimmt noch ein paar mehr Punkte auf meine Liste bekommen. Aber so ist das ja mit allen Hobbies :-)

Mai 09, 2014

Debian Wheezy auf dem Thinkpad T21

Da ich eine neue Festplatte in das Thinkpad T21 eingebaut habe, stand ich wieder vor der Wahl des passenden Betriebssystems. Da ich bisher mit Debian sehr gute Erfahrungen gemacht hatte, war für mich eigentlich schnell klar, dass es wieder ein Debian-System werden soll. Diesmal wollte ich jedoch nur eine Minimalinstallation machen und mein System nach und nach ausbauen.

Hat man sich einmal durch die Debian-Grundinstallation durchgehangelt, hat man direkt nach dem Reboot ein einsatzfähiges System. Allerdings sieht es noch nicht wirklich hübsch aus und außerdem müssen noch ein paar Dinge konfiguriert werden. Beispielsweise muss noch für die alte Soundkarte im T21 das entsprechende Kernelmodul geladen werden. Ob es Probleme mit fehlender Firmware gibt, verrät ein 'dmesg|grep firmware'. Ansonsten geht die Installation ziemlich problemlos über die Bühne, sodass im Nachgang nur noch wenig Hand angelegt werden muss.

1. Framebuffer aktivieren und Auflösung einstellen:

Ein 'lspci|grep VGA' verriet mir, dass im T21 ein Grafikchip von S3 verbaut ist. Das zugehörige Kernelmodul für den Framebuffer heißt s3fb. Um den Framebuffer zu aktivieren, kommentiert man das entsprechende Modul in der '/etc/modprobe.d/fbdev-blacklist.conf' aus.

Um auch gleich in eine höhere Auflösung zu booten muss man aber noch die '/etc/default/grub' entsprechend editieren:

GRUB_GFXMODE=1024x768x24
GRUB_GFXPAYLOAD_LINUX=keep

2. Netzwerk einrichten:

Sofern man bei der Installation nicht schon gleich zur Debian-Version greift (Link hier)
musste ich beim T21 für die eingebaute Intel-Karte noch die entsprechende Firmware nachinstallieren. Diese findet sich im Paket firmware-linux-nonfree.

Als nächstes muss man noch das entsprechende Interface in '/etc/network/interfaces' konfigurieren. Dort trägt man folgende Zeilen ein:

iface eth0 inet dhcp

3. Sound:

Für die Soundkarte im T21 muss man ein eigenes Kernelmodul kompilieren. Wie das genau geht, steht hier

Offenbar führt der Link zu Torvalds' GitHub Repository ins Leere. Man kann sich die Datei cs46xx_image.h aber hier besorgen:

$ wget https://casper.berkeley.edu/svn/trunk/roach/sw/linux/sound/pci/cs46xx/cs46xx_image.h

Danach kann man wie in der Anleitung beschrieben weiter machen.

Das war es auch schon im Grunde. Jetzt kann man daran gehen, das frische System mit der Software seiner Wahl zu befüllen oder gleich noch eine grafische Oberfläche installieren.

Apr 22, 2014

Steam für ArchLinux nun verfügbar

Spieletechnisch tut sich momentan ja recht viel in der Linuxwelt. Nachdem Steam seit letztem jahr offiziell Ubuntu unterstützt und zudem gerade an der Entwicklung eines eigenen SteamOS auf Debian-Basis sitzt, ist Steam nun auch für die ArchLinux-User in den offiziellen Paketquellen enthalten und lässt sich mittels

pacman -S steam

installieren. Juchu :-)

Mär 17, 2014

ElementaryOS auf dem Thinkpad X220

Da ich mir letzten Monat ein neues Notebook gekauft habe stand ich wieder einmal vor der Qual der Wahl, welches OS es denn diesmal sein sollte. Eher ein schlankes Debian, vielleicht mal ein Arch oder doch eins mit mehr optischem Schnick-Schnack? Darüber hinaus sollte es einfach zu warten und simpel zu bedienen sein. So gerne ich auch mit verschiedenen Konfigurationen herumspiele, manchmal möchte man doch einfach nur ein Gerät, das einfach funktioniert. Man wird halt alt :-)

Nach einigem Stöbern auf Distrowatch fiel meine Wahl auf elementaryOS.
Elementary OS ist eine relativ junge Distribution, die aktuelle Version "elementary OS Luna" basiert auf der Ubuntu 12.04 LTS Version. Dass heisst, das für diese Version fünf Jahre Updates bereit gestellt werden. Grundsätzlich verfolgt eOS das Ziel eine einfach zu handhabende Distribution zu sein und gestaltet sich in gewohnter Ubuntu-Manier sehr einsteigerfreundlich. Das Design erinnert m.E. sehr stark an MacOS und sieht auch sehr hübsch aus. Interessant ist, dass es eine ganze Reihe an weniger bekannten Programmen mit der Installation mit ausliefert und dazu auch einen eigenen Dateimanager "Files".

Installation:
Die Installation gestaltet sich, wie vom traditionellen Ubuntu gewohnt, sehr unkompliziert. Man besorge sich das aktuelle Image von der Website und packe dies mittels dd if=/pfad\_zum\_iso of=/pfad\_zum\_device bs=1M auf einen handelsüblichen USB-Stick und boote davon. Zum Einsatz kommt hier der hervorragende Ubuntu-Installer, der auch Laien sicher durch die Installation führt. Wahlweise kann man manuell die Festplatte seinen Wünschen nach partitionieren oder dies aber dem Installer überlassen; wer will kann hier auch gleich die /home-Parition verschlüsseln. Nach Abschluss der Installation und einem Reboot hat man ein schönes und sofort einsetzbares System.

Bei meinem Thinkpad quittierte das System allerdings nach der Installation in unregelmäßigen Abständen mit einem totalen Systemfreeze immer wieder den Dienst; da half nur ein Aus- und wieder Einschalten. Sehr ärgerlich. Auch konnte ich in den logs nirgends einen Grund finden. Abhilfe schaffte hier einen aktuelleren Kernel zu installieren. Danach lief alles rund. Besonders komfortabel finde ich im Ubuntuumfeld ja immer die nachträgliche Installation der Grafiktreiber. Ich weiß nicht mehr wie oft (aber es war auf jeden Fall sehr oft) ich das System wieder geschrottet habe, weil ich die Grafiktreiber falsch installiert habe.

Erweiterungen:
Standardmäßig bietet eOS schon einige Möglichkeiten zur Konfiguration und Individualisierung. Wem dies noch zu wenig ist - ich gehöre da bspw. dazu - der füge auf jeden Fall die Community PPA hinzu "sudo add-apt-repository ppa:versable/elementary-update". Darin enthalten ist u.a. das Paket "elementary Tweaks", das eine Vielzahl an individuellen Konfigurationen ermöglicht. Besonders interessant fand ich in diesem Zusammenhang die Möglichkeit das Terminal gleich im Solarized-Theme erstrahlen zu lassen.

Fazit:
Elementary OS macht auf mich einen sehr soliden Eindruck. Persönlich finde ich das MacOS-ähnliche Design sehr ansprechend und es ist in der Bedienung sehr intuitiv bedienbar. Generell läuft nach dem Kernel-Update alles rund und smooth. Genauso wie ich es mag :-)

Feb 04, 2014

apt-get update: ungültige Signatur

Manchmal schraubt man nichts ahnend (und hin und wieder auch nichts wissend :-)) an seinem Debian herum und will irgendwann die Paketlisten mittels "apt-get update" aktualisieren und dann das:

W: GPG-Fehler: http://security.debian.org wheezy/updates Release: 
Die folgenden Signaturen waren ungültig: BADSIG 8B48AD6246925553 
Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>

Spitze, denke ich mir. Nach ein wenig googeln hatte ich zwar immer noch keine Ahnung, wo das Problem lag bzw. was schief gelaufen war, aber ein Entfernen des Inhalts in "/var/lib/apt/lists/" mittels:

 rm -rf /var/lib/apt/lists/

brachte Abhilfe. Danach nocheinmal ein "apt-get update" durchführen und schon läuft wieder alles.

Dez 09, 2013

Was 2014 bringen wird

Es ist zwar noch ein paar Wochen hin aber ich will es mir trotzdem nicht nehmen lassen schon jetzt ein kurzes Resumée für das Jahr 2013 und einen Ausblick für 2014 zu schreiben. Grundsätzlich halte ich es für eine gute Idee am Ende eines Jahres kurz inne zu halten und zu schauen, womit man das Ganze Jahr über wieder massenweise Zeit vertrödelt hat.

Was hat sich 2013 bei mir getan:

1. ich habe begonnen über meine Erfahrungen mit Linux zu bloggen

Angefangen ist schon halb fertig gestellt. Getreu diesem Motto habe ich - inspiriert von Apo und K.Mandla - im April dieses Jahres angefangen über meine Experimente mit Linux und alter Hardware zu bloggen. Es macht mir persönlich sehr viel Spaß über meine Hardware oder die ein oder andere Software zu schreiben, wobei ich gestehen muss, dass es mir immer noch etwas schwer fällt die richtige Form und Stil zu finden. Aber das ist vermutlich nur eine Frage der Übung. Aufwändig ist es zudem auch wenn man selbst noch nicht so tief in der Materie steckt, aber mit den Begrifflichkeiten präzise umgehen will. Sollte ich daher irgendwo etwas Falsches erzählen oder etwas durcheinanderbringen, schreibt's mir einfach in die Kommentare :-)

2. habe jede Menge Computerschrott gekauft

Ausrüstung ist alles :-) . Eben drum habe ich mich auch hardwaretechnisch ein wenig eingedeckt, mit dem Ergebnis, dass ich nun über mehrere Laptops unterschiedlicher Generationen sowie ein hübsches Sortiment an Ersatzteilen (hauptsächlich HDDs) verfüge. Ich denke aber, dass ich nun für die nächste Zeit erst einmal saturiert bin und da erstmal nicht mehr allzuviel dazu kommt. Wobei...:-)

3. habe einiges über die Grundlagen von Linux gelernt

Es ist mir bei der Recherche für den Artikel zu den Zugriffsrechten auf Ordner und Dateien besonders aufgefallen, dass ich mir nie die Zeit genommen habe das Elementare zu begreifen. Stand ich vor einem Problem, war google immer mein Freund und so hackte ich die Lösung immer gleich ins Terminal und fertig. Kann man machen, ist aber verständlicherweise nicht ganz so nachhaltig :-). Dabei hätte ich mit ein wenig Wissen und Verstehen mir durchaus selbst helfen können. Ich finde gerade wenn man überwiegend auf grafischen Oberfläschen unterwegs ist mit schönen Konfigurationstools wo man nur noch hier und da ein Häkchen setzen muss, merkt man gar nicht mehr "was unter der Haube abgeht". Wozu auch? Quittiert aber der X-Server nach dem Nvidia-Treiber-Update den Dienst steht man da und dann ist "Holland in Not" :-)

4. habe auch gemerkt, dass ich noch am Anfang stehe

Ich weiß, dass ich - gemessen an dem, was es über Linux zu wissen gibt - noch gar nicht allzu viel weiß und bisher nur ein wenig an der Oberfläche gekratzt habe. Zugegeben es ist wohl mehr als unrealistisch irgendwann einmal den vollkommenen Durchblick zu haben aber perspektivisch möchte ich mir dennoch ein solides Grundwissen über Linux aneignen.

Wie geht es 2014 weiter?

1. Fenstermanager testen

Einen Artikel über einen Fenstermanager habe ich bereits geschrieben und bin von dem Thema regelrecht begeistert, sodass ich im kommenden Jahr auf jeden Fall noch weitere Fenstermanager testen möchte. Zu nennen wären da bspw. dwm, ratpoison, icewm, openbox, fluxbox, awesome, etc

2. Raspberry Pi als Heimserver

Ja ich gehöre auch zu den über 2 Millionen Raspberry-Pi Besitzern. Es ist einfach ein niedlicher kleiner Computer mit einem Minimum an Stromverbrauch. Das ist für mich besonders wichtig, da der teils hohe Stromverbrauch mich bisher immer daran gehindert hat den Rechner tageelang laufen zu lassen. Trotzdem hätte ich natürlich gern einen kleinen Server zuhause, den ich nicht immer wieder booten muss, der mir aber stromtechnisch nicht gleich die Haare vom Kopf frisst.

3. exotische Distributionen testen

Jeder kennt [A-Z|Aa-Zz]buntu, openSuse oder Debian. Aber was ist mit Archlinux, PuppyLinux, elementaryOS, TurboLinux, Tiny Core Linux und wie sie alle heißen? Ich möchte gern im nächsten Jahr die eine oder andere vielleicht nicht so bekannte Linux Distribution testen. Ein besonderes Augenmerk soll aber nach wie vor auf Leichtgewichtigkeit liegen.

4. Konsolenanwendungen

Neben den Programmen für eine x-Server-Umgebung möchte ich auch komplementäre Anwendungen für die Kommandozeile kennen lernen. Es erstaunt mich immer wieder, dass man für viele meiner alltäglichen Computertätigkeiten eigentlich keine grafische Umgebung erfordern.

5. einen eigenen Kernel kompilieren

Ein Thema, mit dem ich mich noch nie beschäftigt habe und von dem ich absolut keine Ahnung habe :-?. Besonders auf Rechnern mit wenig RAM denke ich bringt es eine Menge Performance, den Kernel um nicht benötigte Module und Treiber zu bereinigen und so wertvollen Speicher freizumachen.

6. Software aus den Quelltext kompilieren

Auch so ein Thema, mit dem ich mich noch nie beschäftigt habe. Bisher war ich immer sehr verwöhnt von der Debian-Paketverwaltung. Die wenigen Male, wo ein Softwarepaket dort nicht verfügbar war habe ich mir immer irgendwie anders geholfen. So war bspw. meine Rückfallversicherung immer ein parallel installiertes Windows. Das soll nun anders werden.

7. Artikel für freiesMagazin schreiben

Ich lese das freiemagazin nun schon seit über vier Jahren regelmäßig und bin jedesmal wieder begeistert. Besonders mag ich dort die sehr schön aufgearbeiteten Vorstellungen verschiedenster Software. Leider finden sich dort wohl immer weniger Autoren und das Editorial der Dezember Ausgabe stimmt mich mehr denn je düster, sodass ich gerne mal den ein oder anderen Artikel dort schreiben möchte.

Dez 01, 2013

Linux Zugriffsrechte verstehen und ändern

Ein Thema mit dem ich mich lange überhaupt nicht auseinander gesetzt habe sind die Zugriffsrechte im Linux-Betriebssystem. Hat man das System dahinter aber erst einmal durchdrungen und verstanden, ist es auch gar nicht mehr schwer (zugegeben, das ist wohl bei den meisten Dingen so :-)). Dummerweise bin ich aber eine übelst vergessliche Person (muss wohl mit dem Alter zusammen hängen), von daher muss ich das einfach mal aufschreiben :-)

1. Grundlegendes zu den Zugriffsrechten

Übersicht über die Zugriffsrechte:

$ ls -l
insgesamt 8
-rw-r--r-- 1 massel massel    0 Nov 27 18:58 testfile1.txt
-rw-r--r-- 1 massel massel    0 Nov 27 18:58 testfile2.txt
drwxr-xr-x 2 massel massel 4096 Nov 27 19:00 verzeichnis1
drwxr-xr-x 2 massel massel 4096 Nov 27 19:00 verzeichnis2

Die erste Stelle gibt den Dateityp an, wobei "-" für Datei, "d" für Verzeichnis (Directory) und "l" für Link steht. Danach kommen drei mal drei Zeichen. Die ersten drei Zeichen definieren die Rechte des Eigentümers (u = user), die mittleren drei Zeichen die Rechte der Gruppe (g = group) zu der die Datei/Verzeichnis/Link gehört und die letzten drei Zeichen stehen für Rechte der anderen (o = others), also  "den Rest" bzw. "global" oder "world". Dazu kommen Angaben zum Eigentümer und zur Gruppe. Dabei ist der erste "massel" der Eigentümer und der zweite "massel" die Gruppe. Als nächstes folgt die Angabe der Größe in Bytes sowie ein Zeitstempel (Erstellungs- bzw. Änderungsdatum) gefolgt vom eigentlichen Datei- oder Verzeichnisnamen. Schaut man sich das genauer an, ergibt sich für jede der drei Gruppen die folgenden Rechte:

r = lesen (read)
w = schreiben (write)
x = ausführen (execute)

Handelt es sich um ein Verzeichnis, ergeben sich folgende Rechte:

r = lesen, erlaubt den Inhalt des Verzeichnisses aufzulisten
w = schreiben, erlaubt Dateien hinzuzufügen oder zu löschen
x = ausführen, erlaubt auf Dateien im Verzeichnis zuzugreifen (insbesondere auf Dateiattribute wie Dateigröße etc.)

So weit so unspektakulär...

2. Ändern der Zugriffsrechte mit "chmod"

Möchte man nun die Zugriffsrechte für einzelne Dateien oder Verzeichnisse ändern, so gibt es unter Linux das Programm "chmod" (change mode). Um den "Modus" einer Datei oder eines Verzeichnisses zu ändern muss man entweder Eigentümer oder "root" sein. Dabei sieht die Syntax wie folgt aus:

    chmod [ugoa] [+-=] [rwx] Dateiname

So erlaubt bspw. ein chmod u+x install.sh dem Eigentümer der Datei "install.sh" diese auszuführen.

Alternativ bietet chmod die Möglichkeit die Rechte über einen numerischen Modus zu ändern. Wer darüber mehr erfahren möchte kann einfach "man chmod" auf der Konsole eingeben.

3. Ändern des Eigentümers mit chown

Möchte man für eine Datei oder ein Verzeichnis den Eigentümer und die Gruppe ändern, so bietet sich hierfür das Programm "chown" (change owner) an. Das Kommando hierfür sieht folgendermaßen aus:

chown [user]:[group] Dateiname

Ich denke das ist selbsterklärend :-)

Alternativ lässt sich die Gruppe noch mit dem Programm "chgrp" (change group) ändern, welches sich syntaktisch ebenso bedienen lässt wie chown.

4. Fazit

Wie man sieht ist die Rechtevergabe und Rechteverwaltung unter Linux kein Voodoo oder "rocket-science". Mir persönlich sind beim schreiben diese Artikels einige Groschen (im Wert von mehreren Thalern :-)) gefallen und ich habe Lust bekommen, noch weitere Grundlagen linuxoider Betriebssyteme aufzuarbeiten :-).

Nov 24, 2013

I3 ein Tiling-Fenstermanager für X

Nein in diesem Artikel geht es nicht um den sportlichen BMW i3, sondern um einen Fenstermanager namens i3. Wer also auf der Suche nach Fahrberichten oder Ähnliches hier gelandet ist, den muss ich leider enttäuschen ;-). Im nachfolgenden Aktikel geht es vielmehr um einen sogenannten Fenstermanager namens i3. Fenstermanager, hä? Genau!

Bis vor kurzer Zeit hätte ich mit dem Begriff genauso wenig anfangen können. Grob gesagt ist ein Fenstermanager für das Minimieren, Maximieren, Öffnen und Schließen von Fenstern innerhalb einer grafischen Oberfläche zuständig. Irgendwann im letzten Jahr stolperte ich eher durch Zufall im ubuntuusers wiki über eine Seite auf der mehere Fenstermanager aufgelistet waren. Das machte mich ein wenig neugierig, kannte ich doch bis dato nur komplette Desktopumgebungen wie Gnome, Xfce oder Kde; aus der Windows-Welt war mir dieser Begriff ebenso unbekannt...

Dabei kommen zwei unterschiedliche Konzepte zum Einsatz: Bei "normalen" Fenstermanagern kann man die einzelnen Fenster beliebig verschieben und sie verdecken sich gegenseitig und/oder überlappen einander. Im Gegensatz dazu ordnen Tiling-fähige (wie eben bspw. i3 oder dwm) wiederum alle Fenster neben und untereinander an, sodass kein Fenster verdeckt ist. Ein großer Vorteil dieses bereits seit den 80er-Jahren bekannten Konzepts ist, dass sich Tiling-fähige Fenstermanager auch sehr gut über die Tastatur steuern lassen.

Installieren lässt sich i3 bequem aus den Debian-Paketquellen mittels apt-get install i3. Gleich mit installiert wird dabei eine hübsche Statusleiste "i3-bar"(wer nur den reinen Fenstermanager ohne die Statusleiste möchte installiert einfach nur das Paket i3-wm). Nun trägt man noch in der .xinitrc die Zeile "exec i3" ein und kann mittels startx den Fenstermanager starten. Wer möchte kann sich auch einfach einen Loginmanager wie z.B. slim oder xdm installieren. Will man bequem auf seine installierten Anwendungen mittels Menü zugreifen, sollte man sich auf jeden Fall noch das Paket "suckless-tools" installieren (wird bei der Installation von i3 automatisch mit installiert). Das darin befindliche "dmenu" integriert sich wunderbar in i3. Nach dem ersten Start wird man gefragt, wo i3 seine Konfigurationsdatei ablegen soll und welche Meta-Taste (Alt oder die Windows-Taste; ich nehme lieber die Alt-Taste) verwendet werden soll. Danach kann man direkt los legen.

Die wichtigsten Tastenkombinationen sind wohl:

  • ALT+Enter: Terminal öffnen
  • ALT+D: Dmenu öffnen
  • ALT+SHIFT+Q: aktuelles Fenster schließen
  • ALT+SHIFT+E: i3 beenden
  • ALT+j: Fokuswechsel nach links
  • ALT+k: Fokuswechsel nach oben
  • ALT+l: Fokuswechsel nach unten
  • ALT+ö: Fokuswechsel nach rechts
  • ALT+v: vertikaler Split
  • ALT+h: horizontaler Split
  • ALT+e: Wechsel zwischen horizontalem und vertikalem Split
  • ALT+s: Stacking-Modus
  • ALT+w: Tabbing-Modus
  • ALT+f: Vollbild des aktuellen Fensters
  • ALT+1,2,3,n: Arbeitsfläche 1,2,3,n wechseln

Eine vollständige Übersicht und zudem eine Anleitung zur Konfiguration von i3 kann man der offiziellen Dokumentation entnehmen. Beschrieben ist dort bspw. wie man eine andere Schriftart einstellt, oder wie man Tastenbelegungen ändert. Darüber hinaus ist dort beschrieben, wie man die Statusleiste "i3-bar" seinen Bedürfnissen anpassen kann.

Für mich persönlich ist i3 genau das, was ich gesucht habe. Ein einfacher, mächtiger Fenstermanager, der sich vollkommen über die Tastatur bedienen lässt. Das Tilingkonzept finde ich in höchstem Maße spannend und ich habe vor in der nächsten Zeit noch den ein oder anderen Kollegen aus dieser Zunft auszuprobieren. Insbesondere im Ressourcenverbrauch denke ich, geht noch was :-)

← Previous Next → Page 3 of 4