Operating System: Ubuntu 16.04
Im Zusammenhang mit dem Artikel -> Ubuntu 16.04 als Kiosksystem war eine Anforderung, dass „Ausbruchversuche“ aus der Openbox mit der Tastatur verhindert werden müssen. Ein probates Mittel hierzu ist auf allen Debian-Systemen die xmodmap, die Keycodes von der Tastatur nicht mehr interpretiert. Dazu wird für einen Testuser zunächst die Keymap kopiert und danach angepasst.
:~$ sudo xmodmap -pke > .Xmodmap
Das funtioniert nicht mit PuTTY bzw. über SSH (dort meldet xmodmap dann xmodmap: unable to open display ‚ ‚ ), sondern nur im Terminal auf der grafischen Oberfläche.
Den Aufbau der Textdatei xmodmap ist -> hier ausführlich beschrieben, daher hier nur eine Kurzbeschreibung der Angaben für die Keycodes:
- Angabe: Taste bei einfachem Drücken
- Angabe: SHIFT + Taste
- Angabe: ALT + Taste
- Angabe: ALT + SHIFT + Taste
- Angabe: ALT GR + Taste (unter Unity)
- Angabe: ALT GR -> SHIFT -> Taste
Im Editor öffnet man die Datei .Xmodmap im home-Verzeichnis des Testusers und um z.B. zu verhindern, dass eine Konsole aufgerufen werden kann oder mit CTRL-H die versteckten Dateien angezeigt werden können, könnte man den Keycode 37 von Control-L auf NoSymbol setzten.
Um festzustellen, welche Tasten welche Keycodes liefern, öffnet man in der GUI ein Terminal und verwendet dann das Programm xev. Die Ausgabe sieht nach der Manipulation der Control-Taste nun so aus:
root 0x281, subw 0x0, time 84587985, (307,294), root:(310,546)
state 0x0, keycode 37 (keysym 0x0, NoSymbol), same_screen YES,
XLookuoString gives 0 bytes:
XmbLookuoString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 47, synthetic NO, window 0xe00001,
root 0x281, subw 0x0, time 84588830, (307,294), root:(310,546)
state 0x0, keycode 37 (keysym 0x0, NoSymbol), same_screen YES,
XLookuoString gives 0 bytes:
XFilterEvent returns: False
Sowohl das Drücken als auch das Loslassen lösen einen Event aus und in der jeweils dritten Zeile sieht man den in der xmodmap verwendeten Code in Form eines keysyms. Eine Auflistung aller möglichen keysyms findet man -> hier.
Führt man das Programm xmodmap mit der veränderten .Xmodmap aus, dann sind die Einstellungen wirksam. Nach einem Neustart gilt allerdings wieder die globale Einstellung.
Für den Versuch -> Openbox als Prüfungsumgebung muss die veränderte Tastenbelegung also über einen Eintrag in /home/<user>/.config/openbox/autostart bei jedem Login aktiviert werden.
nitrogen --restore &
xmodmap ~/.Xmodmap &
....
Virtuelle Konsolen sperren
Wie oben angemerkt, benötigt xmodmap ein Display, so dass man ein verändertes Keyboard-Layout nicht bereits beim Hochfahren des Systems aktivieren kann. Damit fallen also die Möglichkeiten das über einen Service oder über CronTab mit @reboot zu regeln weg. Da meine Testumgebung mit Xserver läuft, lassen sich die virtuellen Konsolen, die man mit CTRL – ALT – F[1-6] erreichen kann, aber trotzdem blockieren. Ich habe dazu unter /etc/X11 die Datei xorg.conf erstellt und dort DontVTSwitch gesetzt.
Option "DontVTSwitch" "yes"
EndSection
Nach einem Reboot oder Neustart des XServers ist diese Einstellung aktiv und die TTY sind blockiert.
4 Comments