[LINUX] ACPI, Mit ROOT Befehl als user ausführen
lima-city → Forum → Heim-PC → Betriebssysteme
anfang
anwender
arbeiten
ausprobieren
befehl
benutzer
bildschirm
bit
code
datei
display
drehen
export
fehler
klicken
normaler benutzer
parameter
programm
setzen
trigger
-
Mh, im Grunde sagt die Überschrift schon alles:
Um mein Bildschirm zu drehen muss ich xrandr ausführen und die Gradzahl drannhängen, dann gehts auch. Aber nur als der User der auch gerade den Xserver besitzt. Wenn ich das nun also per ACPI \"Trigger\", dann führt ROOT den Befehl aus obwohl er garkein X11 hat und es führt zu einem Fehler.
Wenn ich das Script als User ausführe dreht sich der Bildschirm, so wie es seien soll. Nun würde ich gerne wissen, mit welchem Befehl ROOT etwas als User ausführe kann, wenn das denn geht. Sonst muss ich mir was anderes überlegen ;)
Vielen Dank,
ErasmuZ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
So auf die schnelle:
su $Benutzer xrandr $Parameter
Root sollte eigentlich das Recht haben die Identität von $Benutzer anzunehmen ohne dessen Passwort einzugeben.
Allerdings läuft so viel ich weiß der X Server normalerweise schon als Prozess von root.
€dit: X läuft zwar mit root Rechten, aber xrandr wird trotzdem als normaler User ausgeführt, hast also schon Recht.
€dit2: So isses wohl noch schöner, weil du Befehle danach wieder als root ausführst.
su $Benutzer -c xrandr $Parameter
Beitrag geändert: 26.4.2008 22:07:49 von kochmarkus -
oder mit \"chmod +s `which xrandr`\" das SETUID bit für xrandr setzen. Das bedeutet, das Programm wird immer mit den Rechten des Anwenders ausgeführt, dem die Datei gehört (=root)
erasmuz will es aber genau andersrum, nämlich das Programm in einem Skript das von root gestartet wird als normaler Benutzer ausführen. Um mit dem Sticky Bit zu arbeiten müsste \"xrandr\" dann dem Benutzer gehören. -
Achso, hab wohl zu schnell gelesen.
Kannst mal die DISPLAY-envvar auf \":0.0\" setzen, evtl. geht\'s dann
(DISPLAY=\":0.0\" xrandr ...\"
oder gleich export DISPLAY=\":0.0\" am Anfang deines Scripts)
Ja, das ist ja genau der Fehler ;)
Display 0.0 ist das \"zu drehende\" aber es kann nur vom Nutzer gedreht werden ;)
Somit klingt die Lösung von Kochmarkus ganz gut (kanns leider zzt nicht ausprobieren). Dachte immer \"su\" dient dazu eben root zu werden ^^
Naja, zumindest das Starten und killen von xvkbd lief schon. Hatte mir das drehen dann behelfweise als 2 Scripts in die Taskleiste geschummelt, aber immer einmal klicken zum drehen ist ja auch doof ;) -
Somit klingt die Lösung von Kochmarkus ganz gut (kanns leider zzt nicht ausprobieren). Dachte immer \"su\" dient dazu eben root zu werden ^^
Ich zitier mal aus \"man su\":
su - change user ID or become superuser
Beitrag geändert: 27.4.2008 18:00:57 von kochmarkus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage