shutdown/reboot added to web interface

This commit is contained in:
lars 2005-07-23 23:57:11 +00:00
parent b399722dca
commit 98dc7f564e
5 changed files with 59 additions and 10 deletions

View File

@ -60,7 +60,7 @@ function configure_secure()
sed -i '/getty/d' /etc/inittab sed -i '/getty/d' /etc/inittab
# remove unnecessary packages # 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 # remove development files
rm -f "$DEV_FEATURES_SCRIPT" rm -f "$DEV_FEATURES_SCRIPT"

View File

@ -8,6 +8,7 @@ Lang {
Umount = Deaktivierung der Cryptodaten Umount = Deaktivierung der Cryptodaten
Config = Konfiguration der CryptoBox Config = Konfiguration der CryptoBox
Log = Protokoll der CryptoBox Log = Protokoll der CryptoBox
ShutDown = System
} }
@ -33,6 +34,8 @@ Lang {
Update = Aktualisieren Update = Aktualisieren
Mount = CryptoDaten aktivieren Mount = CryptoDaten aktivieren
Umount = CryptoDaten deaktivieren Umount = CryptoDaten deaktivieren
PowerOff = ausschalten
ReBoot = neu starten
} }
@ -109,6 +112,16 @@ Lang {
Title = Crypto-Daten deaktiviert Title = Crypto-Daten deaktiviert
Text = Das verschlüsselte Dateisystem ist nun vor jedem Zugriff geschützt. 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.
}
} }

View File

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

View File

@ -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>

View File

@ -1,14 +1,6 @@
#!/usr/bin/perl #!/usr/bin/perl
# #
# Vorbereitung: # web interface of the CryptoBox
# - 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
# #
@ -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 ######################### ################### main #########################
my $query = new CGI; my $query = new CGI;
@ -363,6 +369,19 @@ if ( ! &check_ssl()) {
$pagedata->setValue('Data.Doc.Page', 'CryptoBox.html'); $pagedata->setValue('Data.Doc.Page', 'CryptoBox.html');
$pagedata->setValue('Data.Action', 'doc'); $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 ######################### ################### unknown #########################
} else { } else {
$pagedata->setValue('Data.Error', 'UnknownAction'); $pagedata->setValue('Data.Error', 'UnknownAction');