Mehrere X-Server laufen lassen
Mehrere X-Server laufen lassen
Hallo zusammen,
ich habe (leider) den UseCase, dass ich zwei unabhängig X-Server laufen lassen muss, mit zwei unterschiedlichen angemeldeten Benutzer.
Mein Login Manager ist GDM3 und ich nutze Cinnamon, mein Debian ist bullseye/sid.
Vielen Dank Euch schon mal im Voraus.
ich habe (leider) den UseCase, dass ich zwei unabhängig X-Server laufen lassen muss, mit zwei unterschiedlichen angemeldeten Benutzer.
Mein Login Manager ist GDM3 und ich nutze Cinnamon, mein Debian ist bullseye/sid.
Vielen Dank Euch schon mal im Voraus.
Re: Mehrere X-Server laufen lassen
Und deine Frage ist?BlueSky hat geschrieben:24.03.2020 13:04:38Mein Login Manager ist GDM3 und ich nutze Cinnamon, mein Debian ist bullseye/sid.
Re: Mehrere X-Server laufen lassen
Ich mach das eigentlich recht regelamäßig einfach auf net zwieten TTY anmelden (Strg+Alt+X für 7>x>0) und dann startx ausfürhen. Für die zweite Session fehlt halt der GDM3. Stört aber IMHO nicht.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Mehrere X-Server laufen lassen
Argh, Du hast natürlich Recht! Die Lösung kann manchmal so einfach sein, danke Dir!wanne hat geschrieben:24.03.2020 17:52:21Ich mach das eigentlich recht regelamäßig einfach auf net zwieten TTY anmelden (Strg+Alt+X für 7>x>0) und dann startx ausfürhen. Für die zweite Session fehlt halt der GDM3. Stört aber IMHO nicht.
- jph
- Beiträge: 1049
- Registriert: 06.12.2015 15:06:07
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Greven/Westf.
Re: Mehrere X-Server laufen lassen
Wenn die User sich über GDM3 unter GNOME + Xorg anmelden, wird für jeden User ein separater X-Server unter Nutzerrechten gestartet. X läuft schon lange nicht mehr als root. Daher ist das Log auch nicht mehr unter /var, sondern im Nutzerverzeichnis unter .local/share/xorg zu finden.BlueSky hat geschrieben:24.03.2020 13:04:38ich habe (leider) den UseCase, dass ich zwei unabhängig X-Server laufen lassen muss, mit zwei unterschiedlichen angemeldeten Benutzer.
Mein Login Manager ist GDM3 und ich nutze Cinnamon, mein Debian ist bullseye/sid.
Möglicherweise macht GDM3 das für Cinnamon genau so.
Re: Mehrere X-Server laufen lassen
Guck mal unter /var/log/Xorg.0.log und staune... Xorg läuft meist noch immer als root. Er kann das IMHO auch nicht anders. Lediglich xinit läuft als user /usr/lib/xorg/Xorg.wrap startet mit suid als root. Du kannst das auch systemd handeln lassen, dass er alle Aktionen, die root-Rechte verlangen ausführen lässt. Aber dann kann der auch nen Logfile aufmachen. (Wie z.B. der Apache das macht.)jph hat geschrieben:29.03.2020 14:31:18Daher ist das Log auch nicht mehr unter /var, sondern im Nutzerverzeichnis unter .local/share/xorg zu finden.
Edit: Ich finde das btw. auch kein Sicherheitsgewinn, wenn du einen Dienst im Hintergrund hast, der dann die Entsprechenden Sachen macht.
a) Einen 10 mal so mächtigen statt 10 kleine ist garantiert nicht besser zu warten.
b) Du brauchst dann ein wie auch immer geartete Authentifizierung+Protokoll zwischen den Diensten mit zusätzlicher Angriffsfläche. Als root starten und privilege drop war mir da deutlich lieber.
rot: Moderator wanne spricht, default: User wanne spricht.
- jph
- Beiträge: 1049
- Registriert: 06.12.2015 15:06:07
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Greven/Westf.
Re: Mehrere X-Server laufen lassen
Code: Alles auswählen
[ 50619.414] Current Operating System: Linux x220 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64
...
[ 50619.415] (==) Log file: "/var/log/Xorg.0.log", Time: Fri May 5 15:22:15 2017
„Administratoren und Benutzer in sicherheitssensitiven Umgebungen können beruhigt sein darüber, dass das X-Display-System für den Betrieb keine "root"-Berechtigungen mehr erfordert.“ (https://www.debian.org/News/2017/20170617)wanne hat geschrieben:30.03.2020 00:36:23Xorg läuft meist noch immer als root. Er kann das IMHO auch nicht anders.
Das jüngste Log unter .local/share/xorg ist aktueller:
Code: Alles auswählen
[ 32260.561] Current Operating System: Linux t460s 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64
...
[ 32260.561] (==) Log file: "/home/jan/.local/share/xorg/Xorg.0.log", Time: Thu Dec 19 16:57:36 2019
Re: Mehrere X-Server laufen lassen
Können schon:wanne hat geschrieben:30.03.2020 00:36:23Xorg läuft meist noch immer als root. Er kann das IMHO auch nicht anders.
Code: Alles auswählen
niemand 593 0.0 0.0 3840 2476 tty1 S+ 17:15 0:00 \_ xinit /etc/xdg/xfce4/xinitrc -- /etc/X11/xinit/xserverrc vt1
niemand 594 8.2 2.2 864692 172892 tty1 Sl 17:15 6:58 \_ /usr/lib/Xorg -nolisten tcp :0 vt1
Re: Mehrere X-Server laufen lassen
Wie gesagt: Der startet als root. Dann guckt er ob er er sich die passenden Devices vom Systemd geben lassen kann (Dann läuft systemd-logind läuft dauerhaft als root und reicht die ressourcen die xorg nicht nutzen kann durch) und droped seine Privilegien oder bleibt halt als root laufen. (nvidia, vesa oder dumm können nicht mit dem systemd reden.) In allen beiden Fällen kann er nach /var/log/ schreiben.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Mehrere X-Server laufen lassen
Nein, sagtest du nicht. Und hier startet er auch nicht als root – ich hätte die Zeile davor auch gleich mitkopieren sollen, sorry:
Code: Alles auswählen
niemand 590 0.0 0.0 8736 5240 tty1 Ss 17:15 0:00 \_ -bash
niemand 593 0.0 0.0 3840 2476 tty1 S+ 17:15 0:00 \_ xinit /etc/xdg/xfce4/xinitrc -- /etc/X11/xinit/xserverrc vt1
niemand 594 8.2 2.2 864692 172892 tty1 Sl 17:15 6:58 \_ /usr/lib/Xorg -nolisten tcp :0 vt1
Re: Mehrere X-Server laufen lassen
Doch. Der Post ist sogar noch da:Nein, sagtest du nicht.
Lediglich xinit läuft als user /usr/lib/xorg/Xorg.wrap startet mit suid als root
Doch der startet als root und macht dann setresuid.Und hier startet er auch nicht als root – ich hätte die Zeile davor auch gleich mitkopieren sollen, sorry:
Hier der passende Teil vom Code:
Code: Alles auswählen
if (needs_root_rights == 0 || (total_cards && kms_cards == total_cards)) {
gid_t realgid = getgid();
uid_t realuid = getuid();
if (setresgid(-1, realgid, realgid) != 0) {
fprintf(stderr, "%s: Could not drop setgid privileges: %s\n",
progname, strerror(errno));
exit(1);
}
if (setresuid(-1, realuid, realuid) != 0) {
fprintf(stderr, "%s: Could not drop setuid privileges: %s\n",
progname, strerror(errno));
exit(1);
}
}
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Mehrere X-Server laufen lassen
Könntest du dann bitte herausstellen, an welcher Stelle es die Rootrechte erlangt? Hier ist weder Xorg, noch xinit, noch sonst etwas für mich Ersichtliches in der Startkette mit dem suid-Bit versehen. Xorg.wrap existiert hier gar nicht erst.
Re: Mehrere X-Server laufen lassen
Normal: Hat /usr/lib/xorg/Xorg.wrap wird von xinit aufgerufen und hat suid. Es macht dann execve(Xorg) und kein fork() (Ist also nicht der Vater von Xorg ändert sich selbst zu Xorg.)Könntest du dann bitte herausstellen, an welcher Stelle es die Rootrechte erlangt?
Wenn du sicher weißt, dass du dass in keinem Fall brauchst, kannst du die passende Datei entfernen. Dann tut aber auch keine Vesa-Fallbacks bei Unfunktionalen Treibern, GPGPU-Computing ohne Bildschirm (Folding@HOME etc. auf nem Server.) NX die meisten VNC-Lösungen...
Deswegen ist das in Debian nicht default und nur schwer los zu bekommen. Du musst xserver-xorg entfernen und xserver-xorg-core und die benötigten xserver-xorg-video-X und xserver-xorg-input-X von Hand installieren. Daneben tut es halt nicht mehr sobald kein systemd-logind (als root) läuft. Was als GNOME-Nutzer allerdings eher irrelevant ist, da GNOME eh einen systemd-logind braucht.
rot: Moderator wanne spricht, default: User wanne spricht.