Tasten sperren oder Belegung verändern

Ubuntu Logo

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.

:~$ cd /home/testuser
:~$ 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:

  1. Angabe: Taste bei einfachem Drücken
  2. Angabe: SHIFT + Taste
  3. Angabe: ALT + Taste
  4. Angabe: ALT + SHIFT + Taste
  5. Angabe: ALT GR + Taste (unter Unity)
  6. 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.

keycode 37 = NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol 

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:

KeyRelease event, serial 47, synthetic NO, window 0xe00001,
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.

:~$ xmodmap ~/.Xmodmap

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.

#xfce-mcs-manager &
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.

Section "Serverflags"
Option "DontVTSwitch" "yes"
EndSection

Nach einem Reboot oder Neustart des XServers ist diese Einstellung aktiv und die TTY sind blockiert.

Buy Me a Coffee at ko-fi.com

You May Also Like

4 Comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Aus persönlichen Gründen...

... kann ich den Blog im Moment leider nicht wie gewohnt betreuen und Anfragen zeitnah beantworten. Lediglich die technische Funktionalität versuche ich aufrecht zu erhalten. Sollte es trotzdem was Neues hier geben, dann schreibe ich eine Info in die Telegram-Gruppe.


In der Telegram-Gruppe können Sie sich weiterhin mit anderen Lesern von Împuşcătura austauschen.

Zur Telegram-Gruppe