Browse Source

shutdown/reboot added to web interface

master
lars 17 years ago
parent
commit
98dc7f564e
  1. 2
      cryptobox.conf.d/usr/lib/cryptobox/configure-cryptobox.sh
  2. 13
      cryptobox.conf.d/usr/share/cryptobox/lang/de.hdf
  3. 1
      cryptobox.conf.d/usr/share/cryptobox/templates/nav.cs
  4. 16
      cryptobox.conf.d/usr/share/cryptobox/templates/shutdown_form.cs
  5. 37
      cryptobox.conf.d/var/www/cgi-bin/cryptobox.pl

2
cryptobox.conf.d/usr/lib/cryptobox/configure-cryptobox.sh

@ -60,7 +60,7 @@ function configure_secure()
sed -i '/getty/d' /etc/inittab
# remove unnecessary packages
dpkg --force-all -P $SECURITY_REMOVE_PACKAGES
dpkg --force-all -P $SECURITY_REMOVE_PACKAGES 2>&1 | grep -v "which isn't installed."
# remove development files
rm -f "$DEV_FEATURES_SCRIPT"

13
cryptobox.conf.d/usr/share/cryptobox/lang/de.hdf

@ -8,6 +8,7 @@ Lang {
Umount = Deaktivierung der Cryptodaten
Config = Konfiguration der CryptoBox
Log = Protokoll der CryptoBox
ShutDown = System
}
@ -33,6 +34,8 @@ Lang {
Update = Aktualisieren
Mount = CryptoDaten aktivieren
Umount = CryptoDaten deaktivieren
PowerOff = ausschalten
ReBoot = neu starten
}
@ -109,6 +112,16 @@ Lang {
Title = Crypto-Daten deaktiviert
Text = Das verschlüsselte Dateisystem ist nun vor jedem Zugriff geschützt.
}
PowerOff {
Title = Abschaltung
Text = Die CryptoBox wird gerade heruntergefahren. Spätestens in ein paar Minuten kannst du sie ausschalten.
}
ReBoot {
Title = Neustart
Text = Die CryptoBox wird gerade neu gestartet. Spätestens in ein paar Minuten ist sie wieder verfügbar.
}
}

1
cryptobox.conf.d/usr/share/cryptobox/templates/nav.cs

@ -15,6 +15,7 @@
<a href="<?cs var:ScriptName ?>?action=init_ask" title="Ersteinrichtung">Initialisierung</a>
<a href="<?cs var:ScriptName ?>?action=show_log" title="Ereignis-Protokoll">Protokoll</a>
<a href="<?cs var:ScriptName ?>?action=doc" title="Nutzer-Handbuch">Hilfe</a>
<a href="<?cs var:ScriptName ?>?action=shutdown_ask" title="Herunterfahren">Herunterfahren</a>
<?cs if:Data.Status.DevelopmentMode ?>
<a href="/cgi-bin/validate.sh" title="Validation">Test-Sequenzen</a>

16
cryptobox.conf.d/usr/share/cryptobox/templates/shutdown_form.cs

@ -0,0 +1,16 @@
<h1><?cs var:Lang.Title.ShutDown ?></h1>
<div align="center">
<form action="<?cs var:ScriptName ?>" method="post"
enctype="application/x-www-form-urlencoded">
<input type="hidden" name="action" value="shutdown_do" />
<button type="submit" name="type"
value="poweroff"><?cs var:Lang.Button.PowerOff ?></button>
<button type="submit" name="type"
value="reboot"><?cs var:Lang.Button.ReBoot ?></button>
</form>
</div>

37
cryptobox.conf.d/var/www/cgi-bin/cryptobox.pl

@ -1,14 +1,6 @@
#!/usr/bin/perl
#
# Vorbereitung:
# - die Variable "MNTIMAGE" (siehe unten) setzen - es muss der Name der cryptoloop-image-Datei sein
# - in die /etc/fstab einen passenden Eintrag einfuegen, z.B.:
# /data/cryptoimage.loop /mnt/crypto auto noauto,user,loop,encryption=aes,keybits=256
# - ein Image erstellen (als root):
# dd if=/dev/zero of=cryptoimage.loop bs=1M count=10
# losetup -k 256 -e aes /dev/loop1 cryptoimage.loop
# mkfs.ext3 /dev/loop1
# losetup -d /dev/loop1
# web interface of the CryptoBox
#
@ -189,6 +181,20 @@ sub box_init
}
sub system_poweroff()
{
&umount_vol();
system("{sleep 5; /sbin/poweroff; } </dev/null &>/dev/null &");
}
sub system_reboot()
{
&umount_vol();
system("{sleep 5; /sbin/reboot; } </dev/null &>/dev/null &");
}
################### main #########################
my $query = new CGI;
@ -363,6 +369,19 @@ if ( ! &check_ssl()) {
$pagedata->setValue('Data.Doc.Page', 'CryptoBox.html');
$pagedata->setValue('Data.Action', 'doc');
}
##################### pweroff #######################
} elsif ($action eq 'shutdown_ask') {
$pagedata->setValue('Data.Action', 'shutdown_form');
##################### reboot ######################
} elsif ($action eq 'shutdown_do') {
if ($type eq 'reboot') {
&system_reboot();
$pagedata->setValue('Data.Success', 'ReBoot');
} else {
&system_poweroff();
$pagedata->setValue('Data.Success', 'PowerOff');
}
$pagedata->setValue('Data.Action', 'intro');
################### unknown #########################
} else {
$pagedata->setValue('Data.Error', 'UnknownAction');

Loading…
Cancel
Save