Home / LinuxUser / 2002 / 12 / Das /proc-Dateisystem

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Mandriva gibt Distribution in die Hände der Community
(268 Punkte bei 24 Stimmen)
Neues vom Systemd
(161 Punkte bei 4 Stimmen)
Mandriva in Nöten
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Monitoring ohne Umwege

Das /proc-Dateisystem

Es darf geschrieben werden

Das letzte Ziel unserer Reise durch das /proc-Verzeichnis führt uns in das Unterverzeichnis /sys, in dem Angaben zu den Kernel-Parametern verwaltet werden, von denen Sie einige sogar verändern können. Manche Dateien beinhalten lediglich Informationen, wie /proc/sys/kernel/version. Interessanter für administrative Aufgaben sind die zur Laufzeit veränderbaren Parameter. Sollten Sie eins der folgenden Beispiele nicht nachvollziehen können, da Sie die entsprechende Datei nicht auf Ihrem System finden, ist das kein Grund zur Besorgnis. Der Füllstand des Unterverzeichnisses /sys hängt von der Konfiguration des verwendeten Kernels ab. Einen Überblick über alle dort gespeicherten Parameter verschaffen Sie sich mit

sysctl -a | less

Im ersten Beispiel finden Sie die Lösung zu dem am Anfang des Artikels angesprochenen Port-Forwarding-Problem. Wenn Sie Ihren Rechner als Router konfigurieren möchten und überzeugt sind, alle Einstellungen richtig gemacht zu haben, es aber trotzdem nicht funktioniert, kann das daran liegen, dass Ihr Kernel zwar grundsätzlich Port Forwarding beherrscht, aber gar nicht weiß, dass er das für Sie leisten soll. Kontrollieren können Sie das mittels

[andi@gemini andi]$ cat /proc/sys/net/ipv4/ip_forward
0
[andi@gemini andi]$

Im Unterverzeichnis /net von /proc/sys sind, wie der Name schon vermuten lässt, Netzwerk-spezifische Variablen gespeichert, die glücklicherweise aussagekräftige Namen tragen. Liest man eine dieser Variablen aus, erhält man entweder 0 oder 1 als Rückgabewert, wobei 0 für falsch ("false") und 1 für wahr ("true") steht. Der Rückgabewert 0 bestätigt die Vermutung, dass der Kernel noch gar nichts von seiner neuen Aufgabe weiß. Indem Sie die 0 durch eine 1 ersetzen, ändern Sie das. Dazu führen Sie als Benutzer root folgenden Befehl aus:

echo 1 > /proc/sys/net/ipv4/ip_forward

Die Zahl 1 wird mittels > nach /proc/sys/net/ipv4/ip_forward umgeleitet. Ein erneutes Auslesen der Variable zeigt die Änderung:

[andi@gemini andi]$ cat /proc/sys/net/ipv4/ip_forward
1

Manche Distributoren, wie z. B. Mandrake, setzen diese Variable aus Sicherheitsgründen standardmäßig auf Null. Kommt dazu ein fehlerhaftes Programm zur Netzwerkkonfiguration (etwa durch einen Tippfehler des Programmierers), kommen Sie dem Problem nur durch Kenntnis des Speicherortes dieser Variablen auf die Spur.

Nicht nur bei Netzwerkproblemen ist das /proc/sys-Verzeichnis hilfreich. Wenn Sie einen aktuellen, aber noch fehlerhaften Treiber für Ihre Hardware benötigen, der gelegentlich zu einem Einfrieren des Systems führt, ist es sinnvoll die magic-SysRq-Key-Funktion des Kernels zu aktivieren, bis eine fehlerfreie Version des Treibers zur Verfügung steht.

Das ist zwar keine schöne Lösung, kann Ihr Dateisystem aber vor Schäden bewahren. Aktiviert werden die magischen Tasten als Superuser root mittels

echo 1 > /proc/sys/kernel/sysrq

Auf immer und ewig

Es ist zwar praktisch, Kernel-Parameter zur Laufzeit verändern zu können, aber da es sich bei /proc um ein virtuelles Dateisystem handelt, werden Ihre Änderungen nicht dauerhaft gespeichert und gehen bei einem Neustart des Systems verloren. Zur Lösung des Problems gibt es zwei Möglichkeiten. Schreiben Sie die benötigten Befehle in eine Startdatei Ihrer Distribution. Der Speicherort variiert allerdings von Anbieter zu Anbieter. Für SuSE heißt die Datei beispielsweise boot.local und liegt unter /etc/init.d/. Distributionsunabhängig ändern Sie die Default-Werte in der Datei /etc/sysctl.conf, zu der auch eine Manpage existiert. Als Beispiel für den Aufbau der Datei können Sie Listing 2 verwenden.

Listing 2

/etc/sysctl.conf
# Forwarding deaktivieren
net.ipv4.ip_forward = 0
# SysRq-Key aktivieren
kernel.sysrq=1
#Schutz vor IP-Spoofing einschalten
net.ipv4.conf.all.rp_filter=1

Bei den mit # beginnenden Zeilen handelt es sich um Kommentare. Eventuell finden Sie in der Datei sysctl.conf schon einige Einstellungen Ihres Distributors. Da es sich dabei um Kernel-Parameter handelt, ist die Dokumentation der Kernel Sourcen die erste Anlaufstelle, um sich über die Bedeutung der dort getroffenen Einstellungen zu informieren.

Glossar

Port Forwarding

Um alle Rechner eines lokalen Netzes mit dem Internet zu verbinden, muss die IP-Forwarding-Funktion des Kernels aktiviert werden. Der entsprechend konfigurierte Computer stellt einen Port bereit und nimmt die angeforderten Daten an, überlässt die Verarbeitung aber einem anderen Rechner.

PIDs

Die Process Identification ID ist eine eindeutige Nummer, welche innerhalb des laufenden Systems ausschließlich diesen einen Prozess eindeutig referenziert.

Pipe

Eine Datenübertragungs-Einrichtung zwischen mehreren Prozessen; ein Prozess liefert die Daten, welche dann von dem in der Pipe folgenden Prozess weiterverarbeitet werden.

chroot

Mit dem Befehl chroot ("change root") werden Programme in einem anderen Wurzelverzeichnis als / ausgeführt. Häufig wird chroot benutzt, um Dienste in eine isolierte Umgebung einzusperren.

tr

Der Befehl tr liest Zeichenketten von der Standard-Eingabe und tauscht einzelne Zeichen aus oder löscht sie. Binärzeichen werden dabei durch ihren oktalen Wert angegeben. Der Aufruf erfolgt in der Form: tr OPTION Wert1 Wert2, wobei Wert1 durch Wert2 ersetzt wird.

Alias

Eingebaute Funktion der Shell, mit der Sie Abkürzungen definieren können. Eingabe von alias aterm='aterm -tr -trsb' ruft bei Eingabe von aterm das Kommando inklusive der angegebenen Optionen auf. Dauerhaft definiert man einen alias-Befehl in den Startdateien der verwendeten Shell, z. B. in der .bashrc mit dem Eintrag alias aterm='aterm -tr -trsb'. Damit die Änderungen wirksam werden, muss die Datei neu eingelesen werden, z. B. mit source .bashrc.

magic-SysRq-Key

Funktion des Kernels, die ermöglicht, auch ein eingefrorenes System relativ sicher herunterzufahren. Die Bezeichnung leitet sich von den notwendigen Tastaturkombinationen ab. Ist die Option aktiviert, kann man z. B. das Kommando sync ([Alt-SysRq-s]) aufrufen, Partitionen im nur-Lese-Modus remounten ([Alt-SysRq-u]) oder den Rechner neu starten ([Alt-SysRq-b]). Ausführliche Dokumentation dazu finden Sie in der Datei sysrq.txt, die Bestandteil der Dokumentation des Kernel-Quellcodes ist.

Infos

[1] Andreas Grytz: "Informationen sammeln", LinuxUser 02/2001, S. 40, http://www.linux-user.de/ausgabe/2001/02/040-sysinfo/system_info.html

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 69 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 06/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Adobe AIR
Adobe-AIR-Programme installieren und (manuell) starten
Tim Schürmann, 14.05.2012 13:09, 0 Kommentare

Es gibt sie noch: neue Anwendungen, die Adobes Integrated Runtime voraussetzen. Aktuellstes und vermutlich auch größtes Beispiel ist das Adventure Botanicula

Aktuelle Fragen

gibt es ein Kommandozeilen Tool, um ein X11-Fenster in ein Anderes einzubetten?
GoaSkin , 21.05.2012 16:44, 0 Antworten
Das XEmbed-Protokoll ist u.A. dazu gedacht, dass man eine X11-Anwendung in eine andere wie ein Wi...
Apache2, Options -Indexes geht nicht
no no, 12.05.2012 19:01, 8 Antworten
Habe in apache2.conf folgendes stehen: Options -Indexes ...
LInux auf Dell LS H500
Andreas Endresl, 09.05.2012 08:54, 2 Antworten
Habe einen alten Dell Latitude LS H500 nur mit ext. Floppy und CD es geht nur immer eines von den...
Datenwiederherstellung unter Ubuntu 12.04 mit "Simple Backup" nach Umzug von Linux Mint
Christian Lottmann, 07.05.2012 13:33, 0 Antworten
Vor dem Umzug auf Ubuntu 12.04 habe ich unter Linux MInt mit "Simple Backup" voll (15.4.2012) und...
DKMS für den propritären NVIDIA-Treiber
Commander Data, 26.04.2012 22:02, 2 Antworten
Hallo an die Gemeinde. Ich habe hier ein interessantes Stück openSuSE gefunden. http://forums.op...