Kategorien

Rekursiv MD5 Hash für Dateien erzeugen

Ich wollte in einem Verzeichnis für alle Dateien (auch in den Unterverzeichnissen) die MD5-Prüfsumme berechnen lassen. Dabei bin ich auf einen Beitrag von Touisk gestoßen, dessen Befehle ich jedoch noch geringfügig abgeändert habe.

Zum Erzeugen der Prüfsumme:

find . -type f -exec md5sum {} >checksum.md5 \;

Zum Verifizieren:

md5sum -c ckechsum.md5

Epson AcuLaser C1100 unter Ubuntu freigeben

Meinen Drucker habe ich zunächst nach der Anleitung von schnellie installiert

sudo apt-get install alien gcc-3.3-base libstdc++5
sudo alien Epson-ALC1100-filter-1.2-0.i386.rpm
sudo alien Epson-ALC1100-filter-cups-1.2-0.i386.rpm
# Warnungen einfach ignorieren!
sudo dpkg -i epson-alc1100-filter_1.2-1_i386.deb
sudo dpkg -i epson-alc1100-filter-cups_1.2-1_i386.deb

Eine Deaktivierung des AppArmor-Profils mittels

sudo aa-complain cupsd

war bei mir nicht notwendig.
Von den Windows-Installationen im lokalen Netzwerk wollte ich auch noch auf den Drucker mittels des Internet Printing Protocols zugreifen. Dazu muss die CUPS-Konfiguration angepasst werden. Das geht über den Aufruf von CUPS und das Editieren der cupsd.conf unter Verwaltung > Konfigurationsdatei. Ich habe die Datei so angepasst, dass Rechner im lokalen Netzwerk auch auf den Drucker zugreifen können:

#
# "$Id: cupsd.conf.in 7199 2008-01-08 00:16:30Z mike $"
#
#   Sample configuration file for the Common UNIX Printing System (CUPS)
#   scheduler.  See "man cupsd.conf" for a complete description of this
#   file.
#

# Log general information in error_log - change "info" to "debug" for
# troubleshooting...
LogLevel warning

# Administrator user group...
SystemGroup lpadmin

# Only listen for connections from the local machine.
Port 631
Listen /var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing Off
BrowseOrder allow,deny
BrowseAllow all
BrowseAddress @LOCAL

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow @LOCAL
  Allow localhost
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Set the default printer/job policies...
<Policy default>
  # Job-related operations must be done by the owner or an administrator...
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

#
# End of "$Id: cupsd.conf.in 7199 2008-01-08 00:16:30Z mike $".
#

NFOView unter Ubuntu

Um NFO-Dateien unter Linux zu betrachten, benutze ich das Tool NFOView. Unter Ubuntu lässt es nach dem Herunterladen wie folgt installieren:

sudo apt-get install python gettext intltool console-terminus xfonts-terminus xfonts-terminus-dos xfonts-terminus-oblique
tar zxvf nfoview-1.2.1.tar.gz
cd nfoview-1.2.1/
sudo ./setup.py install --prefix=/usr/local/nfoview
sudo cp data/nfoview.desktop.in /usr/local/nfoview/share/applications/nfoview.desktop
cd /usr/local
sudo stow -R nfoview

Durch ein

sudo nano /usr/local/nfoview/share/applications/nfoview.desktop

die Datei nfoview.desktop wie folgt abändern:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=NFO Viewer
Comment=View NFO files
Exec=nfoview %F
Terminal=false
StartupNotify=true
Icon=dialog-information
Type=Application
MimeType=text/x-nfo;
Categories=GTK;Utility;Viewer;
GenericName[de_DE]=

Anschließend mittels

gedit ~/.local/share/mime/packages/Override.xml

die Datei Override.xml erzeugen und folgenden Inhalt ergänzen:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">

<mime-type type="text/x-nfo">
	<comment>NFO document</comment>
	<glob pattern="*.nfo"/>
	<glob pattern="*.diz"/>
</mime-type>

</mime-info>

Nun müssen wir nur noch die MIME-Datenbank mit

update-mime-database ~/.local/share/mime

erneuern und ab sofort sollten die NFO- und DIZ-Dateien mit nfoview geöffnet werden. Am Besten stellt man bei NFOView unter Edit>Preferences das Schema auf „White on black“, die Schrift auf Terminus und die Schriftgröße auf 8.
Diese Infos habe ich durch das Ubuntu-Forum und flexion.org zusammengetragen.
Falls man nur im Terminal arbeitet, kann man sich die Dateien auch wunderbar mit

iconv -f 437 -t UTF8 filename.nfo | less

anzeigen lassen.

JFS-Dateisystem mit jfsrec retten

Mit Hilfe von jfsrec kann man eine beschädigte JFS-Partition unter Umständen doch noch retten. Damit man das Programm unter Ubuntu verwenden kann muss man das Programm selbst kompilieren, da es noch kein fertiges Paket gibt. Um überhaupt erfolgreich kompilieren zu können musste ich erst einige Pakete installieren, damit alle Abhängigkeiten erfüllt waren:

sudo apt-get install gcc autoconf automake boost-build libboost-dev libboost-regex-dev libboost-filesystem-dev libboost-program-options-dev

Als nächstes habe ich den aktuellsten Quelltext heruntergeladen:

svn co https://svn.sourceforge.net/svnroot/jfsrec jfsrec

Im Verzeichnis jfsrec habe ich dann die Schritte configure und make und make install ausgeführt. Den Prefix mit /usr/local/jfsrec habe ich gewählt, weil ich das Programm mit stow verwalten will, wie schon in einem anderen Beitrag erwähnt.

cd jfsrec
./configure --prefix=/usr/local/jfsrec
make
make install
cd /usr/local
stow -R jfsrec

Nun kann man jfsrec verwenden. Ein beispielhafter Aufruf sieht so aus:

jfsrec --device /dev/mapper/crypt_root_sdb --output /recovery/root_sdb_jfsrec/ --logdir /recovery/root_sdb_log

Dabei wird versucht die verschlüsselte Partition /dev/mapper/crypt_root_sdb zu retten. Die Daten werden ins Verzeichnis /recovery/root_sdb_jfsrec/ geschrieben und die Informationen über die inodes werden im Verzeichnis /recovery/root_sdb_log abgelegt. Zu beachten ist, dass es durchaus einige Zeit dauern kann, bis jfsrec seine Arbeit erledigt hat. Bei mir wurden für etwa 240 GB acht bis zehn Stunden benötigt. Bei den Dateinamen musste ich jedoch feststellen, dass die Umlaute und Sonderzeichen falsch dargestellt wurden. Dieses Problem konnte ich jedoch mit dem Programm convmv beheben. Convmv ist ein kleines Komandozeilen-Programm um Dateinamen von einem Zeichensatz in einen anderen zu konvertieren. In meinem Fall half folgender Aufruf um die wiederhergestellten Datei- und Verzeichnisnamen in /recovery/root_sdb_jfsrec/ wieder richtig darzustellen.

convmv -f utf8 -t latin1 -r --notest /recovery/root_sdb_jfsrec/

Erweiterte Menüeinträge in Firefox mit userChrome.js

Ich finde es immer lästig, wenn ich Passwörter löschen oder anschauen will, umständlich über Extras>Einstellungen>Sicherheit>Gespeicherte Passwörter den Passwort-Manager aufzurufen. Mit der Extension userChrome.js (Version 0.8)Mirror – lassen sich tolle Dinge anstellen. So kann man einen entsprechenden Menüeintrag für den Passwort-Manager erstellen, so dass man ihn direkt über Extras>Gespeicherte Passwörter aufrufen kann. Um das zu machen editiert man nach der Installation der Extension die Datei userChrome.js im Unterverzeichnis chrome des Firefox-Profilverzeichnis und fügt folgenden Code hinzu:

[
{
"label" : "Cookies anzeigen",
"accesskey": "K",
"oncommand": "window.open('chrome://browser/content/preferences/cookies.xul', 'Browser:Cookies', 'chrome,resizable=yes');"
},
{
"label" : "Gespeicherte Passwörter",
"accesskey": "P",
"oncommand": "window.open('chrome://passwordmgr/content/passwordManager.xul', 'Toolkit:PasswordManager', 'chrome,resizable=yes');"
},
{
"label" : "Zertifikate anzeigen",
"accesskey": "E",
"oncommand": "window.open('chrome://pippki/content/certManager.xul', 'mozilla:certmanager', 'chrome,resizable=yes,all,width=600,height=400');"
}
]
.forEach(function(attrs) {
	var menuitem = document.createElement("menuitem");
	for (var key in attrs)
	menuitem.setAttribute(key, attrs[key]);
	document.getElementById("menu_ToolsPopup").insertBefore(menuitem, document.getElementById("sanitizeItem"));
});
if (location != "chrome://browser/content/browser.xul") throw "stop";

Hier gibt es noch weitere interessante Code-Schnipsel.