Linux-Anfänger-Ecke

Aus NAS Wiki

Wechseln zu:Navigation, Suche

Damit im Forum eine sinnvolle Hilfestellung seitens des Teams bzw. der erfahrenen user überhaupt möglich ist, musst du dir ein paar grundlegende Handgriffe in Linux aneignen. Das folgende hier angeführte Basiswissen wird daher als Voraussetzung betrachtet, wenn du support erfragst, der über die Benutzeroberfläche hinausgeht und Linux ins Spiel bringt. Diese Grundfertigkeiten sind zum Glück schnell zu erfassen und lassen sich an einer Hand abzählen:


Inhaltsverzeichnis

Eine Verbindung mit der Box herstellen

Um mit einem PC zu kommunizieren verwendet man üblicherweise Bildschirm, Tastatur und Maus, die direkt am PC angeschlossen sind. An eine NAS-Box kannst du in der Regel weder Bildschirm, noch Tastatur anschließen, also ist eine direkte Kommunikation vorerst einmal nicht möglich.
Telnet bietet dir die Möglichkeit, dich mit dem System auf so einer NAS-Box zu verbinden, sobald eine Netzwerkverbindung besteht.

Telnet

Um telnet verwenden zu können müssen folgende Voraussetzungen erfüllt sein:

telnet-server auf dem NAS

Um die Box via telnet ansprechen zu können, muss ein telnet-server-Programm darauf installiert und aktiviert sein. Bei weitem nicht alle Hersteller haben überhaupt Interesse, dass die user die Box auf Konsolen-Ebene erreichen können. Solange kein telnet (oder ssh) server vorhanden ist, kannst du nichts auf der Box ausrichten.
Die Information, ob ein server auf deiner Box vorhanden ist, bzw. was du tun musst, um diesen zu installieren und/oder aktivieren, entnimmst du bitte dem jeweiligen gerätespezifischen wiki oder Forum.

telnet-client auf dem PC

Wenn es möglich ist, die Box via telnet anzusprechen, brauchst du noch ein Programm, das die Verbindung zwischen deinem PC und dem telnet-server auf der Box aufbaut und in weiterer Folge sowohl deine Befehle an die Box übermittelt, als auch die Rückmeldungen der Box an dich.
Ein weit verbreitetes Programm für Windows ist PuTTY.

IP-Adresse der Box

Um den telnet client auf deinem PC mit dem telnet server auf der Box verbinden zu können, musst du dem client mitteilen, wo sich der server im Netzwerk befindet. Dies erfolgt durch Eingabe der ip-Adresse im client Programm im Zuge der Anmeldung.

Anmelden im System

Wenn die Verbindung aufgebaut wurde, musst du dich noch mittels username und Passwort identifizieren.
Als username verwendest du root (QNAP: admin), das passwort ist höchstwahrscheinlich das selbe, das du für den Administrator auf der Benutzeroberfläche festgelegt hast.

  • Die Information, welches die standardmäßigen Zugangsdaten auf deine Box sind, entnimmst du bitte dem gerätespezifischen wiki.
  • Eine etwas genauere Erklärung zu den Benutzern folgt im dritten Kapitel.


Login-screen.jpg

Wenn das geklappt hat, bist du auf der Konsole der Box und hast somit direkten Zugang zum System.

In dem Konsolenfenster siehst du nun ev. eine kleine Begrüßung des Systems nebst der Angabe, um welche Version der so genannten shell es sich handelt.
Zuunterst erwartet dich ein Eingabeprompt, daneben ein Cursor, der dir anzeigt, wo deine Eingabe erfolgen wird.
Rechts ein Bild eines Login mit PuTTY auf der IB-4220-B.

ssh

Die Verbindung über Telnet hat einen gravierenden Nachteil: Die Kommunikation erfolgt unverschlüsselt. Solange du dich nur in deinem Heimnetzwerk befindest ist das kein Problem. Sobald du aber über öffentliche Netzwerke (z.B. Internet) mit deiner Box kommunizieren willst, kann jeder im Netz befindliche user die Kommunikation zwischen dir und der Box mitlesen. Angesichts der Tatsache, dass du mittels telnet als user root sämtliche Rechte über die Box erlangen kannst, ist das Sicherheitsrisiko hier zu groß. Darum wird für die Kommunikation über öffentliche Netze die secure shell (ssh) verwendet, die eine verschlüsselte Kommunikation zwischen deinem client PC und dem ssh-server auf der Box etabliert.
Um ssh verwenden zu können, muss folgerichtig ein ssh-server auf der Box vorhanden und aktiv sein.
PuTTY beherrscht auch ssh, daher gelten für die Verbindung mittels ssh dieselben Punkte, wie unter telnet.

copy & paste mit PuTTY

Möglicherweise wirst du im Forum gefragt werden, den Inhalt einer Datei im Forum zu posten. PuTTY ist bezüglich copy & paste etwas eigenwillig:

  • copy/kopieren: Den gewünschten Textbereich mit der Maus+linke Maustaste markieren. Fertig, der markierte Bereich befindet sich bereits im Zwischenspeicher.
  • paste/Einfügen: In der Konsole: Rechtsklick. Überall anders so wie üblich.

Anzeigen von Ordnerinhalten und Navigieren in der Verzeichnisstruktur

Grundlegendes zur Dateiorganisation

Auch in Linux sind die die Dateien in Ordnern abgelegt, die in eine baumartige Struktur bilden. Die einzelnen Verzeichnisse werden durch Querstriche getrennt angezeigt. Wenn also links vom Eingabeprompt /var/log steht, so bedeutet das, dass du dich im Verzeichnis log befindest, das seinerseits wiederum im Verzeichnis var zu finden ist. (Dies ist übrigens in Linux Systemen der Ort, wo Log-Dateien zu finden sind).

Directory-bsp.jpg

Anzeigen von Ordnerinhalten

Der Inhalt eines Ordners wird mit ls (list) angezeigt.
ls zeigt eine kurze Übersicht des Inhalts an
ls -l eine detaillierte Übersicht.

Weitere Informationen dazu gibt es hier.

Anzeige des Pfads

Ein normales Linux System zeigt links vom Eingabeprompt neben anderen Informationen den Pfad an, wodurch du immer auf einen Blick weisst, wo im Verzeichnisbaum du dich gerade befindest.
Nicht alle NAS-Boxen bringen dieses praktische feature in der Grundkonfiguration mit. Mit der Eingabe von

PS1="\w/>"

wird dir der Verzeichnispfad für die Dauer der aktuellen Sitzung angezeigt.

Navigieren in der Verzeichnisstruktur

Um innerhalb dieser Verzeichnisstruktur zu navigieren, wird der Befehl cd (change directory) verwendet.
cd var wechselt ins Verzeichnis var.
cd .. wechselt eine Verzeichnisebene höher,
cd / wechselt auf die oberste Verzeichnisebene
cd /var/log wechselt ins Verzeichnis /var/log von jedem beliebigen Ort aus.

Rechtevergabe unter Linux

Benutzerkonzept unter Linux

Die Zugriffsrechte auf Dateien und Ordner werden unter unix/Linux differenziert organisiert. Es gibt drei Benutzerklassen:
Besitzer (user), Gruppen (groups) und andere (others). Als user kann man einer Gruppe zugeordnet werden und hat somit die entsprechenden Zugriffsrechte, others sind alle beliebigen Benutzer.

Neben den normalen usern gibt es einen übergeordneten user, der auf einem Linux System über sämtliche Rechte verfügt und somit auch Dateien manipulieren oder löschen kann, die ihm nicht gehören. Dieser user heisst root. Nachdem du auf einer NAS Box Systemdateien verändern willst (die meist sowieso root gehören), ist es wichtig, dass du dich als root anmeldest.

Es muss dir jedoch bewusst sein, dass du damit aber auch sehr schnell schwere Schäden im Betriebssystem anrichten kannst. Es ist daher immer große Vorsicht geboten.

Besitzer und Gruppe einer Datei ändern

Der Befehl um den Besitzer einer Datei zu ändern heisst chown (change owner).

chown Maximilian ftpd.log
ändert den user (=Besitzer) der Datei ftpd.log auf Maximilian.

chown Maximilian:NASusers ftpd.log
ändert Den Besitzer in Maximilian und die Gruppe auf NASusers.

Wenn du nur die Gruppe verändern willst, kannst du den Befehl chgrp (change group) verwenden.

chgrp NASusers ftpd.log ändert also nur die Gruppe von ftpd.log auf NASusers.

Berechtigungskonzept unter Linux

Für jede dieser Benutzerklassen (user, group, others) gibt es drei bits, die gesetzt, oder nicht gesetzt werden.

  • r = read. Regelt, ob eine Datei gelesen werden darf.
  • w = write. Regelt, ob eine Datei beschrieben oder verändert werden darf.
  • x = execute. Regelt, ob eine Datei von der Instanz ausgeführt werden darf.

Eine typische Auflistung eines Ordnerinhalts könnte z.B. so aussehen:

root@CH3SNAS:/mnt/HD_a2/data/music# ls -l
-rwxrw-r--    3 admin    users        4096 Jan 28 14:17 Hänschen_klein.mp3
drwxrwxrwx    2 root     root         4096 Jan 28 14:45 Mozart

Betrachten wir die erste Zeile der Auflistung:

  • Ganz rechts ist der Name der Datei angeführt, also Hänschen_klein.mp3.
  • Der Besitzer (user) ist admin, die Gruppe (group) ist users.

Die Anzeige der Zugriffsrechte (links) ist in 3 x 3 bits organisiert, wobei

  • die ersten drei bits die Rechte des user anzeigen,
  • die zweiten drei die Rechte der group,
  • die dritten drei die Rechte von others.

In diesem Beispiel wird also angezeigt, dass der user über alle Rechte bei dieser Datei verfügt (rwx), d.h. er kann die Datei sowohl lesen, als auch schreibend darauf zugreifen und sie auch ausführen. Alle Mitglieder der zugriffsberechtigten Gruppe (group) dürfen lesend und schreiben auf die Datei zugreifen, sie jedoch nicht ausführen (da kein x-bit gesetzt wurde) und der Rest der Welt (others) darf die Datei nur lesen.

In der zweiten Zeile erfahren, dass es sich bei Mozart um einen weiteren Ordner (d = directory, ganz links) handelt.

Die Zugriffsrechte ändern

Der Befehl um die Zugriffsrechte zu verändern heisst chmod

Die drei Zeichen, die folgen, legen fest:
1. Wer gemeint ist (u=user, g=group, o= others)
2. wird das Recht gegeben oder entzogen (+ oder -)
3. um welches Recht es sich handelt (x,w,r siehe oben)

chmod g+x Hänschen_klein.mp3

bedeutet, dass die Gruppe der Datei Hänschen_klein.mp3 mit executes-Rechten ausgestattet wird.

weiterführendes Wissen

Detailierte Informationen zur Rechteorganisation unter Linux findest du hier, einen sehr guten englischen Artikel gibt es hier

Auslesen von Log Dateien

Die meisten Programme verfügen über die Möglichkeit ihre Aktivitäten - und vor allem, ob diese erfolgreich ablaufen oder ob es Fehlermeldungen gibt - mitzuprotokollieren. Diese Funktion kann meist aktiviert, bzw. deaktiviert werden. Das Resultat ist ein Log (Protokoll), das in einem Logfile geschrieben steht.
In einem typischen Linux-System liegen diese logfiles in einem gemeinsamen Verzeichnis /var/log
Um logfiles einzusehen ist es also am praktischsten, erst mal in dieses Verzeichnis zu navigieren und die dort befindlichen DAteien aufzulisten:

cd /var/log
ls -l


  • Bitte beachte, dass auf NAS Boxen keine typischen Linux-System laufen, sondern aufgrund der eingeschränkten Aufgaben des Systems und auch der verhältnismäßig bescheidenen Prozessorleistung meist stark reduzierte, sogenannte embedded Linux Systeme. Diese haben möglicherweise eine etwas andere Verzeichnisstruktur.
  • Ein anderer Faktor, der zu beachten ist, ist die Tatsache, dass manche Funktionen und Programme nicht vom Hersteller, sondern von Einzelpersonen oder communities entwickelt und bereitgestellt wurden. Diese extra Funktionen sind aus verschiedenen Gründen oft in eigenen Verzeichnissen untergebracht, innnerhalb derer sich dann eine eigene, kleine Linux-Verzeichnisstruktur befindet.


Beispiel für cat

Der Befehl, der den Inhalt einer Datei anzeigt heisst cat. Dieser Befehl kann eigentlich noch viel mehr, aber wir beschränken uns jetzt mal auf die Ausgabe von Datei-Inhalten.
Beispiel:

cat debug 

gibt den Inhalt der Datei debug aus.

Cat gibt die gesamte Datei auf einmal am Bildschirm aus, was bei langen logs dazu führen kann, dass man nur noch das Ende der Datei sieht. Um längere Dateien seitenweiseweise auszugeben, eignen sich die Befehle more und less.

Editieren von Dateien

Nachdem es dir nun möglich ist, im Verzeichnissystem zu navigieren und Datei-Inhalte auszulesen, geht es nur noch darum, Dateien zu editieren, sprich, zu verändern. Dabei wird es sich meist um Konfigurationsdateien handeln, die das Verhalten eines Programms festlegen.
Es gibt verschiedene Möglichkeiten eine Konfig-Datei zu editieren.

winSCP

Der mit Abstand komfortabelste Weg unter Windows ist die Verwendung von winSCP. Damit kannst du bequem auf einer grafischen Oberfläche zu der gewünschten Datei navigieren und dann mittels des eingebauten Texteditors die Datei auch gleich editieren.

  • Achtung: keinesfalls verwenden solltest du den windows editor, da dieser ein anderes Steuerzeichen für den Zeilenumbruch verwendet als Linux. Dieses Steuerzeichen ist zwar nicht zu sehen, bewirkt aber, dass die bearbeitete Datei für das Linux System unlesbar bzw. unbrauchbar wird.

Midnight commander

Eine ähnliche Möglichkeit bietet der Midnight commander, kurz mc. Der Unterschied besteht darin, dass du dich erst mal via PuTTY/telnet auf der box einloggst und dort den midnight commander mit dem Kommando mc aufrufst. Nun befindest du dich ebenfalls wieder auf einer rudimentär grafischen Oberfläche, allerdings läuft das Programm direkt auf der Box und nicht - wie bei winSCP - auf dem PC.
Voraussetzung dafür ist natürlich, dass der mc auf der Box installiert ist. Falls das nicht der Fall ist und du auch gerade winSCP nicht zur Hand hast, bleibt noch

vi

Die direktest Möglichkeit bietet der Texteditor vi. Vi ist zu Beginn gewöhnungsbedürftig, hat aber den Vorteil, dass er wirklich auf praktisch jedem Linux-System bereits vorhanden ist.
Die Verwendung von vi ist manchmal unerlässlich, es schadet also nicht, sich auch mit diesem editor anzufreunden. Zwei links zu vi:
Übersicht
Tutorial


Neben vi existieren noch einige andere Texteditoren, die ev. auch leichter zu bedienen sind, doch auch für diese gilt, dass sie nicht unbedingt bereits installiert sind.


Hilfreiche Links

Interne Links

Externe Links