TC-Passwortdialog
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Diese Seite gehört zu dem Beitrag Archiv/TrueCrypt. Sie beschreibt, wie das Einhängen eines TC-Laufwerkes in die Verzeichnisstruktur mittels Passwortdialog realisiert werden kann.
Vorbereitung¶
Um nicht jedes mal über die Konsole zu gehen, wenn man ein TC-Laufwerk einhängen will, kann man sich auch einen Passwortdialog (Bild rechts) anzeigen lassen (z.B. nach dem Start der Desktop-Umgebung). Dazu muss folgendes Paket installiert werden 1]:
xdialog (universe, 2])
Skripte anlegen¶
Anschließend müssen zwei Skripte angelegt werden, eines für das Einhängen eine TC-Laufwerkes und eines, und eines, um es wieder auszuhängen.
Dazu öffnet man einen Editor 4] mit Root-Rechten und legt die Datei /usr/local/bin/truecrypt-mount mit folgendem Inhalt an:
#!/bin/bash # Skript zum Einbinden eines TrueCrypt-Volumens. # by Hansgeorg Schwibbe, <hansgeorg.schwibbe@gmx.de> # Copyright(c) 2007 filesystem=$1; volume=$2; mountpoint=$3; mountoptions=$4; helpbox_call_title="Hilfe"; helpbox_call_text="Aufruf: $0 <Dateisystem> <Volumen> <Mountpunkt> [Mount-Optionen]"; inputbox_pw_title="TrueCrypt-Volumen einbinden"; inputbox_mount_text_basic="Verschlüsseltes $filesystem-Volumen $volume\n\ in das Verzeichnis $mountpoint einbinden."; inputbox_mount_text_mntoptions="Verschlüsseltes $filesystem-Volumen $volume\n\ mit den Parametern $mountoptions\n\ in das Verzeichnis $mountpoint einbinden." inputbox_tcpw_text="Bitte das TrueCrypt-Kennwort eingeben:"; successbox_mount_title="Einbinden erfolgreich"; successbox_mount_text="Das TrueCrypt-Volumen wurde erfolgreich eingebunden!"; errorbox_mount_title="Fehler beim Einbinden"; errorbox_mounted_text="Das TrueCrypt-Volumen ist bereits eingebunden!"; errorbox_mounting_text="Das TrueCrypt-Volumen konnte nicht eingebunden werden!\n\ Möglicherweise ist das TrueCrypt-Kennwort oder einer der Argumente falsch!"; if [ "$filesystem" = "" ] || [ "$volume" = "" ] || [ "$mountpoint" = "" ] then echo $helpbox_call_text; Xdialog --buttons-style text --title "$helpbox_call_title" --msgbox "$helpbox_call_text" 0 0; exit 1; fi if [ "$mountoptions" == "" ] then inputbox_mount_text="$inputbox_mount_text_basic"; else inputbox_mount_text="$inputbox_mount_text_mntoptions"; mntoptions="--mount-options $mountoptions"; fi mounted=`truecrypt -l | grep $volume`; if [ "$mounted" = "" ] then tc_pw=`Xdialog --stdout --left \ --title "$inputbox_pw_title" \ --password --inputbox "$inputbox_mount_text\n$inputbox_tcpw_text" 0 0`; retval=$?; if [ $retval = 0 ] then truecrypt --filesystem $filesystem $mntoptions -p $tc_pw $volume $mountpoint; retval=$?; if [ $retval = 0 ] then Xdialog --title "$successbox_mount_title" --msgbox "$successbox_mount_text" 0 0; else Xdialog --left --buttons-style text --title "$errorbox_mount_title" --msgbox "$errorbox_mounting_text" 0 0; fi fi else Xdialog --buttons-style text --title "$errorbox_mount_title" --msgbox "$errorbox_mounted_text" 0 0; fi
Danach muss man die Datei noch ausführbar machen [5].
Jetzt muss noch die zweite Datei /usr/local/bin/truecrypt-dismount mit folgenden Inhalt angelegt werden:
#!/bin/bash # Skript zum Auswerfen eines TrueCrypt-Volumens. # by Hansgeorg Schwibbe, <hansgeorg.schwibbe@gmx.de> # Copyright(c) 2007 mountpoint=$1; helpbox_call_title="Hilfe"; helpbox_call_text="Aufruf: $0 <Mountpunkt>"; successbox_dismount_title="Auswerfen erfolgreich"; successbox_dismount_text="Das TrueCrypt-Volumen wurde erfolgreich ausgeworfen!"; errorbox_unmounted_title="Fehler beim Auswerfen"; errorbox_unmounted_text="An dem Mountpunkt ist kein TrueCrypt-Volumen eingebunden!"; errorbox_dismount_title="Schwerer Laufzeitfehler"; errorbox_dismount_text="Das TrueCrypt-Volumen konnte nicht ausgeworfen werden!"; if [ "$mountpoint" = "" ] then echo $helpbox_call_text; Xdialog --buttons-style text --title "$helpbox_call_title" --msgbox "$helpbox_call_text" 0 0; exit 1; fi mounted=`truecrypt -l | grep $mountpoint`; if [ "$mounted" = "" ] then Xdialog --buttons-style text --title "$errorbox_unmounted_title" --msgbox "$errorbox_unmounted_text" 0 0; else truecrypt -d $mountpoint; retval=$?; if [ $retval == 0 ] then Xdialog --title "$successbox_dismount_title" --msgbox "$successbox_dismount_text" 0 0; else Xdialog --buttons-style text --title "$errorbox_dismount_title" --msgbox "$errorbox_dismount_text" 0 0; fi fi
Auch diese Datei muss noch ausführbar gemacht werden [5].
TC-Laufwerk ein-/aushängen¶
Nun kann das TC-Laufwerk mit folgendem Befehl eingebunden werden [3]:
# Allgemein: truecrypt-mount <Dateisystem> <Pfad und Dateiname des TC-Laufwerkes> <Pfad des Mountpunktes> # Beispiel: truecrypt-mount ext3 /home/.encrypted.tc /home/encrypted/
Das eingehängte TC-Laufwerk wird mit nachfolgendem Befehl wieder ausgehängt:
# Allgemein: truecrypt-dismount <Pfad und Dateiname des TrueCrypt-Volumens> # Beispiel: truecrypt-dismount /home/.encrypted.tc
Bei manchen TrueCrypt-Installationen können TrueCrypt-Volumen nur als Root eingebunden werden. Sollte dies der Fall sein, können die Volumen mittels kdesu, gksu oder sudo eingebunden bzw. ausgeworfen werden:
# Über KDE: kdesu truecrypt-mount <Dateisystem> <Volumen> <Mountpunkt> [Mount-Optionen] kdesu truecrypt-dismount <Mountpunkt> # Über GNOME: gksu truecrypt-mount <Dateisystem> <Volumen> <Mountpunkt> [Mount-Optionen] gksu truecrypt-dismount <Mountpunkt> # Über die Konsole: sudo truecrypt-mount <Dateisystem> <Volumen> <Mountpunkt> [Mount-Optionen] sudo truecrypt-dismount <Mountpunkt>
Alternativer Passwortdialog¶
zenity
wie gewohnt installieren [1].
Skripte¶
#!/bin/bash # tcmount script DEVICE_NAME="$1" tc="truecrypt" fat_options="uid=$(id -u),gid=$(id -g)" case "$DEVICE_NAME" in data) "$tc" --mount-options "$fat_options","rw,sync,utf8,uid=$UID" /dev/data /media/data ;; backup) "$tc" --filesystem ext3 --mount-options "rw,sync" /dev/backup /media/backup ;; esac
#!/bin/bash # tcmount-gui script volume=$1 while [ -z "$volume" ] do volume=`zenity --list --title "Select volume" --checklist --column "Mount" --column "Volume" TRUE data FALSE backup` if [ -z "$volume" ] then zenity --question --text="Do you want to quit program?" if [ 0 -eq "$?" ] then exit 0 fi fi done case "$volume" in data) path=/media/data ;; backup) path=/media/backup ;; *) path="" ;; esac if [ -z "$path" ] then zenity --info --text="Volume $volume does not exist." exit 1; fi if mount | grep "$path " >/dev/null then zenity --info --text "Volume $volume is already mounted at $path." exit 2; fi zenity --entry --hide-text --width=350 --title "Insert password for $volume" --text password | tcmount "$volume" rc="$?" if [ 1 -eq "$rc" ] then zenity --error --text "Failed to mount volume $volume." exit 3 elif [ 0 -eq "$rc" ] then zenity --info --text "Volume $volume successfully mounted." fi exit 0