Skript zum umounten verschlüsselter Laufwerke

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
q00
Beiträge: 36
Registriert: 21.09.2008 13:16:37

Skript zum umounten verschlüsselter Laufwerke

Beitrag von q00 » 02.11.2008 05:04:14

Hi Leute

Ich arbeite gerade an einem Skript, welches meine verschlüsselten Partitionen:

erst einhängen...

Code: Alles auswählen

sudo cat key.txt | sudo cryptsetup luksOpen /dev/sd<Partition> <Name>
sudo mount /dev/mapper/<Name> /mnt
..und nach 15 min. ohne lese-/schreibzugriff wieder aushängen soll:

Code: Alles auswählen

sudo umount /mnt
sudo cryptsetup luksClose <Name>
Die beiden Skripte alleine funktionieren schonmal gut, nun fehlt mir noch der Zwischenteil mit den 15 min.

Hat jemand eine Idee wie ich das machen kann? Ich kenn mich mit Skripten leider nicht aus.

Danke und Gruß
q00
Desktop: Debian Squeeze x86 / LXDE
AMD Phenom X3 @ 2,2 GHZ
AsRock N68-S UCC, nForce 630a
NVIDIA GF 8800GTS

Benutzeravatar
mragucci
Beiträge: 598
Registriert: 08.09.2004 03:21:24
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Endor
Kontaktdaten:

Re: Skript zum umounten verschlüsselter Laufwerke

Beitrag von mragucci » 02.11.2008 22:54:10

Hi,

im ersten Script folgendes hinzufügen

Code: Alles auswählen

at now + 15 minutes -f /path/to/unmountscript
LG
Ich will im Schlaf sterben - Wie mein Opa...
Und nicht weinend und schreiend wie sein Beifahrer!
-----
https://www.whisperedshouts.de

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Skript zum umounten verschlüsselter Laufwerke

Beitrag von Danielx » 03.11.2008 01:12:22

mragucci hat geschrieben:im ersten Script folgendes hinzufügen

Code: Alles auswählen

at now + 15 minutes -f /path/to/unmountscript
Und wie erkennst du damit die Lese-/Schreibzugriffe? :?

Benutzeravatar
mragucci
Beiträge: 598
Registriert: 08.09.2004 03:21:24
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Endor
Kontaktdaten:

Re: Skript zum umounten verschlüsselter Laufwerke

Beitrag von mragucci » 03.11.2008 05:39:03

mragucci hat geschrieben:Hi,

im ersten Script folgendes hinzufügen

Code: Alles auswählen

at now + 15 minutes -f /path/to/unmountscript
LG
Du kannst mit lsof abfragen, ob Dateien auf dem Stick geöffnet sind. Darauf machst Du in Deinem unmount Script eine if Bedingung, wenn keine Dateien geöffnet sind, dann unmount, ansonsten obigen Befehl wieder setzen :wink:
Ich will im Schlaf sterben - Wie mein Opa...
Und nicht weinend und schreiend wie sein Beifahrer!
-----
https://www.whisperedshouts.de

Benutzeravatar
CrashMan
Beiträge: 340
Registriert: 07.04.2007 14:04:27
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: MD

Re: Skript zum umounten verschlüsselter Laufwerke

Beitrag von CrashMan » 03.11.2008 12:36:36

Wenn du dann aber nach 14 Minuten den Dateizugrif beendest und in der 15. Minute das Skript läuft, hast du nur 1 Minute zwischen Zugriff und umount.

mfg
debian stable + arch

q00
Beiträge: 36
Registriert: 21.09.2008 13:16:37

Re: Skript zum umounten verschlüsselter Laufwerke

Beitrag von q00 » 03.11.2008 14:52:34

mragucci hat geschrieben:Hi,

im ersten Script folgendes hinzufügen

Code: Alles auswählen

at now + 15 minutes -f /path/to/unmountscript
LG
Thx, was soll ich nun genau in das umount Script schreiben?
Desktop: Debian Squeeze x86 / LXDE
AMD Phenom X3 @ 2,2 GHZ
AsRock N68-S UCC, nForce 630a
NVIDIA GF 8800GTS

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Skript zum umounten verschlüsselter Laufwerke

Beitrag von jhr-online » 03.11.2008 15:08:35

Ich glaube nicht, dass du mit at wirklich weiter kommst. Du brauchst, wenn ich dich richtig verstehe, eine Schleife... Z.B. so:

Code: Alles auswählen

#!/bin/bash

# Beispiel: script.sh /dev/sda1

WAITSECONDS=900 # 15 Minuten * 60
DEVNAME="dev$RANDOM"

[ -z "$1" ] && echo "I need a device name to mount!"
[ -f "$1" ] && echo "Given device name not found!"

sudo cat /path/to/key.txt | sudo cryptsetup luksOpen "$1" "$DEVNAME"
sudo mount /dev/mapper/"$DEVNAME" /mnt

[ "$?" -ne 0 ] && exit 1

WAIT=$WAITSECONDS
while [ $WAIT -gt 0 ]; do
    sleep $WAIT
    if [ `lsof /mnt | wc -l` -ne 0 ]; then
        WAIT=$WAITSECONDS
        continue
    fi

    WAIT=$((WAIT-60))
done

sudo umount /mnt
sudo cryptsetup luksClose "$DEVNAME"
exit 0
Das ist aber vollkommen ungetestet!

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

Antworten