Mehrere X-Server laufen lassen

KDE, Gnome, Windowmanager, X11, Grafiktreiber und alles was dazu notwendig ist. Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
BlueSky
Beiträge: 2
Registriert: 06.01.2005 21:00:57
Wohnort: Stuttgart
Kontaktdaten:

Mehrere X-Server laufen lassen

Beitrag von BlueSky » 24.03.2020 13:04:38

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.

DeletedUserReAsG

Re: Mehrere X-Server laufen lassen

Beitrag von DeletedUserReAsG » 24.03.2020 17:44:28

BlueSky hat geschrieben: ↑ zum Beitrag ↑
24.03.2020 13:04:38
Mein Login Manager ist GDM3 und ich nutze Cinnamon, mein Debian ist bullseye/sid.
Und deine Frage ist?

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Mehrere X-Server laufen lassen

Beitrag von wanne » 24.03.2020 17:52:21

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.

BlueSky
Beiträge: 2
Registriert: 06.01.2005 21:00:57
Wohnort: Stuttgart
Kontaktdaten:

Re: Mehrere X-Server laufen lassen

Beitrag von BlueSky » 25.03.2020 10:43:47

wanne hat geschrieben: ↑ zum Beitrag ↑
24.03.2020 17:52:21
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.
Argh, Du hast natürlich Recht! Die Lösung kann manchmal so einfach sein, danke Dir!

Benutzeravatar
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

Beitrag von jph » 29.03.2020 14:31:18

BlueSky hat geschrieben: ↑ zum Beitrag ↑
24.03.2020 13:04:38
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.
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.

Möglicherweise macht GDM3 das für Cinnamon genau so.

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Mehrere X-Server laufen lassen

Beitrag von wanne » 30.03.2020 00:36:23

jph hat geschrieben: ↑ zum Beitrag ↑
29.03.2020 14:31:18
Daher ist das Log auch nicht mehr unter /var, sondern im Nutzerverzeichnis unter .local/share/xorg zu finden.
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.)



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.

Benutzeravatar
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

Beitrag von jph » 30.03.2020 18:33:07

wanne hat geschrieben: ↑ zum Beitrag ↑
30.03.2020 00:36:23
jph hat geschrieben: ↑ zum Beitrag ↑
29.03.2020 14:31:18
Daher ist das Log auch nicht mehr unter /var, sondern im Nutzerverzeichnis unter .local/share/xorg zu finden.
Guck mal unter /var/log/Xorg.0.log und staune...

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
Kernel 3.16. Das war Jessie auf dem alten Laptop.
wanne hat geschrieben: ↑ zum Beitrag ↑
30.03.2020 00:36:23
Xorg läuft meist noch immer als root. Er kann das IMHO auch nicht anders.
„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)

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
Da habe ich – warum auch immer – GNOME unter Xorg gestartet.

DeletedUserReAsG

Re: Mehrere X-Server laufen lassen

Beitrag von DeletedUserReAsG » 30.03.2020 18:41:27

wanne hat geschrieben: ↑ zum Beitrag ↑
30.03.2020 00:36:23
Xorg läuft meist noch immer als root. Er kann das IMHO auch nicht anders.
Können schon:

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

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Mehrere X-Server laufen lassen

Beitrag von wanne » 30.03.2020 19:23:20

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.

DeletedUserReAsG

Re: Mehrere X-Server laufen lassen

Beitrag von DeletedUserReAsG » 30.03.2020 19:40:16

wanne hat geschrieben: ↑ zum Beitrag ↑
30.03.2020 19:23:20
Wie gesagt: Der startet als root.
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

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Mehrere X-Server laufen lassen

Beitrag von wanne » 31.03.2020 01:19:45

Nein, sagtest du nicht.
Doch. Der Post ist sogar noch da:
Lediglich xinit läuft als user /usr/lib/xorg/Xorg.wrap startet mit suid als root
Und hier startet er auch nicht als root – ich hätte die Zeile davor auch gleich mitkopieren sollen, sorry:
Doch der startet als root und macht dann setresuid.
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.

DeletedUserReAsG

Re: Mehrere X-Server laufen lassen

Beitrag von DeletedUserReAsG » 31.03.2020 07:03:19

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.

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Mehrere X-Server laufen lassen

Beitrag von wanne » 31.03.2020 10:10:44

Könntest du dann bitte herausstellen, an welcher Stelle es die Rootrechte erlangt?
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.)
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.

Antworten