Tipps, Tricks, Arbeitshilfen etc.

tar-Archive mit Orginalrechten einspielen

Eine Datei gehört immer demjenigen, der die Datei anlegt. Sofern daher nicht als default in den Einstellungen des tar-Programms festgelegt, werden die Dateien mit dem Entpacker als Eigentümer angelegt.*1 Um die orginalen Rechte zu erhalten sollte die Option -p oder --same-permissions angegeben werden.

tar xvzpf backup.tar

Umlaute mit Samba

Um Umlaute etc. im Dateinamen von einem Windowsclient richtig dargestellt zu bekommen, sollte folgendes in die Global-section der smb.conf aufgenommen werden.

character set= ISO8859-15
client codepage = 850

Netzwerkkarte mit mehreren IP-Adressen

Jede (physikalische) Netzwerkkarte tr�gt einen Namen. Bei Ethernet z.B. eth0 für die erste Karte, eth1 für die zweite Karte, usw.
Um weitere (symbolische) Netzwerkkarten zu erstellen werden diese mit dem Namen und einer durch Doppelpunkt getrennten Nummerierung bezeichnet: z.B. eth0:1.
Die Zuweisung der IP-Adresse kann nun entweder mittels ipconfig erfolgen:

ipconfig eth0:1 192.168.101.22 netmask 255.255.255.0 broadcast 192.168.101.255

oder aber durch eine Datei ifcfg-eth0:1 im Verzeichnis /etc/sysconfig/network:

BOOTPROTO='static'
BROADCAST='192.168.101.255'
IPADDR='192.168.101.22'
NETMASK='255.255.255.0'
NETWORK='192.168.101.0'
REMOTE_IPADDR=''
STARTMODE='onboot'
UNIQUE=''
WIRELESS='no'

Handbuchseiten ausdrucken

Manchmal will man die Manualseiten "schwarz auf weiss" besitzen, d.h. ausdrucken oder auch weiterverarbeiten. Die Manualseiten befinden sich �blicherweise unterhalb von /usr/share/man in komprimierter Form und einem speziellem Format der Darstellung.

Um nun diese Seiten lesbar zu machen, benötigt man das Programm zcat. Dieses zeigt mit gzip komprimierte Dateien an. Die Ausgabe von zcat kann nun als Eingabe von groff (einem Textformatierprogramm) verwendet werden. Dieses Programm kann die Ausgabe im reinen ASCII-Format aber auch als Postscript- oder HTML- oder DVI-Datei darstellen.

Beispiel:

zcat /usr/share/man/man1/ls.1.gz | groff -Thtml -mandoc > ls.html

..erstellt eine Datei namens ls.html mit der Manpage zum Befehls ls.

Alternativ kann auch der spezielle Befehl rman verwendet werden.

Beispiel:

zcat /usr/share/man/man1/ls.1.gz | rman -f rtf > ls.rtf

erstellt eine rtf Datei mit der Manpage zum Befehl ls.

Graphisches Einloggen auf fernem Rechner

Um sich von der Textkonsole mit dem graphischen Login (genauer: dem dortigen xdm-Dienst) zu verbinden:

X -query rechnername angabe des eigenen Displays

z.B.

X -query merlin :1.

X = Aufruf des X-Servers

-query = Verbindung mit fernen Rechner

merlin = Name des fernen Rechners

:1 = nur notwendig wenn bereits ein lokaler X-Server l�uft

X-Terminals eine chooser anbieten

Um allen Machinen einen chooser anzubieten, und die Rechner merlin, aldebaran, hermes, anbieten ist in der Datei /usr/X11R6/lib/X11/xdm/Xaccess folgender Eintrag zu machen:

*      CHOOSER merlin aldebaran hermes

Datei verschlüsselt und komprimiert auf anderen Rechner übertragen

Um Dateien etc. verschlüsselt und komprimiert auf ferne Rechner zu übertragen, eignet sich ssh sehr gut:

tar -cz | ssh user@remote_rechner tar -xz

Samba funktioniert nicht richtig

Achtung! Wenn man die bei SuSE mitgelieferte Beispieldatei smb.conf an eigene Zwecke anpasst übersieht man leicht, dass die Option security = [server|user|share] nicht gesetzt ist.

Drucker: cupsd: Child exited with status 98!

Cups "hört" auf dem Port 631. Sollte die o.g. Meldung beim Starten des Druckdienstes erscheinen, "hört" ein anderer Prozess auf diesem Port. Meist ist das der rpc.rquotad. Abhilfe: Diesen Dienst abschalten oder die Reihenfolge der Dienste beim Starten ändern (siehe Thema Runlevel).

Suche nach Harddisk beim Booten abschalten

Dem Boot-Prozess mitteile, daß keine Festplatte (dev/hdxY) vorhanden ist kann man folgende Angabe bei den Bootoptionen (in der Konfigurationsdatei des Bootloaders oder als Option beim Booten)
hdx=noprobe
oder mit
hdx=none.

root soll sich nur über bestimmte Terminals einloggen dürfen

In der Datei /etc/securetty können die Terminals, an welchem root sich anmelden darf angegeben werden.

Länge der Benutzernamen ändern

Die Länge der Benutzernamen wird in /etc/login.defs festgelegt.

Samba: Umlaute im Dateinamen

Die Angabe von

character set = ISO8859-1
client code page = 850

hilft unter Samba 2.x. Ab Samba 3 sollte man die Unicode-Unterstützung anwenden.

Wofür dient das Verzeichnis public_html ?

Beim Anlegen des Benutzers wird u.a. gem. der Vorlage /etc/skel ein Verzeichnis public_html im Homeverzeichnis der Benutzer erstellt. Dieses Verzeichnis kann von einem Webserver als persönliches Verzeichnis (http://webserver.tld/~~benutzername) freigegeben werden. Aber auch KDE bietet die Möglichkeit dieses Verzeichnis mittels http-Protokoll freizugeben. Hierzu ist über Kontrolleiste - Hinzufügen - Miniprogramm - Öffentlicher Dateiserver das Verzeichnis freizugeben. Es kann dann unter http://Rechnername:8001 aufgerufen werden.

Verschlüsselung

Dateisysteme verschlüsseln

Partitionen

Swap-Partition

Wer Bedenken hat dass im Speicher abgelegte vertrauliche Daten auf der Swap-Partiton landen und diese (z.B. bei einem Laptop) ausgelesen werden, kann auch diese Partition verschlüsseln. Da die Swap-Partition bei jedem Neustart neu beschrieben wird muss das Passwort nicht festgelegt werden sondern kann immer wieder neu als Zufallswert erzeugt werden.

Das nachfolgende Beispielsskript stammt von Stefan Karmann. (Aus der c't 2005, Heft 11, Seite 13)

#! /bin/sh
set -e || exit 111
modprobe dm_crypt
crptsetup -c blowfish -s 64 -d /dev/random create swap0 /dev/hdaX
mkswap /dev/mapper/swap0
swapon /dev/mapper/swap0

netcat - Partition oder Datei auf anderen Rechner übertragen

Zum Übertragen von Dateien oder auch ganzen Partitionen über Netz eignet sich die "Netzversion" von cat. Auf dem sendenden Rechner wird mit z.B. mit dd eine Partiton ausgelesen und diese Ausgabe mit

netcat rechner port

versandt. Auf dem empfangendem Rechner wird diese Ausgabe mit

netcat -l -p port > dateiname

in eine Datei geschrieben.

Beispiel

rechner2:/test # netcat -l -p 2005 > image.dat
rechner1:/test # dd if=/dev/hdb2 | netcat rechner2 2005

Verschiedene KDE-Versionen mit dem gleichen Userprofile nutzen

Die Oberfläche kde legt ihre Daten in einem versteckten Verzeichnis im Homeverzeichnis ab. Arbeitet man nun mit verschiedenen Versionen von KDE (zum Test oder aber auch wenn

$HOME mit nfs gemountet ist und die KDE-Version je nach Arbeitsstation variert) kann es sein daß sich diese in die Quere kommen. In diesem Fall kann man mit der Umgebungsvariable $KDEHOME für jede Version ein eigenes Verzeichnis verwenden. Die Zuweisung könnte z.b. in /etc/profile oder $HOME/.profile erfolgen. Möglich ist so auch eine lokale Ablage dieser Dateien auf dem jeweiligem Rechner.

Zugriffsrechte aller Unterordner ändern

Um Rechte in einem Verzeichnisbaum nur für die Ordner zu ändern bei "find" auf den Typ "Ordner" abfragen:

find ORDNERNAME -type d -print0 | xargs -r -0 chmod u+x

setzt alle Ordner auf "ausführbar"

Festplatte ist plötzlich auf ro (nur lesbar) gesetzt

Ab einer gewissen Anzahl von Fehlern wird bei der Mountoption errors=remount-ro (=default in /etc/fstab!) der Kernel die Partition in den Nur-Lesen-Modus vesetzen.

Komprimierung bei gzip anzeigen

Bei gzip (welches auch beim tar-Aufruf mittels -z verwendet wird, gibt es eine Option (-v) welche die Komprimierung in Prozent angibt:

mrtguser@b1amsdn2:/tmp> gzip -v j.test
j.test: 90.1% -- replaced with j.test.gz

Leider kann die beim Aufruf über tar nicht direkt angewandt werden. Allerdings kann man durch das Setzen einer Umgebungsvariable "GZIP" Optionen für alle gzip-Aufrufe (auch die von tar ausgelösten) vorgegeben. Diese gelten dann immer, ausser beim konkretem Aufruf wird was anderes angegeben.

Beispiel:

user@testsrv2:/tmp> export GZIP="-v"
user@testsrv2:/tmp> tar -cvzf neu.test datei.test
j.test
90.2%
user@testsrv2:/tmp> ll *.test
-rw-r--r-- 1 user users 1028883 2007-09-10 13:42 datei.test
-rw-r--r-- 1 user users 101354 2007-09-10 14:02 neu.test

Die erzeugte Datei ist also um 90% kleiner.


*1 Bei manchen tar-Versionen köen Default-Optionen in der Umgebungsvariable "TAR_OPTIONS" vorgegeben werden.