thinkretro.de

Jul 06, 2016

Erste Schritte mit dem neuen vServer

Seit geraumer Zeit schlage ich mich mit dem Gedanken herum, meine Webseite auf einen eigenen Rootserver umzuziehen. Hauptgrund ist dabei die Möglichkeit den gesamten Verkehr über https laufen zu lassen (Let's Encrypt lässt grüßen :-) ) und darüber hinaus auch automatisiert regelmäßige Backups anlegen zu können. Ersteres lässt sich mein momentaner Webspaceanbieter nämlich fürstlich bezahlen, Letzteres war bisher von mir nur sporadisch gepflegt worden da man Backups nur manuell in der Administrationsoberfläche anstoßen konnte.

Das Mehr an Flexibilität (den Spaß nicht zu vergessen :-) ) geht jedoch einher mit einem gestiegenen Wartungsaufwand sowie einem hohen Maß an Verantwortung; schließlich ist man auch direkt verantwortlich, wenn der Server gekapert wird, weil man ihn nicht richtig abgesichert hat und nun Amok läuft. Entscheiden musste ich mich letztendlich nur noch, ob ich mir einen eigenen kleinen Server zu Hause hinstelle oder ob ich etwas Passendes miete. Nach einigem hin und her habe ich mich dann für die Mietoption entschieden, jedoch statt eines echten physischen Servers "nur" einen virtualisierten gemietet. Zum einen war mir ein ausgewachsener Rootserver mit 8-Kern-CPU und Gigabytes voll RAM dann doch 'ne Nummer zu oversized für meine Bedürfnisse, zum anderen zahlt man für solche Rechenknechte auch ein hübsches Sümmchen monatlich. Da bieten gerade die kleineren vServer eine gute Mischung aus Preis und verfügbarer Leistung und sollten für kleinere Projekte vollkommen ausreichen. Gesagt getan, der Server war bestellt und schon nach 5 (!) Minuten bekam ich die Mail mit den Zugangsdaten. Und das am Freitag Abend nach 19 Uhr; Respekt :-)

Erste Schritte

Mit den Zugangsdaten kann man sich nun via SSH auf dem Server als root einloggen. Das erste, was man auf jeden Fall tun sollte ist das Passwort zu ändern:

#: passwd

da der Server bei Auslieferung noch auf Englisch gestellt war, habe ich ihn kurzerhand auf Deutsch umgestellt:

#: dpkg-reconfigure locales

dort die entsprechenden locales auswählen und dann mittels

#: locale-gen

generieren. Da ich nicht gerne ständig im root-Kontext arbeite erstelle ich mir gleich einen eigenen Benutzer

#: adduser vserver-user

SSH-Dienst absichern

Neben einer Firewall wohl der wichtigste Punkt. Momentan kann man sich via SSH mittels Passwort anmelden und auch root kann sich dort anmelden. Um auch hier ein gesteigertes Maß an Sicherheit zu bekommen, sollte man auf jeden Fall den SSH-Login auf Publickey Authentication umstellen und die Anmeldung via Passwort unterbinden; darüber hinaus sollte es dem root user nicht erlaubt sein, sich überhaupt per SSH einzuloggen. Die einzelnen Punkte habe ich hier schonmal beschrieben.

Firewall einrichten

Der nächste Punkt auf der Liste ist die Einrichtung einer Firewall, wenn man nicht will, das die Serverdienste munter und unkontrolliert mit der Außenwelt kommunizieren können. Ich setze dabei auf die 'uncomplicated firewall' bzw. 'ufw', die ein leicht zu bedienendes Frontend für iptables bietet. Als erstes erstellen wir eine Standardregel und verbieten grundsätzlich alles, danach erlauben wir speziell den ssh-Dienst und dann schalten wir noch das logging ein:

#: ufw default deny
#: ufw allow ssh
#: ufw logging on

fail2ban

Ich hatte den Server keine halbe Stunde und schon klopften die ersten Idioten an die Tür, wie mir ein Blick in die Datei

/var/log/auth.log

verrät. Standardmäßig haben sie beliebig viele Versuche um reinzukommen. Um das einzuschränken, bietet sich fail2ban an. Dieses nützliche, in Python geschriebene Programm, scant periodisch verschiedene Logdateien nach verdächtigen Inhalten (z.B. mehrfach gescheiterte Login-Versuche pro IP) und sperrt bspw. eine IP-Adresse nach zuvielen gescheiterten Loginversuchen. Den Status eines 'jails' kann man jederzeit via

#: fail2ban-client status ssh

abrufen.

Fazit

Ich denke, wenn man diese Punkte erst einmal abgearbeitet hat, hat man seinen Server schon ein bedeutendes Maß sicherer gemacht und kann nachts etwas ruhiger schlafen. Absolute Sicherheit gibt es leider nicht, daher sollte man seinen Server regelmäßig kritisch beobachten und vor allem regelmäßg Sicherheitsaktualisierungen einspielen.

Mär 24, 2015

Slitaz-base auf dem Thinkpad 600E

Was gibt es schöneres an einem sonnigen Tag als auf einem etwas betagten Laptop Linux zu installieren? Obwohl das Thinkpad 600E mit seinem Pentium II Prozessor und 192 MB Ram durchaus genug Power besitzt um eine grafische Oberfläche zu zeichnen, habe ich mich diesmal für eine Konsole-only Variante entschieden. Als Basis hierfür habe ich diesmal Slitaz genommen, dass in dem Ruf steht auch auf einem 486er mit nur 16 MB Ram noch lauffähig zu sein (ein Test steht da noch aus :-) )

Iso-Image besorgen und davon booten

Zunächst habe ich mir auf der Slitaz-Homepage ein aktuelles Iso-Image der Stable-Version heruntergeladen. Dabei kann man zwischen verschiedenen Versionen (‘Flavors’) wählen. Hier gibts eine direkte Übersicht. Ich habe mich für die ‘base’ Variante entschieden, mit lediglich 8 MB. Für die Installation habe ich mich an die unter folgendem Link einsehbaren Anleitung gehalten.

Partitionen erstellen

Als erstes muss die Festplatte partitioniert werden. Im Prinzip reichen mir zwei Partitionen aus; eine ‘Root-Partition’ und eine ‘Swap-Partition’. Natürlich kann man das aber machen wie man will. Gerade wenn man noch andere Betriebssysteme auf dem Rechner installiert, lohnt es sich vielleicht noch über eine separate ‘Home-Partition’ nachzudenken. Nach dem Partitionieren müssen noch die erstellten Partitionen mit dem gewünschten Dateisystem formatiert werden:

~# mkswap /dev/hda2 && swapon /dev/hda2

~# mkfs.ext4 /dev/hda1

Danach sollte ~# blkid etwa folgendes ausgeben:

/dev/hda1: UUID="42ea812e-58c6-437f-a624-05e162ae116b" TYPE="ext4"
/dev/hda2: UUID="8962e5a4-1630-44e6-85fe-71b3254c9ac3" TYPE="swap"

Partition einbinden

Als nächstes muss die Root-Partition in das Dateisystem eingebunden werden:

~# mkdir /mnt/slitaz && mount /dev/hda1 /mnt/slitaz

Da bei mir das Einbinden der base-CDRom aus einem mir unerfindlichen Grund nicht klappen wollte, habe ich mir das Iso-Image manuell heruntergeladen und als loop-device eingebunden:

~# wget http://mirror.switch.ch/ftp/mirror/slitaz/iso/stable/flavors/slitaz-4.0-base.iso

~# mount -o loop slitaz-4.0-base.iso /media/cdrom

Bootkernel kopieren und Root-Dateisystem extrahieren

Boot-Verzeichnis erstellen:

~# mkdir /mnt/slitaz/boot

Bootkernel kopieren:

~# cp -a /media/cdrom/vmlinuz-* /mnt/slitaz/boot

gepacktes Root-FS kopieren:

~# cp /media/cdrom/rootfs.gz /mnt/slitaz

In das Dateisystem wechseln:

~# cd /mnt/slitaz

Root-FS entpacken und dekomprimieren:

~# lzma d rootfs.gz -so | cpio -id

~# rm rootfs.gz init

Bootloader installieren:

~# grub-install --root-directory=/mnt/slitaz /dev/hda

GRUB-Konfigurationsdatei menu.lst in /slitaz/boot/grub/ mit folgendem Inhalt erstellen:

title  slitaz
       root(hd0,0)
       kernel /boot/vmlinuz-2.6.37-slitaz root=/dev/hda1 vga=791

Die Option vga=791 aktiviert beim Thinkpad 600E praktischerweise den Framebuffer und stellt die Auflösung auf 1024x768x16.
Nach einem Reboot hat man (hoffentlich :-) ) ein schlankes, frisches Slitaz auf der Festplatte. Was jetzt noch fehlt ist nur noch die Audio Unterstützung.

Audio

Die Treiber für die im Thinkpad verbaute Cirrus Logic CS 4610/11 Soundkarte befinden sich im Paket hardware-thinkpad-600e-1.0, welches mittels folgendem Kommando installiert werden kann:

~# tazpkg get-install hardware-thinkpad-600e-1.0

Fehlt nur noch alsa:

~# tazpkg get-install alsa-lib alsa-utils

Soundhardware konfigurieren:

~# soundconf

Jetzt sollte die Soundkarte fertig eingerichtet sein. Ruft man jetzt den alsamixer auf, sollte die Soundkarte dort angezeigt werden. Falls beim Abspielen eines Audiostückes kein Ton kommt, sollte man prüfen ob der Benutzer auch in der Gruppe audio ist und der Ausgabekanal im alsamixer nicht auf mute steht :-)

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 :-)

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 :-)

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 :-).

Mai 25, 2013

Hallo Welt!

Endlich habe ich mal meinen ~~Ar...~~ Allerwertesten hoch bekommen und angefangen ein Projekt zu realisieren, das schon seit längerer Zeit in meinem Unterbewusstsein brodelt. Und zwar habe ich mir überlegt, inspiriert von Apo und K.Mandla, ein Blog über meine Linux-Erfahrungen zu betreiben. Ebenso wie diese beiden Herren lege ich den Schwerpunkt auf leichtgewichtige Anwendungen mit denen man auch ältere (manche würden schon antik sagen) Rechnergenerationen für die tägliche Arbeit einsetzen kann. Dabei wird es durchaus auch Überschneidungen und Doppelungen mit einzelnen Artikeln o. g. Herren geben, was auch durchaus von mir gewollt ist (quasi im Sinne eines dezentralen Backups :-) ) - andererseits hoffe ich natürlich, dass ich bei meinen Versuchen und Erfahrungen auch vielleicht ein paar neue Erkenntnisse zu Tage fördere. Und überhaupt möchte ich natürlich auch mein eigenes Wissen rund um das Thema Open Source und Linux vertiefen und erweitern.

Ein weiterer wesentlicher Grund für dieses Blog ist die Tatsache, dass ich mir manche Konfigurationsdetails beim besten Willen einfach nicht merken kann (z.B. welche Optionen ich dem Linux-Kernel beim Booten übergeben muss, damit die alte ISA-Soundkarte auch tut, wozu sie gedacht war ;-) ). Da ich solch dementen Situationen immer wieder mühsam das WWW nach der jeweiligen Konfiguration durchsuchen muss, habe ich mir überlegt, das einfach selbst auf meiner Seite zusammenzutragen und das Ganze auch online (ganz im Sinne von Open-Source) bereitzustellen - und wer weiß, vielleicht verirrt sich ja mal ein ebenso mühsam Suchender und wird hier fündig.

Auf der Seite Hardware findet ihr eine Zusammenstellung meiner bisherigen Rechnersammlung. Weil Laptops wesentlich kompakter und Platz-sparender als ihre Desktop-Brüder sind beschränke ich mich auch momentan auf diese (und weil ich meinen Schatz zu Hause auch nicht mit zu viel herumstehenden "Computer-Zeugs" unnötig strapazieren will - so ein Laptop verschwindet ja recht schnell mal eben im Schrank :-) ).

Auf der Seite Software entsteht demnächst eine (weitere?) lose Zusammenstellung an interessanter und leichtgewichtiger Software. Hier muss ich allerdings aber erstmal demnächst noch eine Inventur machen :-)

So nun aber genug geredet, Beiträge wollen geschrieben werden. Ich habe da auch schon eine Idee für einen ersten Beitrag und auch ein grobes Konzept; ist aber noch ein wenig unausgegoren...man darf aber gespannt sein :-)

In diesem Sinne, bis bald! Euer Marcel