Home / LinuxUser / 2001 / 08 / The Answer Girl

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.

Teamwork

The Answer Girl

Umbauen

konzept.tex hin oder her – nachdem einmal die Struktur stand, mutierte die Datei immer mehr zum eigentlichen Kursskript. Nach einigen Arbeitsphasen jedenfalls stimmte der Name vorn und hinten nicht mehr, während das früher mal eingecheckte unixkurs.tex im skript-Verzeichnis von niemandem bearbeitet wurde. Kurzum: es ist an der Zeit, einen Schnitt zu machen, unixkurs.tex mit dem Inhalt von konzept.tex zu überschreiben und konzept.tex aus dem Repository zu nehmen:

[trish@lillegroenn kurs]$ mv konzept/konzept.tex skript/unixkurs.tex
 [trish@lillegroenn kurs]$ cvs remove konzept/konzept.tex
 cvs remove: scheduling `konzept/konzept.tex' for removal
 cvs remove: use 'cvs commit' to remove this file permanently
 [trish@lillegroenn kurs]$ cvs ci

Beim Check-In gibt's jetzt zwei Nachfragen: Der neue Inhalt von unixkurs.tex will kommentiert sein (z.B. mit konzept.tex jetzt unixfoil.tex), und bei der Dokumentation des konzept.tex-Rausschmisses gibt cvs netterweise gleich denselben Kommentar vor:

 konzept.tex jetzt unixfoil.tex
 CVS: ———————————————————————-
 CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
 CVS:
 CVS: Committing in konzept
 CVS:
 CVS: Removed Files:
 CVS:    konzept.tex
 CVS: ———————————————————————-

Fertig abgespeichert, werden wir Zeug(inn)en der Veränderungen im Depot:

cvs commit: Examining .
 cvs commit: Examining folien
 cvs commit: Examining konzept
 cvs commit: Examining skript
 Checking in folien/unixfoil.tex;
 /home/trish/cvs/linuxkurs/kursunterlagen/linuxkurs/folien/unixfoil.tex,v  <--  unixfoil.tex
 new revision: 1.3; previous revision: 1.2
 done
 Removing konzept/konzept.tex;
 /home/trish/cvs/linuxkurs/kursunterlagen/linuxkurs/konzept/konzept.tex,v  <--  konzept.tex
 new revision: delete; previous revision: 1.1.1.1
 done

Jetzt gilt es nur noch, das mittlerweile leere konzept-Verzeichnis zu löschen, und das übernimmt ein

[trish@lillegroenn kurs]$ cvs update -P

("purge" – "säubern") für uns.

Nichts ist endgültig

Das Konzept also existiert nicht mehr. Doch da kommt die unerwartete Frage: "Haben Sie vielleicht ein Konzept für mich?" Wir nicht mehr, aber cvs. Alles, was wir tun müssen, ist, uns daran erinnern, zu welchem Zeitpunkt das Konzept ein Konzept war.

Glücklicherweise führt CVS penibel Buch. Dieses kann man sich mit cvs log auch anschauen. Das geht am besten, indem wir nicht alles an uns vorbeirauschen lassen, sondern durch less schicken:

[trish@lillegroenn kurs]$ cvs log | less

Mit dem less-Suchbefehl /konzept finden wir darin auch die Bemerkung zur Umbenennung wieder:

RCS file: /home/trish/cvs/linuxkurs/kursunterlagen/linuxkurs/folien/unixfoil.tex,v[…]

 —————————-
 revision 1.3
 date: 2001/03/30 21:57:53;  author: trish;  state: Exp;  lines: +1 -1
 konzept.tex jetzt unixfoil.tex
 —————————-

Leider bekommen wir keinen Hinweis auf die vormalige Existenz der Datei konzept.tex selbst: Unsere Schuld… Hätten wir das leere konzept-Verzeichnis mit seinen Informationen im CVS-Unterverzeichnis nicht mit dem -P-Flag von update gelöscht, wären wir jetzt nicht so hilflos.

Im schlimmsten Fall muss man jetzt mit less und ls im Dateibaum des CVS-Depots wühlen, bis sich das passende Attic-File zu konzept.tex (z.B. ~/cvs/linuxkurs/kursunterlagen/linuxkurs/konzept/Attic/konzept.tex,v) findet. Auf jeden Fall stellen wir fest, dass konzept.tex am 30.03.2001 gegen 21:55 noch am Leben gewesen sein muss.

Passen wir also unseren Datenbestand an den an, der um diese Zeit aktuell war:

[trish@lillegroenn kurs]$ cvs update -D "2001-03-30 21:55:53"
 cvs update: Updating .
 cvs update: Updating folien
 U folien/unixfoil.tex
 cvs update: Updating skript
 U skript/unixkurs.tex

Leider ist konzept.tex da nicht mit dabei.

[trish@lillegroenn kurs]$ cvs update --help
 update: invalid option – -
 Usage: cvs update [-APdflRp] [-k kopt] [-r rev|-D date] [-j rev]
     [-I ign] [-W spec] [files…]
         -A      Reset any sticky tags/date/kopts.
         -P      Prune empty directories.
         -d      Build directories, like checkout does.[…]

… war gar nicht mal so falsch: Obwohl es die Option --help nicht gibt, spuckt cvs genau das aus, was wir brauchen: eine Hilfe zum cvs-Befehl update. Die Option -d erscheint vielversprechend und lässt sich so interpretieren: Zwar aktualisiert update normalerweise nur bereits ausgecheckte Dateien, doch wenn man update -d sagt, ist es etwas kooperationswilliger und erzeugt auch Verzeichnisse, die im Arbeitsdatenverzeichnis fehlen.

 [trish@lillegroenn kurs]$ cvs update -dD "2001-03-30 21:55:53"
 cvs update: Updating .
 cvs update: Updating folien
 cvs update: Updating konzept
 U konzept/konzept.tex
 cvs update: Updating skript

Jetzt haben wir konzept.tex wieder und können das Konzept ausdrucken. Damit Sie nicht erst das im Kasten "Mehr Dokumentation zu cvs" erwähnte CVS-Buch konsultieren müssen, verrate ich Ihnen jetzt noch, dass das ominöse -A-Flag zum update-Kommando die einzige Möglichkeit ist, um wieder an eine aktuelle Arbeitskopie ohne konzept.tex zu kommen:

[trish@lillegroenn kurs]$ cvs update -A
 cvs update: Updating .
 cvs update: Updating folien
 U folien/unixfoil.tex
 cvs update: Updating konzept
 cvs update: warning: konzept/konzept.tex is not (any longer) pertinent
 cvs update: Updating skript
 U skript/unixkurs.tex

Ob Sie mit -P jetzt noch das konzept-Verzeichnis löschen wollen, sei allerdings Ihnen überlassen.

Keinen Shellzugang?

Ein Account auf einem Rechner heißt noch lange nicht, dass er für sämtliche Kollegen und Freundinnen auch zum Stöbern im System, zum Nutzen von Internetdiensten oder zum Ablegen von Daten zu gebrauchen sein soll. Vielmehr gibt es viele gute Gründe, den Zugang auf den CVS-Zugriff zu beschränken, ohne auf die Sicherheit zu verzichten, die SecureShell bietet.

Alles, was die Administratorin des CVS-Servers dazu braucht, sind öffentliche SSH-Schlüssel der CVS-Nutzer/innen von deren Arbeitsrechnern. Ähnlich wie bei PGP erzeugen diese auf ihren Alltagsaccounts ein Schlüsselpaar, von denen der public key nach Belieben verteilt werden kann, der private key jedoch geheimgehalten werden muss. Dies geschieht mit dem den SSH-Paketen beigelegten Kommando ssh-keygen und wurde im Answer-Girl in Heft 04/2001 ausführlich besprochen.

ssh-keygen legt den geheimen privaten Schlüssel in der Voreinstellung unter ~/.ssh/identity ab. Dieser darf nicht weitergegeben werden! Das, was die CVS-Sysadmine gerne hätte, ist eine Textdatei namens ~/.ssh/identity.pub und sieht etwa so aus:

 1024 35 165043668525388007503675301831634125912119991502526700029105958161542269846546772572229108798152992529758074045707003573273020044380873112356724249904219939995856241718046388628225862962791292865950083481899332539835181290112611354730215142417376960062146599043065554089684980963002106747241282736545822186999 bille@billabox.bille.de

Diese eine lange Zeile überträgt die Sysadmine in die Datei .ssh/authorized_keys im Homeverzeichnis des Users. billes öffentlicher Schlüssel kommt also in ~bille/.ssh/authorized_keys auf dem CVS-Server zu liegen.

Die Server-Admine hat in der Zwischenzeit ein wenig in der Manpage zum SecureShell-Server sshd gestöbert und ist unter der Rubrik AUTHORIZED_KEYS FILE FORMAT darauf gestoßen, dass sie am Anfang einer Schlüsselzeile ein Kommando angeben kann, das anstelle einer Loginshell immer dann ausgeführt wird, wenn die entsprechende Benutzerin versucht, sich mit dem passenden privaten Key über ssh einzuloggen.

Wenn bille also mit ihrem cvs-Request per ssh kommt, soll einfach der cvs-Server starten und lediglich auf das Depot in ~trish/cvs/linuxkurs/kursunterlagen Zugriff gewähren. Einen passenden cvs-Server startet man mit cvs server --allow-root=/home/trish/cvs/linuxkurs/kursunterlagen, womit die Sysadmine lediglich ein command="cvs server --allow-root=/home/trish/cvs/linuxkurs/kursunterlagen" an den Schlüsselzeilenanfang von billes Public-Key stellen muss:

command="cvs server --allow-root=/home/trish/cvs/linuxkurs/kursunterlagen" 1024 35 165043668525388007503675301831634125912119991502526700029105958161542269846546772572229108798152992529758074045707003573273020044380873112356724249904219939995856241718046388628225862962791292865950083481899332539835181290112611354730215142417376960062146599043065554089684980963002106747241282736545822186999 bille@billabox.bille.de

Wichtig dabei: Der gesamte Rattenschwanz muss auch weiterhin eine einzige Zeile bleiben.

Mehr Dokumentation zu

cvs

Wer an der mit cvs mitgelieferten Dokumentation schier verzweifelt, sollte nicht aufgeben: Unter http://cvsbook.red-bean.com/ findet sich der GPLte Teil von Karl Fogels CVS-Buch zum Onlinestöbern oder Downloaden. Da dieses Answer-Girl keinesfalls erschöpfende Auskunft zu cvs geben kann, empfiehlt es sich als weitergehende Lektüre für alle, die Blut geleckt haben.

Glossar

ASCII-Texte

Texte, deren Zeichen im "American Standard Code for Information Interchange" abgespeichert sind. Leider umfasst dieser Code in der 7-Bit-Fassung nicht einmal deutsche Umlaute, sondern nur die Zeichen, die auf einer amerikanischen Tastatur zu finden sind, sowie einige Steuercodes wie CR ("Carriage Return") für den Wagenrücklauf (ursprünglich einer Schreibmaschine) oder LF ("Line Feed") für einen Zeilenumbruch. In 8-Bit-ASCII können immerhin die meisten Sonderzeichen aus Sprachen mit lateinischen Alphabeten kodiert werden. Wer allerdings kyrillische oder hebräische Zeichen schreiben will, muss andere Kodierungen wie UTF8 benutzen. Die meisten hierzulande gängigen Texteditoren benutzen ASCII.

Pfad

Der "Weg" zu einer Datei vom Wurzelverzeichnis / aus. So führt der absolute Pfad zur Programmdatei /usr/sbin/groupadd über die Verzeichnisse /usr und sbin und lautet daher /usr/sbin. Relative Pfade gehen im Gegensatz dazu immer vom aktuellen Arbeitsverzeichnis aus.

SecureShell

Sicherer Ersatz für Internetdienste wie Telnet und RSH ("Remote Shell"), mit deren Hilfe man auf entfernten Rechnern so arbeiten kann, als säße man direkt davor. Die Datenübertragung wird dabei verschlüsselt. Das SecureShell-Paket bringt meist auch einen sicheren Ersatz für RCP ("Remote Copy") namens scp mit.

tunneln

Nutzen eines Dienstes über eine Verbindung, die ein anderer Dienst aufbaut. So kann man z.B. CVS-Pakete in SSH-Paketen verpackt übertragen.

tex-Datei

Text-Datei, die aus Inhalt sowie TeX- oder LaTeX-Kommandos besteht, die die Struktur des Inhalts kennzeichnen. Mit Hilfe der Textsatz-Befehle tex oder latex wird daraus die tatsächliche Darstellung der druckfertigen Datei.

Loginshells

Der Kommandozeileninterpreter, den man nach dem Einloggen auf einer virtuellen Konsole zu Gesicht bekommt, in den meisten Linux-Fällen die "Bourne Again Shell" bash. Dass eine Bash Loginshell wird, wird mit der Option -login bestimmt, sodass man auch in X-Terminalprogrammen unter X11 Loginshells untergejubelt bekommen kann. Sollte ein echo $variablenname verraten, dass eine in ~/.bashrc gesetzte Variable in der aktuellen Shell nicht auftaucht, hat man es meist mit einer Loginshell zu tun, denn die schert sich bei der Bash nicht um die ~/.bashrc, sondern um ~/.bash_profile. Bleibt auch mit dort gesetzten Variablen der Erfolg aus (sofern es nicht daran liegt, dass sich beim Setzen Fehler eingeschlichen haben), wurde dieser vermutlich durch den Bash-Parameter -noprofile unterbunden. Hier hilft dann nur noch tieferes Graben im System oder das besprochene Sourcen der Variablen kurz vor Gebrauch.

Attic

In Verzeichnissen dieses Namens lagert CVS den Inhalt und die Geschichte aus dem Depot gelöschter Dateien.

PGP

"Pretty Good Privacy", das wohl am weitesten verbreitete Programm zum Verschlüsseln und Signieren von E-Mails u.a. Daten.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 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...