Shell-Tipps

Know-how für die Kommandozeile

05.04.2013
Erfahrene Linux-Nutzer schwören auf flexible Kommandozeilentools, mit denen sich manche Aufgabe schneller bewältigen lässt als in grafischen Programmen. Wir stellen die wichtigsten Anwendungen vor, um auch Einsteiger zu einem Ausflug in die Shell zu ermutigen.

Tipp: Benutzerverwaltung auf der Shell

Alle von EasyLinux unterstützten Distributionen stellen grafische Programme zur Verfügung, um Benutzeraccounts zu verwalten (Abbildung 1). So fügen Sie mit wenigen Mausklicks neue Benutzer hinzu, entfernen nicht mehr benötigte oder modifizieren bestehende. Wenn Sie lieber auf der Shell arbeiten, etwa weil Sie administrative Aufgaben auf einem entfernten Server durchführen, dann nutzen Sie die Kommandos für die Benutzerverwaltung.

Die drei Befehle useradd, usermod und userdel legen neue Accounts an, verändern existierende und löschen nicht mehr benötigte. Sowohl unter OpenSuse als auch unter Ubuntu gehören die Werkzeuge zum Standardlieferumfang. Das Paket pwdutils (OpenSuse) bzw. passwd (Ubuntu) stellt sie bereit. Alle Kommandos greifen ins System ein und benötigen daher Root-Rechte. Stellen Sie darum bei den in den nächsten drei Tipps gezeigten Befehlen jeweils sudo voran und authentifizieren Sie sich mit Ihrem Passwort.

Abbildung 1: Benutzernamen, Passwörter, Zugriffsrechte – das alles und noch einiges mehr konfigurieren Sie auf den meisten Systemen mit einer grafischen Anwendung (hier Ubuntu).

Tipp: Einen neuen Account hinzufügen ("useradd")

Neue Benutzer erstellen Sie mit dem Kommando useradd. Um eine Kurzübersicht über alle Optionen zu erhalten, geben Sie unter Ubuntu den Befehl ohne weitere Parameter ein; unter OpenSuse blendet --help die Liste ein. Praktischerweise bringt useradd bestimmte Standardeinstellungen zum Anlegen der neuen Accounts mit, so dass Sie sich nicht alle Aufrufoptionen merken müssen. Um diese in Erfahrung zu bringen, geben Sie unter Ubuntu Folgendes ein:

sudo useradd -D

Auch hier weicht die OpenSuse-Syntax leicht ab; das Kommando lautet stattdessen:

sudo useradd --show-defaults

Abbildung 2 zeigt die Defaultwerte für OpenSuse (links) und Ubuntu (rechts) nebeneinander. Auf beiden Distributionen nutzt das Programm diese Variablen beim Erstellen neuer Accounts, so dass es ausreicht, sudo useradd benutzer zu tippen. Ein Home-Verzeichnis für die persönlichen Daten legt der Befehl nicht an. Um dieses gleich mit zu erstellen, tippen Sie daher auf beiden Systemen:

sudo useradd -m Benutzer

Im Aufruf ersetzen Sie benutzer durch den Namen des Accounts. Ein anschließender Blick ins neue Home-Verzeichnis zeigt, dass dieses existiert und ein paar grundlegende Konfigurationsdateien sowie einige Ordner (nur OpenSuse) enthält. Zur Anzeige auf der Shell können Sie das Kommando ls nutzen; verwenden Sie die Option -a, um versteckte Dateien (also solche, die mit einem Punkt beginnen) einzublenden:

$ sudo useradd -m petronella
$ ls -a /home/petronella
.  ..  .bash_logout  .bashrc  examples.desktop  .profile

Verantwortlich für den Inhalt sind die Vorlagen im Verzeichnis /etc/skel. Bei Ubuntu-Systemen liegen dort lediglich die vier Dateien, die das letzte Listing zeigt. OpenSuse bringt dort zusätzlich einige versteckte und sichtbare Ordner sowie etliche weitere Konfigurationsdateien unter. Alle Account-Verwaltungstools – die Shell-Werkzeuge und auch die grafischen Programme – kopieren den Inhalt von /etc/skel als Grundgerüst für neue Benutzer in deren Home-Verzeichnis.

Abbildung 2: OpenSuse und Ubuntu haben "useradd" unterschiedliche Standardeinstellungen verpasst.

Damit sich der neue Benutzer auch anmelden kann, geben Sie diesem noch ein Passwort. Dazu verwenden Sie den Befehl passwd zusammen mit dem neuen Benutzernamen. Auf Aufforderung tippen Sie das neue Kennwort und wiederholen es, um Vertipper auszuschließen:

$ sudo passwd petronella
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:
passwd: Passwort erfolgreich geändert

Beachten Sie, dass bei der Passworteingabe keine Sternchen als visuelles Feedback erscheinen, Sie also "blind" tippen.

Tipp: Interessante "useradd"-Optionen

Wie Sie im vorigen Tipp gesehen haben, ist die Arbeit mit useradd dank der Standardoptionen ein Kinderspiel. Das Programm hat allerdings noch mehr zu bieten und setzt über Aufrufoptionen viele individuelle Eigenschaften des neuen Accounts. Soll das Home-Verzeichnis beispielsweise ein anderes als /home/username sein, können Sie dieses über die Option -d definieren:

sudo useradd -m -d /home/meier mueller

legt einen neuen Benutzer an und erzeugt für ihn das Verzeichnis /home/meier als Home-Verzeichnis. Das Anlegen klappt nur, wenn das nächst höhere Verzeichnis (im Beispiel: /home) schon vorhanden ist.

Um einen Benutzer direkt beim Anlegen außer zur Standardgruppe users (ID 100) zu weiteren Gruppen hinzuzufügen, verwenden Sie auf beiden Distributionen den Schalter -G. Dahinter geben Sie durch Kommata getrennt und ohne Leerzeichen eine Liste von Gruppen an. (Welche auf Ihrem System verfügbar sind, verrät ein Blick in die Datei /etc/group.) Ein Benutzer überprüft selbst mit dem Kommando groups, welchen Gruppen er angehört:

$ sudo useradd -m petronella -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare
$ sudo su - petronella
$ whoami
petronella
$ groups
petronella adm cdrom sudo dip plugdev lpadmin sambashare

Auch ein eigenes Skeleton-Verzeichnis mit der Grundausstattung (-k ordner auf beiden Systemen) und eine Standard-Shell (-s) dürfen Sie definieren. Der Schalter -f nummer bestimmt die Anzahl der Tage, nach denen der Account verfällt, wenn das Passwort abgelaufen ist, und -e datum legt einen Zeitpunkt fest, am welchem Tag der Account abläuft und das System ihn deaktiviert.

Tipp: Einen Account modifizieren ("usermod")

Einen bestehenden Benutzeraccount können Sie mit einem einzigen Befehl verändern – ohne sämtliche Konfigurationsdateien bearbeiten zu müssen. Dabei hilft Ihnen das Programm usermod, das im Wesentlichen ähnliche Parameter wie useradd kennt. Um einen Benutzer umzubenennen, nehmen Sie -l zu Hilfe. Mit dem folgenden Befehl wird aus petronella der Account petrosilie:

sudo usermod -l petronella petrosilie

Beachten Sie, dass das Home-Verzeichnis nach wie vor /home/petronella heißt und dass die enthaltenen Dateien und Verzeichnisse auch immer noch dem User petronella gehören. Der folgende Aufruf benennt auf Ubuntu- und OpenSuse-Systemen petronella in petrosilie um und bewegt den Inhalt des Home-Verzeichnisses (-m) in das neue Home-Verzeichnis (-d /home/petrosilie). Zusätzlich ändert das Kommando die Gruppenzugehörigkeit der enthaltenen Dateien, so dass sie zur Gruppe users mit der ID 100 gehören:

$ sudo usermod petronella -l petrosilie -g 100 -m -d /home/petrosilie
$ ls -la /home/petrosilie/
...
-rw-r--r-- 1 petrosilie users  220 Apr  3  2012 .bash_logout
-rw-r--r-- 1 petrosilie users 3637 Sep 19 15:42 .bashrc
...

Wenn Sie einen Account zu weiteren Gruppen hinzufügen möchten, können Sie ebenfalls usermod zu Hilfe nehmen. Dazu setzen Sie zuerst die Option -a (englisch "append" = "anhängen") und definieren dann hinter -G die weiteren Gruppen:

sudo usermod -a -G audio,cdrom petrosilie

Vergessen Sie den Schalter -a, trägt usermod den Account aus allen Gruppen aus und nur in die ein, die hinter -G stehen.

Tipp: Einen Account entfernen ("userdel")

Das dritte Programm im Bunde heißt userdel und entfernt Accounts vom System. Geben Sie hinter dem Befehl einfach nur den Benutzernamen an, bleibt das Home-Verzeichnis auf der Platte. Um es gleich mit zu entfernen, geben Sie zusätzlich den Parameter -r an:

sudo userdel -r petronella

Eine Sicherheitsabfrage findet nicht statt. Erstellen Sie also vorher ein Backup, falls Sie eventuell noch einmal auf die Daten zugreifen möchten.

Tipp: Standardeinstellungen für "useradd" ändern

Abbildung 2 zeigt die Standardwerte für neue Benutzeraccounts, wie sie OpenSuse- und Ubuntu-Systeme setzen. Als Standardgruppe wählen beide Systeme users mit der ID 100, das Home-Verzeichnis befindet sich unterhalb von /home und der Account läuft nie ab (EXPIRE=). Als Standard-Shell vergibt OpenSuse /bin/bash, Ubuntu /bin/sh (ein symbolischer Link auf /bin/dash). Beide Distributionen definieren /etc/skel als Verzeichnis mit den grundlegenden Konfigurationsdateien (siehe Tipp ##) und erstellen kein Spoolverzeichnis für E-Mails. OpenSuse definiert zusätzlich die Zugehörigkeit zur Gruppe video und setzt auf diesem Wege eine umask.

Jede einzelne Einstellung können Sie mit einem Parameter beeinflussen und für einen Aufruf neu setzen, wie es der Tipp ## zeigt. Alternativ definieren Sie unter Ubuntu über -D und unter OpenSuse über --save-defaults neue Defaultoptionen. Hinter die jeweilige Option schreiben Sie einfach weitere Parameter. Die meisten davon bewirken bei den beiden Distributionen dasselbe. Hinter -g definieren Sie auf beiden Systemen eine neue Standardgruppe über deren ID, hinter -s eine Standard-Shell.

OpenSuse kennt darüber hinaus einige weitere Optionen, um neue Accounts zu beschreiben. Die Distribution akzeptiert hinter -G den Namen einer Standardgruppe, hinter -k ein Skeleton-Verzeichnis und hinter -U eine umask.

Tipp: YouTube-Videos herunterladen mit "youtube-dl"

Im Netz tummeln sich zahlreiche Werkzeuge und diverse Browser-Plug-ins, die Videos von beliebten Portalen wie YouTube, MyVideo, Clipfish, Dailymotion und so weiter herunterladen. Wer gerne auf der Shell arbeitet, der sollte sich das kleine Python-Programm youtube-dl anschauen [2]. Auf der Downloadseite finden Windows-Anwender eine ausführbare .exe-Datei; Linuxer laden die Anwendung entweder über den Browser oder mit wget herunter [3]:

wget http://youtube-dl.org/downloads/2013.02.25/youtube-dl

Das Tool benötigt Python in Version 2.6, 2.7, 3.3 oder neuer, was alle von EasyLinux unterstützten Distributionen in den Paketquellen bereitstellen. Wenn Sie das Programm systemweit verfügbar machen möchten, dann können Sie es nach /usr/local/bin verschieben; alternativ ist ein Ordner namens bin im eigenen Home-Verzeichnis ein guter Platz. Vor dem ersten Start machen Sie die heruntergeladene Datei ausführbar:

chmod +x youtube-dl

Liegt das Downloadtool im eigenen Home-Verzeichnis, und befindet dieses sich nicht im Pfad, starten Sie es mit vorangestelltem Punkt und Schrägstrich (siehe dazu auch die Shell-Tipps aus der Ausgabe 01/2012 [4]). Überprüfen Sie als Erstes, ob eventuell eine neuere Version bereitsteht – damit testen Sie gleichzeitig, ob das Programm richtig arbeitet:

$ ./youtube-dl -U
youtube-dl is up-to-date (2013.02.25)

Um einen Film herunterzuladen, reicht es, hinter dem Befehl die URL anzugeben, die Sie beispielsweise einfach aus dem Browserfenster kopieren können. Welche Plattformen das Tool in der aktuellen Version unterstützt, verrät der Schalter --list-extractors. youtube-dl gibt einige Statusmeldungen auf der Shell aus und legt die Datei im aktuellen Verzeichnis ab (Abbildung 3).

Abbildung 3: Mit dem Python-Programm "youtube-dl" laden Sie bequem Videos von YouTube und anderen Plattformen herunter.

Glossar

umask

Das Kommando umask gibt neu angelegten Dateien direkt bestimmte Zugriffsrechte. Die Eingabe des Befehls ohne weitere Optionen zeigt die Voreinstellung als vierstellige Oktalzahl an. Diese zeigt nicht etwa an, welche Rechte das Kommando setzt, sondern welche es entzieht. Ein Artikel aus dem Jahr 2004 erklärt ausführlich, wie's geht [1].

Infos

[1] Artikel zu chmod, chown, chgrp und umask: Heike Jurzik, "Gleiches Recht für alle?", LinuxUser 07/2004, S. 69 ff., http://www.linux-community.de/artikel/6383

[2] youtube-dl-Webseite: http://rg3.github.com/youtube-dl/

[3] Guru-Training zu wget: Heike Jurzik, "Spieglein, Spieglein, an der Wand", EasyLinux 04/2004, S. 78 ff., http://www.easylinux.de/2004/04/078-wget/

[4] Mehr zu $PATH: Heike Jurzik, "Shell-Tipps", EasyLinux 01/2012, S. 99 ff., http://www.easylinux.de/2012/01/099-shell-tipps/

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare