cksum(1) cksum(1)
NAME
cksum - Prüfsummen und Größen von Dateien schreiben
SYNTAX
cksum [-C] [datei ...]
BESCHREIBUNG
Das Kommando cksum führt für jede Eingabedatei eine CRC-Prüfung (cyc-
lic redundancy check) durch und schreibt die Anzahl der in den einzel-
nen Dateien enthaltenen Oktetts in die Standardausgabe. Welche CRC-
Prüfung verwendet wird, hängt vom Polynom ab, das im Ethernet-Stan-
dard, auf den verwiesen wird, zur CRC-Fehlerprüfung verwendet wird.
Die Codierung der CRC-Prüfsumme wird von dem Polynom definiert, das
die Prüfsumme erstellt:
G(x) = x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1
Mathematisch wird der CRC-Wert für eine bestimmte Datei mit folgender
Prozedur definiert:
1. Die auszuwertenden n Bits werden als Koeffizienten eines Modulo 2
Polynom (Mx) des Grades n-1 aufgefaßt. Diese n Bits stammen aus der
angegebenen Datei. Das höchstwertige Bit ist dabei das höchstwer-
tige Bit des ersten Oktetts der Datei, das letzte Bit ist das nie-
derwertigste Bit des letzten Oktetts. Dieses wird falls erforder-
lich mit Null-Bits aufgefüllt, damit eine ganze Zahl Oktetts
erreicht wird. Ihm folgen ein oder mehrere Oktetts, die die Länge
der Datei als Binärwert darstellen, wobei das niederwertigste
Oktett an erster Stelle steht. Es wird die kleinste Anzahl Oktetts
verwendet, mit der die Ganzzahl dargestellt werden kann.
2. M(x) wird mit x^32 multipliziert (d. h. um 32 Bits nach links ver-
schoben) und unter Verwendung der Modulo 2 Division durch G(x)
dividiert. Das Ergebnis ist ein Rest R(x) des Grades <= 31.
3. Bei den Koeffizienten von R(x) handelt es sich um 32-Bit-Folgen.
4. Die Bit-Folge wird vervollständigt und das Ergebnis ist die CRC-
Summe.
OPTIONEN
-C berechnet die CRC-Prüfsumme wie in früheren Versionen.
datei
Der Pfadname einer zu prüfenden Datei. Werden keine Operanden
angegeben, wird die Standardeingabe verwendet.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
cksum(1) cksum(1)
UMGEBUNGSVARIABLEN
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kom-
mandos cksum:
LANG Gibt einen Standardwert für die Variablen für die internationale
Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht
gesetzt oder Null, wird der entsprechende Standardwert der inter-
nationalen Umgebung verwendet. Enthält eine der Internationali-
sierungsvariablen eine ungültige Einstellung, verhält sich das
Kommando so, als sei keine der Variablen definiert worden.
LCALL
Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht
leer, überschreibt dieser Wert die Werte alle übrigen Variablen
für die internationale Umgebung.
LCCTYPE
Legt die internationale Umgebung für die Interpretation der
Byte-Folgen eines Datentexts als Zeichen fest (z. B. Singlebyte-
zeichen im Unterschied zu Mehrbytezeichen in Argumenten).
LCMESSAGES
Legt die internationale Umgebung fest, die für das Format und den
Inhalt der Diagnosemeldungen verwendet werden soll, die in die
Standardfehlerausgabe geschrieben werden.
NLSPATH
Legt den Pfad der Meldungsdateien für LCMESSAGES fest.
AUSGABE
Für jede erfolgreich verarbeitete Datei erzeugt das Kommando cksum
eine Ausgabe in folgendem Format:
"%u %d %s\n", prüfsumme, #desoktetts, pfadname
Wurde keine Datei angegeben, werden der Pfadname und sein führendes
Leerzeichen ausgelassen.
ENDE-STATUS
Die folgenden Endewerte werden übergeben:
0 Alle Dateien wurden erfolgreich verarbeitet.
>0 Ein Fehler ist aufgetreten.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
cksum(1) cksum(1)
ANWENDUNGSHINWEISE
Das Kommando cksum wird in der Regel für den schnellen Vergleich einer
verdächtigen Datei mit einer "sicheren" Version dieser Datei verwen-
det. Dadurch kann beispielsweise geprüft werden, ob Dateien, die über
eine durch Geräusche gestörte Leitung übertragen wurden, intakt sind.
Dieser Vergleich ist jedoch keineswegs kryptografisch sicher. Die
Wahrscheinlichkeit, daß eine beschädigte Datei dieselbe Prüfsumme
übergibt wie die Originaldatei ist jedoch minimal. Eine beabsichtigte
Täuschung ist äußerst schwierig, aber keineswegs undenkbar.
Das Kommando cksum kann zwar Eingabedateien eines beliebigen Typs ver-
wenden, die Ergebnisse müssen jedoch nicht dem entsprechen, was bei
einer zeichenorientierten Datei oder bei einem nicht in den XSH-
Spezifikationen beschriebenen Dateityp erwartet wird. Da dieses Doku-
ment nicht die bei der Eingabe verwendete Blockgröße angibt, müssen
bei der CRC-Prüfung von zeichenorientierten Dateien nicht alle Daten
in diesen Dateien verarbeitet werden.
Der Algorithmus ist ein in Oktetts unterteilter Bitstrom. Wird eine
Datei zwischen zwei Systemen übertragen und werden die Daten dabei
geändert (z. B. bei der Übertragung von 8-Bit-Zeichen in 9-Bit-Bytes
oder bei einer Änderung von "Little Endian"), können keine identischen
CRC-Werte erwartet werden. Implementierungen, die solche Umformungen
durchführen, können cksum so erweitern, daß auch diese Fälle berück-
sichtigt werden.
HINWEIS
Ist datei ein Einhängepunkt für ein NFS-Dateisystem, kommt es zu fol-
gender Fehlermeldung:
cksum: Read error on datei: Is a directory
SIEHE AUCH
sum(1).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98