Wie kann man CTRL-C während des Init-Prozesses deaktivieren?


1

Ich habe ein Kiosk-System mit Linux Debian Wheezy eingerichtet. Nach dem Booten wird ein Benutzer automatisch angemeldet und ausgeführt startx durch /etc/inittab.

Das Problem besteht darin, dass Personen die Maschine aufgrund physischer Zugriffe herunterfahren oder das Netzkabel ziehen können und durch Drücken von STRG-C während des Betriebs eine Benutzeroberfläche erhalten init.

Ist es möglich, Tastenkombinationen wie STRG-C während des Initialisierungsvorgangs zu deaktivieren, bis die Benutzersitzung beginnt und wenn ja, wie?


Ich kenne keine Möglichkeit, Strg-C zu deaktivieren, da dies ein Tastatur-Interrupt ist. Möglicherweise können Sie den Kernel hacken, um Tastaturinterrupts zu deaktivieren. Dies würde das Problem jedoch kaum beheben. Ein Benutzer mit direktem Zugriff könnte im Bootloader anhalten und am Ende der Boot-Parameter init = / bin / sh hinzufügen, um den Kernel-Boot frühzeitig zu stoppen. Sie könnten dann das Dateisystem als Lese- / Schreibzugriff erneut mounten und alles ändern, was sie auf der Festplatte wünschen. Ich denke, eine bessere Lösung wäre, zu prüfen, ob Sie das unbeaufsichtigte Booten aktivieren können, sodass die Benutzer nicht wissen, dass das System startet, bis startx ausgeführt wird.
sbtkd85

Nun, ich dachte, da wäre eine Einstellung da /etc/inittab oder so. Aber vielleicht habe ich einen Workaround gefunden, ich könnte den Intr-Schlüssel ändern stty intr ^Uok, man könnte noch jeden Schlüssel ausprobieren, aber vielleicht sind auch Kombinationen möglich. Ich werde es versuchen.
JohnnyFromBF

1
Wenn das funktioniert, versuchen Sie es stty intr undef.
Scott

Es würde funktionieren, aber offensichtlich ist die Einstellung nach einem Neustart weg. Ich habe versucht zu setzen stty intr undef im .bashrc aber auf dem Kiosk-System funktioniert es nicht. Gibt es noch andere Orte, an die ich mich setzen könnte? stty intr undef zu? Vielleicht in /etc/inittab?
JohnnyFromBF

Antworten:


0

Das habe ich durch Putten herausgefunden stty intr undef im ~/.bashrc es funktioniert perfekt auf meinem Desktop Kubuntu-Rechner. Für das Kiosksystem funktionierte es jedoch nicht. Wahrscheinlich wegen der angepassten Art der automatischen Anmeldung und des Sitzungsstarts.


0

Es ist möglicherweise einfacher, in GDM / XDM "Runlevel 5" zu starten und ein Gastkonto zu erstellen.

Abgesehen davon können Sie das Boot-Skript (Kernel) ändern, um bestimmte Befehle auszuführen (stty und was nicht). Sie müssten herausfinden, auf welcher Art von Bootsystem das Kiosksystem basiert, um dies zu tun.

Es besteht auch die Möglichkeit, die Tastaturunterstützung als Modul aufzubauen und diese erst nach dem Laden zu laden X-Sitzung wird gestartet. Dies scheint diese einfachste Option zu sein.

Was von inittab ausgeführt wird, wird übrigens über das Init-Skript als root ausgeführt. Das Ausführen von startx als Superuser ist nicht etwas, das Sie in einem öffentlichen Browser ausführen möchten.


Das einzige, woraus man anfängt /etc/inittab ist ein Autologin für den Kioskbenutzer: 1:2345:respawn:/sbin/getty -n -l /usr/sbin/autologin 38400 tty1 Danach der Prozess startx wird automatisch durch einen Eintrag in gestartet /home/kiosk/.bash_profile Dies scheint also ziemlich sicher zu sein, falls niemand den Start der X-Sitzung unterbrechen kann. Der Init-Prozess kann, soweit ich weiß, nicht unterbrochen werden.
JohnnyFromBF
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.