In den letzten Tagen habe ich mich mal wieder mit Arch Linux und dem Fenstermanager Openbox auseinander gesetzt. Viele werden Arch Linux, genauso wie ich, ohne Login-Manger benutzen – d.h. man loggt sich auf der ersten virtuellen Konsole (tty1) ein und startet dann mit dem Befehl startx den X-Server – sollte er nicht schon von alleine über die .bashrc starten.
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ] ; then startx fi
In den meisten Fällen wird nun über die .xinitrc der Fenstermanager, in meinem Fall Openbox, gestartet.
# start ConsoleKit, DBUS and OpenBox exec ck-launch-session dbus-launch --sh-syntax --exit-with-session openbox-session
Jetzt habe ich immer, wenn ich mal nicht am Platz war, ein Meeting hatte oder eine Raucherpause eingelegt habe, meinen Bildschirm über den XScreenSaver gesperrt. Irgendwann hatte sich der Bildschirmschoner aufgehangen und ich musste ihn über eine virtuelle Konsole (STRG+ALT+[F1-F6]) beenden. Währenddessen kam mir in den Sinn, dass einfach jemand trotz gesperrten Bildschirms auf das tty1 (erste virtuelle Konsole) wechseln und den X-Server mit STRG-C beenden kann, um dann als User die Linux-Kiste unsicher zu machen – das geht mal garnicht!
UPDATE_2012-05-23: Sollte ihr den X-Server über die /etc/inittab (Runlevel 5) starten, …
x:5:once:/bin/su USERNAME -l -c "/bin/bash -login -c startx"
… muss die virtuelle Konsole nicht über vlock abgesichert werden – weil kein Login auf dem TTY stattfindet. /UPDATE_ENDE
Also habe ich mich nach einer Lösung umgeschaut und bin auf das kleine Programm vlock gestoßen.
vlock ist ein Programm zum Sperren von einer oder mehreren Sitzungen in der Linux-Konsole… [Pro-Linux]
apt-get install vlock # oder pacman -S vlock
Ich habe dann meine .bashrc bearbeitet und eine neue Funktion startx hinzugefügt.
startx() { nohup startx "$@" > /dev/null 2>&1 & disown vlock }
Nun am Besten einen Neustart durchführen oder die .bashrc neu einlesen (source .bashrc) lassen. Nachdem der X-Server gestartet ist, wird die virtuelle Konsole automatisch gesperrt und erst nach der Eingabe des User- oder Root-Passwortes entsperrt.
In diesem Zuge habe ich STRG+ALT+BACKSPACE zum Neustarten des X-Servers und SysRQ deaktiviert. Magic SysRQ ist seit Ubuntu 10.10 und Arch Linux standardmäßig deaktiviert – prüfen kann man es mit …
cat /proc/sys/kernel/sysrq
Antwortet das Linux-System mit 0 – ist SysRQ deaktiviert. Unter Arch Linux ist es in der Datei /etc/sysctl.conf konfiguriert.
cat /etc/sysctl.conf | grep -i sysrq # Disable the magic-sysrq key (console security issues) kernel.sysrq = 0
STRG+ALT+BACKSPACE deaktiviert man in der X-Server Konfiguration (sollte ab X-Server Version 1.6 standardmäßig deaktiviert sein).
Section "ServerFlags" Option "DontZap" "true" EndSection
Quellen:
ubuntuusers.de – Magic SysRQ
0x7e.org – securing your xsession when using startx
archlinux.org – Lock screen without display manager, can still change tty
Also ich verwende LightDM als Displaymanager (Standard ab Ubuntu 11.10), und wenn man da den Bildschirm sperrt, kann man immer noch auf eine virtuelle Konsole wechseln und dort – wenn ein User eingeloggt ist – sein Unwesen treiben. vlock ist da schon ganz praktisch.
Den Tipp mit vlock vielleicht im Wiki eintragen? Würde doch gut hier rein passen:
https://wiki.archlinux.org/index.php/Security
🙂
Hi Alex, mein Englisch nicht gerade der Bringer. 🙂
Wenn du möchtest kannst du es ja eintragen – ne Quellenangabe im Wiki wäre dann nett.
Grüße
Hey!
Sachmal wie heißt die Sysinfo die du am rechten Bildschirmrand hast?
Hi Firefox64, das ist Conky.
super danke!
Überrings geiler Blog 😛
Hm.
Habe mir das von vornehrein komfortabler gestaltet:
Ich habe als Login-Manager gdm installiert und diesen einfach in der /etc/rc.conf bei „Daemons = (… … … gdm)“ als letztes eingetragen (so dass er als letztes gestartet wird).
D.h. ich lande direkt beim Start schon bei gdm, muss kein „startx“ mehr benutzen und logge mich ausschließlich dort (tty7) ein. Wenn also mein Bildschirmschoner läuft, hilft auch ein Wechsel in die anderen Konsolen nicht, da ich dort gar nicht eingeloggt bin.
Theoretisch müsste das doch auch mit jedem anderen grafischen Login-Manager funktionieren?
Grüße,
Hi Zeitkasten,
jop genau – es funktioniert auch mit jeden anderen grafischen Login-Manager. Ich wollte aber keinen Login-Manager einsetzen. 🙂
Grüße
Achso! 🙂
Das habe ich wohl missverstanden… Dann erschließt sich mir auch der Sinn für das Programm. 😉
Grüße,
Du kannst auch „exec startx“ statt „startx“ benutzen. Dann wird die komplette Shell durch startx ersetzt und nach Beenden von X (wie auch immer) kehrt die Konsole direkt zum Login-Prompt zurück.
… das stimmt oder auch
startx && logout
.Wobei ich mich bei der vlock-Variante wohler fühle.