X..wm nur fuer root..!

apt-get

Active Member
Hallo!
ich hab freebsd neu installiert, und unter root auch schnell nachtraeglich die X confguration gemacht und windowmaker als windowmanager installiert. unter root laesst ischs auch super starten, aber wen ich mit dem user x starten will, kommt immer nur "exec /usr/X11R6/etc/WindowMaker..Permission denied!" oder so in der art..
was is da, wie kann ich WM auch fuer andere brauchbar machen??? =).
danke..
 
wie sind denn die permissions von /usr/X11R6/etc/WindowMaker bzw. was sagt ein
#ls -la /usr/X11R6/etc/WindowMaker ?
ist der user mit dem du x starten willst in der gruppe wheel ?
 
Hi,
ich hab ein ähnliches Problem.
Ich habe mir als Desktopumgebung KDM eingerichtet und das FreeBSD ist so konfiguriert, dass beim Start erstmal nur der Textmodus erscheint. Als root starte ich dann mit "kdm" meine graf. Oberfläche. Das Problem ist aber, dass eben nur root den befehl "kdm" ausführen kann. WIe kann ich anderen Usern ermöglichen, ebenfalls die graf. Oberfläche zu starten?
Ich hab schon versucht, die Rechte in /usr/local/share/config/kdm dahingehend zu ändern, dass jeder lesen und schreiben darf. Beim Ausführen von "kdm" meckert der aber immer noch.
Kann man das irgendwo zentral einstellen oder gibts einen Trick, wie das geht?

thx für jede Hilfe:)
 
ne, scheinbar funktioniert das leider nicht. ich hab die rechte für Xsession, Xacess, Xstartip, kdmrc usw. alle schon geändert, dass jeder schreibn und lesen darf. geht aber nicht.
Zuerst kam immer die Meldung "can not create Xsession" oder irgendeine andere datei, wenn moritz kdm starten wollte. ich hab darauf immer die rechte für die jeweilige datei freigegeben, bis eben alle auf schreiben lesen waren.
tortzzdem kommt immer "only root wants to run kdm"
 
Jam klar. KDM is ja auch der loginmanager !

Soll heissen, mit KDM willst du dich ja mit einem anderen Benutzer anmelden, und das geht nicht ohne Rootrechte.

Du kannst doch einfach den KDE-Befehl in die ~/.xinitrc deines Benutzers schreiben, dann brauchst du KDM überhaupt nicht mehr.
 
den KDE-Befehl? "kde" oder wie lautet der?
ich will ja eigentlich folgendes: jeder user soll sich erstmal an der Konsole anmelden und dann selbst entscheiden können, ob er ne graf. oberfläche will oder nicht bzw. will ich manchen sogar verbieten, ne graf. oberfläche zu nutzen.
 
den KDE-Befehl? "kde" oder wie lautet der?
ich will ja eigentlich folgendes: jeder user soll sich erstmal an der Konsole anmelden und dann selbst entscheiden können, ob er ne graf. oberfläche will oder nicht bzw. will ich manchen sogar verbieten, ne graf. oberfläche zu nutzen.

Kenn ich nicht das man jemanden x verbietet.
 
hast du vllt link zu der stelle im handbuch?
Ich hab mir grad folgendes gedacht: Zuerst einmal:
Mein User moritz hat sich eingeloggt auf der Konsole. Er möchte jetzt sein KDE starten, wie lautet der befehl dazu? "kde" geht irgendwie nicht, bekomme da die meldung, dass er das nicht findet.
theoretisch ginge es so weiter: moritz startet sein KDE, dass muss ja irgendwo in einer Datei/Ordner liegen. Wo findet man das? Damit nun beispielsweise der benutzer michael kein KDE starten kann, sperre ich einfach für ihn die Rechte zu der Datei/Ordner, wo KDE liegt bzw. wenn das nicht geht, erstelle ich eine Gruppe und füge die Mitglieder hinzu, die nur KDE starten dürfen und setze dann entsprechend die Rechte. Rein von der Theorie her: ginge das??
 
Ich hab mir grad folgendes gedacht: Zuerst einmal:
Mein User moritz hat sich eingeloggt auf der Konsole. Er möchte jetzt sein KDE starten, wie lautet der befehl dazu? "kde" geht irgendwie nicht, bekomme da die meldung, dass er das nicht findet.

Der Befehl heißt "startkde". Aber der alleine nützt dir nichts. Du legst für jeden User eine .xinitrc an und schreibst dort rein "exec startkde". Nun lässt sich KDE mit dem Befehl "startx" starten. Wenn ein User keine entsprechende .xinitrc hat, kann er den X-Server auch nicht starten. Allerdings könnte er sich selbständig eine solche Datei anlegen.

theoretisch ginge es so weiter: moritz startet sein KDE, dass muss ja irgendwo in einer Datei/Ordner liegen. Wo findet man das?

Ich nutze kein KDE, aber ich schätze mal unter irgendwo unter /usr/local/bin

Damit nun beispielsweise der benutzer michael kein KDE starten kann, sperre ich einfach für ihn die Rechte zu der Datei/Ordner, wo KDE liegt bzw. wenn das nicht geht, erstelle ich eine Gruppe und füge die Mitglieder hinzu, die nur KDE starten dürfen und setze dann entsprechend die Rechte. Rein von der Theorie her: ginge das??

Ja, das sollte gehen.
 
Damit nun beispielsweise der benutzer michael kein KDE starten kann, sperre ich einfach für ihn die Rechte zu der Datei/Ordner, wo KDE liegt bzw. wenn das nicht geht, erstelle ich eine Gruppe und füge die Mitglieder hinzu, die nur KDE starten dürfen und setze dann entsprechend die Rechte. Rein von der Theorie her: ginge das??
Ja, das ging an sich schon, wie Styx korrekt schrieb. Bei mehreren Nutzern würde ich allerdings keine klassischen Unix-Berechtigungen nehmen, sondern ACL. Das macht es deutlich einfacher zu durchdenken und später Änderungen einzupflegen. Sperren tust du auch nicht das komplette KDE, sondern halt eben jenen Befehl, welcher aus der .xinitrc heraus startet. Um es gleich zu sagen, solche Sperren kann man durchaus umgehen, wenn man nicht höllisch aufpasst.
 
und hier hab ich wieder problem, hinterherzukommen. ^^
ich hab noch nie vorher mit unix gearbeitet oder linux, was ist ACL?

Zu dem beschränkten KDE:
Also zuerst einmal vielen Dank, das funktionierte mit dem .xinitrc
Ich hab für jeden meiner User die .xinitrc vorgeschrieben mit "exec startkde"
wenn dann moritz "startx" eingibt kommen zwar diverse meldungen ala

xauth: creating new authority file /home/moritz/.serverauth.942
xauth: (argv):1: bad display name "UNIX_BBi:0" in "list" command

funktioniert aber trotzdem, dass KDE startet. (Die erste Meldung sagte mir ja noch was, aber die zweite :confused: )
Jedenfalls hab ich auch für peter die .xinitrc erstellt, allerdings ohne jeden befehl,a slo leer. Meine Gedanken gingen dahin, dass ich ihm den Zugriff auf die Datei komplett verbiete, dann kann er die nicht editieren und neu erstellen oder löschen geht auch nicht, da er keinen Schreibzugriff hat (so jedenfalls meine Gedanken)
Im Testlauf ging dann zwar "startx" wirklich nicht (weil .xinitrc ja leer ist), aber peter konnte die .xinitrc löschen und sich neu schreiben.
Und ich nahm an, dass das Schreibrecht in der Datei auch löschen umfasst. Das fällt aber unter das Schreibrecht des Verzeichnisses. Ich will aber peter nicht den Schreibzugriff auf sein eigenes home-Verzeichnis nehmen ^^

Ist es möglich, die .xinitrc in ein Verzeichnis zu legen, in der peter keinen Schreibzugriff hat und mit nem link in sein Verzeichnis zu legen? oder könnte er auch den Link löschen und sich so wieder selbst eine .xinitrc erstellen?
Ich will nicht, dass er ne graf. Oberfläche hat^^.... wie realisier ich das?
thx für antworten

//
ich denke, ich werde ne gruppe erstellen, die "kde-user" oder so ähnlich heißt und nur für diese den zugriff auf die datei mit kde freigeben. wo liegt denn diese datei, die kde ermöglicht für die user auf dem system?
 
Zuletzt bearbeitet:
Leider ist startx nur ein Skript, welches alles etwas verinfacht, es ist auch ohne es möglich X zu starten. startkde ist wahrscheinlich ähnlich, er startet vermutlich den sessionmanager.
 
Hmm... Ich überlege gerade, ob man nicht irgendwie als User einen X-Server starten könnte, der im Homeverzeichnis liegt...

Sowas halt: http://www.straightrunning.com/XmingNotes/ Aber dann natürlich nicht nur für Windows...

Vielleicht geht xming mit wine ;)

Spaß beiseite, ist es nicht irgendwie möglich den Usern den Zugriff auf die Grafikkarte zu verweigern? Schließlich wird auch ein anderer Treiber genutzt, wenn X gestartet wird.
 
Spaß beiseite, ist es nicht irgendwie möglich den Usern den Zugriff auf die Grafikkarte zu verweigern? Schließlich wird auch ein anderer Treiber genutzt, wenn X gestartet wird.

Wenn du so paranoid bist dann steck doch deine User in ein 'chroot' mit limitierten Befehlsatz. :)

ansonsten, nur root darf Xorg ausführen:
Code:
gast20# cd /usr/local/bin
gast20# ll Xorg
-r-sr-xr-x  1 root  wheel  1341792 Mar  4 11:58 Xorg
gast20# chmod 4500 Xorg
gast20# ll Xorg
-r-s------  1 root  wheel  1341792 Mar  4 11:58 Xorg

oder bei allen Usern (die nicht so die Ahnung haben) ins shell-rc oder global:
Code:
alias startkde echo Sorry Dude
 
Wenn du so paranoid bist dann steck doch deine User in ein 'chroot' mit limitierten Befehlsatz. :)

was ist ein "chroot" mit limitiertem Befehlssatz?

ansonsten, nur root darf Xorg ausführen:
Code:
gast20# cd /usr/local/bin
gast20# ll Xorg
-r-sr-xr-x  1 root  wheel  1341792 Mar  4 11:58 Xorg
gast20# chmod 4500 Xorg
gast20# ll Xorg
-r-s------  1 root  wheel  1341792 Mar  4 11:58 Xorg
aber wenn nur root Xorg ausführen darf, dann haben die anderen User, denen ich ja ne graf. Oberfläche geben will, auch nichts ^^
aber es is interessant, dass du da bei "chmod" eine vierstellige Zahl hast. Das ist mir schon öfters aufgefallen. Ich kenne nur die drei zahlen für User, Group und Other, wofür steht die 4.? und steht die nun vor User, Group, Other oder zum Schluss als vierte?

oder bei allen Usern (die nicht so die Ahnung haben) ins shell-rc oder global:
Code:
alias startkde echo Sorry Dude

du meinst, wenn der user "startkde" eingibt wird "Sorry Dude" zurückgegeben? ^^
und was meinste mit "ins shell-rc oder global"? die .cshrc im home-verzeichnis des users oder was?
thx ^^
 
ich habs jetz so gemacht, dass ich für die befehle "startx", "startkde" und "X" aliases eingefügt hab, da ich das Verzeichnis, wo die Dateien für KDE liegen, nicht gefunden hab.
 
Die Dateien für ein Programm liegen nicht an einem bestimmten Ort. Stattdessen findest du ausführbare Dateien unter /usr/local/bin und /usr/local/sbin. Libraries unter /usr/local/lib, Header zum Verlinken unter /usr/local/include usw.

Mehr dazu findest du in der Manual-Page hier.
 
mir fällt dazu noch ein, daß ja die .xinitrc nichts anderes als scripte sind, die deinen X-Server starten und eine Anwendung darin auch, wenn sie denn vorhanden sind und daß hier jeder user seine eigene Version haben kann (was auch bei den .cshrc Konfigurationsdateien so ist, wie du vielleicht schon heraus gefunden hast.)
Deshalb denke ich mir eine Lösung, wo in einem solchen Script abgefragt wird, wer es startet und dann eine Entscheidung in Abhängigkeit zum Namen gefunden wird.
Grundsätlich glaube ich sogar, daß so etwas auch noch aus KDM zu machen ist. KDM merkt sich für jeden user auch die letzte Wahl des Fenstermanagers, das muß irgendwie geschehen und gespeichert werden. Die Wahl kann dann vielleicht hier eingeschränkt und für jeden User festgelegt werden.
/usr/local/share/config/kdm/kdmrc
enthält die Konfiguration des KDM und da steht einiges drin.
Nun läuft dann aber schon ein X, wenn der KDM gesartet ist und ich weiß nicht, wie gut er dann nochmal auf die Konsole schalten und gleichzeitig noch aktiv bleiben kann. Eine Alternative wäre dann vielleicht ein einfaches Terminal-Fenster in einem X-Gewandt, ein X-Terminal. Die Geometrie sollte sich festlegen lassen und damit auch Bildschirmfüllend möglich sein.
Ob mit aliasen auch scripts gestartet werden können, weiß ich nicht. Ich habe das mal versucht und es ging etwas, aber nicht, was ich wollte. Vielleicht habe ich es nicht ganz richtig gemacht, das ist bei mir meistens so...
 
Zurück
Oben