8.2.4.3 Ausgabe eines Befehls-Menüs
Stellen Sie sich vor, Sie möchten jemandem einen eingeschränkten Zugang zu Ihrem
Account gewähren, bei dem ein eingehender SSH-Client einige wenige Programme verwenden
darf. Erzwungene Befehle machen das möglich. Zum Beispiel könnten Sie ein
Shellskript schreiben, das die Ausführung einer festgelegten Gruppe von Programmen
ermöglicht, und dieses Skript dann als erzwungenen Befehl ausführen. Ein Beispiel-
Skript wie in Beispiel 8-1 erlaubt nur die Ausführung von drei Programmen, die aus
einem Menü gewählt werden können.
Beispiel 8-1: Menü-Skript
#!/bin/sh
/bin/echo "Willkommen!
Zur Auswahl stehen:
1 Aktuelles Datum setzen
2 Liste eingeloggter Benutzer
3 Liste aktueller Prozesse
q Beenden"
/bin/echo "Ihre Wahl: \c"
read ans
while [ "$ans" != "q" ]
do
case "$ans" in
1)
/bin/date
;;
2)
/bin/who
;;
3)
/usr/ucb/w
;;
q)
/bin/echo "Auf Wiedersehen"
exit 0
;;
*)
/bin/echo "Ungültige Wahl ’$ans’: versuchen Sie es erneut"
;;
esac
/bin/echo "Ihre Wahl: \c"
read ans
done
exit 0
Kapitel 8: Account-orientierte Serverkonfiguration
322
Sobald jemand über einen öffentlichen Schlüssel auf Ihren Account zugreift und den
erzwungenen Befehl aufruft, gibt das Skript folgendes aus:
Willkommen!
Zur Wahl stehen:
1 Aktuelles Datum setzen
2 Liste eingeloggter Benutzer
3 Liste aktueller Prozesse
q Beenden
Ihre Wahl:
Der Benutzer kann nun 1, 2, 3 oder q eingeben und die entsprechenden Programme
ausführen. Alle anderen Eingaben werden ignoriert, so daß keine anderen Programme
ausgeführt werden können.
Solche Skripten müssen sorgfältig entwickelt werden, um Sicherheitslöcher zu vermeiden.
Insbesondere sollte keines der gewünschten Programme eine Möglichkeit bieten,
die Shell aufzurufen, weil sonst jeder Befehl in Ihrem Account ausgeführt werden kann.