Bildschirm von Benutzern abschalten
Bildschirm von Benutzern abschalten
Ich bin gerade in Afrika und unterrichte dort an einer Schule die Nutzung von Internet und E-Mail.
Nun lässt die Aufmerksamkeit der Schüler doch öfters etwas zu wünschen übrig.
Wir nutzen hier ein x2go System welches Debian in sich trägt.
Ich kann mittlerweile schon sämtliche Benutzer mit dem Befehlt "skill -STOP -u username" stoppen, und mit "skill -CONT -u username" wieder starten.
Nun möchte ich jedoch auch gerne den Bildschirm der User abdunkeln wenn ich ihnen etwas erkläre.
Gibt es einen Befehlt für die Konsole mit welchem man den Bildschirm von Usern sperren oder abdunkeln kann?
Diesen Befehlt "xset dpms force off" Habe ich schon versucht, das funktioniert leider nur wenn ihn der User selbst eingibt aber nicht der root Nutzer.
Ich bin root und sämtliche Schüler sind normale User.
Vielen Dank an jeden der mir bei der Lösung dieses Problems behilflich ist.
Gruß Alexander
Re: Bildschirm von Benutzern abschalten
was spricht gegen Steckerleisten mit Schalter ?
Re: Bildschirm von Benutzern abschalten
das wäre ziemlich aufwändig einzurichten daher würde ich eine Softwarelösung bevorzugen.
Gruß Alex
- Saxman
- Beiträge: 4233
- Registriert: 02.05.2005 21:53:52
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: localhost
Re: Bildschirm von Benutzern abschalten
Und im Übrigen, Willkommen im Forum.
Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.
Re: Bildschirm von Benutzern abschalten
vielleicht muss man xset nur sagen, welches Display es abschalten soll:
Code: Alles auswählen
xset -display :0 dpms force off
Re: Bildschirm von Benutzern abschalten
Code: Alles auswählen
ssh host [sudo] vbetool dpms [on|off]
mit einer Multihost-Löung:
Code: Alles auswählen
$ apt-cache search ssh multi | sort
capistrano - Executes commands in parallel on multiples servers
clusterssh - administer multiple ssh or rsh shells simultaneously
mssh - tool to administrate multiple servers at once
mussh - MUltihost SSH Wrapper
pssh - Parallel versions of SSH-based tools
taktuk - efficient, large scale, parallel remote execution of commands
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Bildschirm von Benutzern abschalten
Vielen dank für die Begrüßung.Saxman hat geschrieben:Klappt es wenn du den Befehl als root mit sudo -u als der jeweilige Benutzer startest?
Und im Übrigen, Willkommen im Forum.
Ich habe einmal folgendes versucht:
Code: Alles auswählen
sudo -u USERNAME top
Code: Alles auswählen
sudo -u USERNAME killall PROZESSNAME
Code: Alles auswählen
sudo: no passwd entry for killall!
Das Habe ich versucht, hat nichts gebracht es ist nichts passiert.cosmac hat geschrieben:hi,
vielleicht muss man xset nur sagen, welches Display es abschalten soll:
Code: Alles auswählen
xset -display :0 dpms force off
Wie wende ich diese Befehle genau an?rendegast hat geschrieben:Code: Alles auswählen
ssh host [sudo] vbetool dpms [on|off]
mit einer Multihost-Löung:Code: Alles auswählen
$ apt-cache search ssh multi | sort capistrano - Executes commands in parallel on multiples servers clusterssh - administer multiple ssh or rsh shells simultaneously mssh - tool to administrate multiple servers at once mussh - MUltihost SSH Wrapper pssh - Parallel versions of SSH-based tools taktuk - efficient, large scale, parallel remote execution of commands
Ich muss mich erst einarbeiten in die ganze ssh Sache, daher nicht wundern wenn solche Blöden Fragen bezüglich der Anwendung des Geposteten Codes kommen.
vielen Dank für die bisherigen Antworten, das Forum gefällt mir bisher echt gut.
Entschuldigung dass ich mich erst jetzt wieder gemeldet habe, es war doch etwas stressig in der letzten Zeit.
Noch einen schönen Tag.
gruß alexander
Re: Bildschirm von Benutzern abschalten
Das eigentliche Kommando istWie wende ich diese Befehle genau an?Code: Alles auswählen
ssh host [sudo] vbetool dpms [on|off]
Code: Alles auswählen
vbetool dpms off # Abschalten
vbetool dpms on # Anschalten
Remote mit ssh ausgeführt:
Code: Alles auswählen
ssh root@host-IP_oder_host-Name /usr/sbin/vbetool dpms off
----------------------
Ich dachte mit eigentlich, da root ja nicht ssh machen soll,
als ein Benutzer einloggen, der das sudo-paßwortlos ausführen darf:
Code: Alles auswählen
ssh Benutzer@host-IP_oder_host-Name sudo /usr/sbin/vbetool dpms off
Code: Alles auswählen
User_Alias VBEUSER=berechtigter_Benutzer,berechtigter_Benutzer,...
Cmnd_Alias VBETOOL=/usr/sbin/vbetool dpms off
VBEUSER Hostname=NOPASSWD: VBETOOL
Aber das klappt bei mir nicht(?),
Code: Alles auswählen
sudo /usr/sbin/vbetool dpms off
Code: Alles auswählen
su -c '/usr/sbin/vbetool dpms [off|on]'
Da ist 'ssh root@Host /usr/bin/vbetool ...' wohl am einfachsten.
----------------------------------------------
Das andere sind Pakete, mit denen Befehle auf mehreren Rechnern gleichzeitig aufgerufen werden können.
Luxuriösere Lösungen statt
Code: Alles auswählen
HOSTLISTE="
hostname
hostname
...
"
for i in $HOSTLISTE; do
ssh root@$i /usr/sbin/vbetool dpms off
done
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Bildschirm von Benutzern abschalten
Ich werde gleich am Montag versuchen damit zu arbeiten.
Vielen Dank an jeden der sich bisher die Zeit genommen hat mir zu Helfen.
Gruß Alexander
Re: Bildschirm von Benutzern abschalten
Ich kam nun Heute eeendlich einmal dazu das von euch vorgeschlagene auszuprobieren.
Das ganze funktioniert sogar noch viel einfacher als ich dachte.
Ich baue einfach über ssh meine Verbindung als root auf und gebe dann
Code: Alles auswählen
vbetool dpms off
Ich muss gar nicht jeden einzelnen per ssh ansprechen.
Das ist super, vielen dank für die Hilfe.
Noch eine kleine Frage, weiß jemand wie man die Maus und Tastatur eingaben unterbrechen kann?
Ich habe es mit
Code: Alles auswählen
skill -STOP -u "USERNAME"
Code: Alles auswählen
skill -CONT -u "USERNAME"
Kennt jemand vielleicht einen Besseren Befehl um Eingaben zu unterbinden?
Vielen dank für die bisherige Hilfe, ihr habt mir echt schon super weiter geholfen.
Gruß alex
Re: Bildschirm von Benutzern abschalten
spontan fällt mir dazu xinput ein:
Code: Alles auswählen
xinput set-prop [id] [prop] [1|0]
[prop] die Property von "Device enabled" (xinput list-props [id])
und [1|0] für aktivieren/deaktivieren steht.
hth
Alex
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."
Re: Bildschirm von Benutzern abschalten
Da muss ich erst einmal nachlesen wie ich die id und das prop herausbekomme.
Gibt es dafür einen Befehl oder muss man das normal wissen?
Gruß alex
Re: Bildschirm von Benutzern abschalten
Code: Alles auswählen
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=8 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=10 [slave pointer (2)] <==
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
$ xinput list-props 10
Device 'PS/2 Generic Mouse':
Device Enabled (143): 1 <==
...
$ xinput set-prop 10 143 0
$ xinput list-props 10
Device 'PS/2 Generic Mouse':
Device Enabled (143): 0
...
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."
Re: Bildschirm von Benutzern abschalten
Hallo debdog,debdog hat geschrieben:Code: Alles auswählen
$ xinput list ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Logitech USB Optical Mouse id=8 [slave pointer (2)] ⎜ ↳ PS/2 Generic Mouse id=10 [slave pointer (2)] <== ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)] $ xinput list-props 10 Device 'PS/2 Generic Mouse': Device Enabled (143): 1 <== ... $ xinput set-prop 10 143 0 $ xinput list-props 10 Device 'PS/2 Generic Mouse': Device Enabled (143): 0 ...
Das sieht ja mal richtig gut aus.
Ich musste xinput erst einmal installieren mit
Code: Alles auswählen
apt-get install xinput
Code: Alles auswählen
xinput list
Code: Alles auswählen
Unable to connect to X server
Vielen dank für die Bisherige Hilfe, das war echt schon richtig super.
Gruß alexander
Re: Bildschirm von Benutzern abschalten
'xset' hätte den Parameter '-display :0' um da eventuell einzusteuern.
'ssh [-Y|-X] xinput ...' würde das auf dem client ausgeführte xinput an den X Deiner eigenen Maschine binden (default).
Eventuell kann das X11-Forwarding ssh für das xinput auf die client-Maschine "zurückgeworfen" werden?
'man ssh':
Also ungefähr so:Code: Alles auswählen
DISPLAY The DISPLAY variable indicates the location of the X11 server. It is automatically set by ssh to point to a value of the form “hostname:n”, where “hostname” indicates the host where the shell runs, and ‘n’ is an integer ≥ 1. ssh uses this special value to forward X11 connections over the secure channel. The user should normally not set DISPLAY explicitly, as that will render the X11 connection insecure (and will require the user to manually copy any required authorization cookies).
Code: Alles auswählen
DISPLAY=client_Maschine:0 ssh -Y client_Maschine xinput ...
----------------------------------------------
Auf einer lokalen virtuellen Konsole (ALT-F[1-6]) kann ich xinput abfragen:
Code: Alles auswählen
$ xinput list
Unable to connect to X server
$ DISPLAY=:0 xinput list
� Virtual core pointer id=2 [master pointer (3)]
� � Virtual core XTEST pointer id=4 [slave pointer (2)]
� � Configured Mouse BAK id=6 [slave pointer (2)]
� Virtual core keyboard id=3 [master keyboard (2)]
� Virtual core XTEST keyboard id=5 [slave keyboard (3)]
� Generic Keyboard BAK id=7 [slave keyboard (3)]
Aber das klappt nicht in einer ssh-Session
(Weil X mit '-nolisten tcp' gestartet ist?).
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Bildschirm von Benutzern abschalten
Wenn ich dort
Code: Alles auswählen
xinput list
Code: Alles auswählen
Unable to connect to X server
Gruß Alex
Re: Bildschirm von Benutzern abschalten
Bin bisher davon ausgegangen, daß dieser läuft. Er müsste als Prozess namens "Xorg" auftauchen (ps -A | grep Xorg). Das Problem ist eher, daß ein Benutzer auf ihn zugreifen will, welcher den X-Server nicht gestartet hat.chimera1 hat geschrieben:Was ist dieser xserver genau und wie kann ich ihn installieren?
Wahrscheinlich bist Du root aber der X-Server wurde von einem anderen Benutzer gestartet.chimera1 hat geschrieben:Ich bin jetzt direkt auf der Maschine, ohne ssh.
Wenn ich dorteingebe kommt genau der gleiche Fehler.Code: Alles auswählen
xinput list
Code: Alles auswählen
Unable to connect to X server
Abhilfe könnte hier schaffen, wenn man in jeder ~/.bashrc jedes Benutzers folgendes Einträgt:
Code: Alles auswählen
export XAUTHORITY=/home/[user]/.Xauthority
PS: Der X-Server ist der Dienst, der die grafische Oberfläche zur Verfügung stellt. Diese dient dann als Basis für die Fenstermanager wie gnome, KDE usw.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."
Re: Bildschirm von Benutzern abschalten
es könnte sein das dieser xserver von dem x2go gestartet wurde und daher als root nichts daran ändern kann.
Du hast sicherlich recht dass es jetzt zu aufwändig wird, ich möchte den server hier nicht zerschießen.
Vielen Dank für deine super Hilfe, ich bin echt schon sehr viel weiter gekommen.
Falls jemandem noch eine Möglichkeit zur Lösung des Problems einfällt bitte Bescheid geben.
Gruß Alexander und ein schönes Wochenende.
P.s. Ich bin die ganze nächste Woche in einer anderen Schule 400km entfernt, daher nicht wundern dass meine Antwort eventuell erst in einer Woche kommen wird.
Re: Bildschirm von Benutzern abschalten
Code: Alles auswählen
xhost +local:
(dann gilt es, wenn ein Benutzer sich eingeloggt hat),
oder (in meinem Fall) in /etc/gdm/Init/:0, dann auch beim login-Bildschirm (der X-Session des gdm).
x2go hat auf dem client ähnliche Dateien?
Das öffnet den Xserver (lokal), damit kann dann auch ein per ssh eingeloggter root (kein '-X', kein '-Y') X-Befehle absetzen:
Code: Alles auswählen
# ssh clientmaschine
...
# ps -f -C Xorg
UID PID PPID C STIME TTY TIME CMD
root 1994 1988 2 19:14 tty7 00:01:10 /usr/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
# DISPLAY=:0 xinput list
þ Virtual core pointer id=2 [master pointer (3)]
þ þ Virtual core XTEST pointer id=4 [slave pointer (2)]
þ þ Configured Mouse BAK id=6 [slave pointer (2)]
þ Virtual core keyboard id=3 [master keyboard (2)]
þ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
þ Generic Keyboard BAK id=7 [slave keyboard (3)]
--------------------
@debdog
'xinput [list-props|set-prop]' nicht mit dem xinput 1.3.0 aus lenny? Alternativen?
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")