Java und X11

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
homer65
Beiträge: 100
Registriert: 01.04.2005 16:29:26

Java und X11

Beitrag von homer65 » 04.03.2024 11:59:49

Guten Tag,
versuche gerade ein Java Swing Programm unter Debian 12 als User postgres zu starten.
Dabei kommt folgende Exception

Code: Alles auswählen

Authorization required, but no authorization protocol specified

Exception in thread "main" java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.

Gestartet wird über die Prozedur

Code: Alles auswählen

#!/bin/bash
#
echo ${DISPLAY}
AUFTRAG=${1}
SCRIPTPATH=$(cd `dirname $0` && pwd)
echo ${SCRIPTPATH}
cd ${SCRIPTPATH}
for filename in ${SCRIPTPATH}/lib/*.jar
 do CLASSPATH=${CLASSPATH}:${filename}
done
echo ${CLASSPATH}
export CLASSPATH
java -Xmx1024M -Xms128M org.myoggradio.generate.Main ${AUFTRAG}
exit
Lasse ich die Prozedur als mein normaler User laufen, kommt diese FEhlermeldung nicht.
Um als User postgres zu laufen, setze ich folgende Befehle ab (Da ich das Passwort von postgres nicht kenne)

Code: Alles auswählen

su 
su postgres
Kann mir jemand weiterhelfen?
Gruß Christian

homer65
Beiträge: 100
Registriert: 01.04.2005 16:29:26

Re: Java und X11

Beitrag von homer65 » 04.03.2024 12:08:27

Habe noch durch googeln herausgefunden, das ich mit

Code: Alles auswählen

xhost +
Das Programm zum Laufen bringen kann.
Weiss allerdings nicht, was ich mir damit für Konsequenzen einhandele.
Gruß Christian

niemand
Beiträge: 499
Registriert: 22.12.2023 16:35:53
Kontaktdaten:

Re: Java und X11

Beitrag von niemand » 04.03.2024 13:16:25

homer65 hat geschrieben: ↑ zum Beitrag ↑
04.03.2024 12:08:27
Weiss allerdings nicht, was ich mir damit für Konsequenzen einhandele.
Sicherheitsprobleme. X11 ist vom Aufbau her inhärent unsicher (als es geschaffen wurde, waren andere Dinge wichtiger), und wenn du jetzt jedem beliebigen User, also auch denen, die eigentlich nicht für interaktive Aktionen gedacht sind, wie etwa postgres den Zugriff darauf gibst, brauchst du dich um weitere Absicherung des Systems eigentlich gar nicht mehr zu kümmern. Um es bildlich darzustellen: es bringt nichts, die Wände einer Burg zu verstärken, wenn das Tor sperrangelweit offensteht.

Warum glaubst du, ein Programm mit einem GUI als postgres ausführen zu müssen?
„I fought in the Vim-Emacs-War.“ Quelle

homer65
Beiträge: 100
Registriert: 01.04.2005 16:29:26

Re: Java und X11

Beitrag von homer65 » 04.03.2024 14:53:58

Das Java Programm generiert Skripte für eine Postgres Datenbank z.B. Backup Skripte und soll diese auch ausführen können.
Dazu braucht der ausführende User entsprechende Rechte in der Postgres Datenbank.
Da das Java Programm viele verschiedene Aufgaben ausführen können soll, ist das einfachste den postgres Nutzer zu benutzen.

niemand
Beiträge: 499
Registriert: 22.12.2023 16:35:53
Kontaktdaten:

Re: Java und X11

Beitrag von niemand » 04.03.2024 20:28:23

homer65 hat geschrieben: ↑ zum Beitrag ↑
04.03.2024 14:53:58
Das Java Programm generiert Skripte für eine Postgres Datenbank z.B. Backup Skripte und soll diese auch ausführen können.
Dazu braucht der ausführende User entsprechende Rechte in der Postgres Datenbank.
Postgres kennt eine Vielzahl von Möglichkeiten, User zu authentifizieren – da muss es nicht ausgerechnet der Systemuser sein, der GUI(!)-Programme in der X-Session eines anderen Users ausführen muss.
„I fought in the Vim-Emacs-War.“ Quelle

Antworten