[weis wohl niemand] Webanwendung als anderer Benutzer ausführen Problem

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
debmatrix
Beiträge: 63
Registriert: 12.06.2023 07:48:06

[weis wohl niemand] Webanwendung als anderer Benutzer ausführen Problem

Beitrag von debmatrix » 17.12.2023 17:45:23

Mein Ziel ist es ab und zu Webanwendungen als anderer Benutzer auszuführen. Aber seit dem update auf Debian Bookworm funktioniert das ganze nicht mehr.


Der andere Benutzer wurde so erstellt:

Code: Alles auswählen

sudo adduser --system --disabled-login --disabled-password --ingroup $USER --shell /usr/bin/false inetuser

# In der /etc/sudoers wurde hinzugefügt:

Code: Alles auswählen

user, inetuser ALL=(inetuser) NOPASSWD: /usr/local/bin/start

Beim starten der Webanwendung wird seit dem Update auf Debian Bookworm folgender Fehler ausgegeben:

Code: Alles auswählen

umask 077 ; sudo -H -u inetuser bash /usr/local/bin/start :0 ed536c0f510a6930e0d1164b8d06de38 /usr/bin/firefox --no-remote -P
/usr/bin/xauth:  error in locking authority file /nonexistent/.Xauthority
Authorization required, but no authorization protocol specified

Error: cannot open display: :0

Die Datei /usr/local/bin/start sieht so aus:

Code: Alles auswählen

#!/usr/bin/env bash
# 1. Parameter = DISPLAY
# 2. Parameter = MIT COOKIE
# 3. Parameter = Anwendungen
# ab 4. = Parameter für die Anwendungen
DISPLAY="$1"
COOKIE="$2"
APP="$3"
# Hack, weil das leider nicht korrekt gesetzt wird
export XAUTHORITY=${HOME}/.Xauthority
/usr/bin/xauth add $DISPLAY MIT-MAGIC-COOKIE-1 $COOKIE
export DISPLAY
shift 3
$APP "$@"
exit 0

Nebenbei bemerkt ist die Anleitung
https://wiki.debianforum.de/X-Anwendung ... %C3%BChren
auch längst veraltet bzw fehlerhaft. Vielleicht sollte sie mal jemand korrigieren oder entfernen.
Zuletzt geändert von debmatrix am 19.12.2023 22:23:39, insgesamt 1-mal geändert.

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von jph » 18.12.2023 15:56:43

X liegt in Agonie.

Möglicherweise kann man dir helfen, wenn du uns verrätst, was das Ziel der Übung sein soll bzw. weshalb du Firefox als anderer User ausführen willst.

uname
Beiträge: 12077
Registriert: 03.06.2008 09:33:02

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von uname » 18.12.2023 16:00:32

Ich würde denn Sinn auch gerne verstehen. Soll das Sicherheitsgründe haben? Ich denke da gibt es weit bessere Lösungen, oder?

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von jph » 18.12.2023 16:02:54

Eben. AppArmor oder FireJail, oder – Kanonen auf Spatzen? – eine VM.

debmatrix
Beiträge: 63
Registriert: 12.06.2023 07:48:06

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von debmatrix » 19.12.2023 00:07:16

Vielen Dank für eure Antworten. Der Grund ist Sicherheit.

Tatsächlich plane ich das ganze mit Firejail und Qemu zu lösen, da ich jetzt Zeit für diesen Schritt habe. Das Ganze ist also erst halb fertig.

Der Grund dafür ist, dass ich mit Iptables speziell nur die Benutzer-ID des anderen Benutzers freigeben möchte. Ich habe eine Umgebung erstellt, in der nur bestimmte Benutzer-IDs ausgehend ins Internet dürfen, um sicherzustellen, dass eine andere laufende Webanwendung keine ungewollten Verbindungen aufbaut (Lecks), da diese nur auf bestimmte Weise nach außen zugreifen darf.

Deshalb wollte ich eigentlich die restlichen Webanwendungen über die Ausführung als anderer Benutzer eine bestimmte Benutzer-ID in Iptables zuweisen.

Bisher ist es mir jedoch weder mit Qemu noch mit Firejail gelungen, diese als anderen Benutzer auszuführen, zum Beispiel mit Firefox-ESR.

Also nochmal mit anderen kürzeren Worten klar auf den Punkt:
Ich möchte sowohl mit Firejail als auch mit Qemu KVM verschiedene Webanwendungen unter einem anderen, speziell zu diesem Zweck erstellten Benutzernamen ausführen, um diesem speziellen Benutzernamen in Iptables Freigabe zu gewähren.

Benutzeravatar
jph
Beiträge: 1049
Registriert: 06.12.2015 15:06:07
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Greven/Westf.

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von jph » 19.12.2023 09:12:19

debmatrix hat geschrieben: ↑ zum Beitrag ↑
19.12.2023 00:07:16
Vielen Dank für eure Antworten. Der Grund ist Paranoia.
Ich war so frei, dein Zitat zu korrigieren. :P

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von mat6937 » 19.12.2023 09:21:15

debmatrix hat geschrieben: ↑ zum Beitrag ↑
19.12.2023 00:07:16
Also nochmal mit anderen kürzeren Worten klar auf den Punkt:
Ich möchte ... verschiedene Webanwendungen unter einem anderen, speziell zu diesem Zweck erstellten Benutzernamen ausführen, ...
Was für Webanwendungen sind das?
Evtl. kannst Du diese Webanwendungen auch mit _usereigenen_ service-units ausführen. Dafür muss dieser andere Benutzer (user) nicht am System angemeldet sein.

uname
Beiträge: 12077
Registriert: 03.06.2008 09:33:02

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von uname » 19.12.2023 09:21:37

Sichtheit, Paranoia, ...

Gegen den wahrscheinlich größten Schadcode der vergangenen Jahrzehnte, den Virus Emotet, hat Debian GNU/Linux die vielleicht beste Sicherheitsstrategie:
Der Virus ist nur unter Windows lauffähig. :facepalm:

Benutzeravatar
thunder11
Beiträge: 1359
Registriert: 19.04.2023 09:08:30

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von thunder11 » 19.12.2023 13:22:48

debmatrix hat geschrieben: ↑ zum Beitrag ↑
19.12.2023 00:07:16
Tatsächlich plane ich das ganze mit Firejail und Qemu zu lösen, da ich jetzt Zeit für diesen Schritt habe. Das Ganze ist also erst halb fertig.
Kannst ja mal folgendes testen (das ist der FF von Mozilla,desahalb /opt)

Code: Alles auswählen

firejail  --private=~/.privat-browser/Firefox/   /opt/firefox_beta/firefox --no-remote
Im Anschluss kannst du dann mal testen, wo du noch Zugriff hast und ob dir das reicht. Mir schon.
Verzeichnis muss du vorher anlegen.
FF ist in einem Unterverzeichnis, da sich da noch Andere tummeln.

Edit:
Vorteile: FF wird so automaisch aus dem Programmverzeichnis /opt aktualisiert
Addons können installiert werden
Zugriff nur auf:

Code: Alles auswählen

ls -al ~/.privat-browser/Firefox/
insgesamt 48
drwxr-xr-x 9 thunder thunder 4096 22. Mär 2022  .
drwxr-xr-x 5 thunder thunder 4096  8. Okt 2020  ..
-rw-r--r-- 1 thunder thunder 3526  6. Aug 2020  .bashrc
drwx------ 5 thunder thunder 4096 24. Mai 2021  .cache
drwx------ 5 thunder thunder 4096 24. Mai 2021  .config
drwxr-xr-x 2 thunder thunder 4096 24. Mai 2021  Desktop
drwxr-xr-x 2 thunder thunder 4096 24. Mai 2021  Downloads
-rw-r--r-- 1 thunder thunder   26 22. Mär 2022  .inputrc
drwx------ 3 thunder thunder 4096  6. Aug 2020  .local
drwx------ 5 thunder thunder 4096 24. Mai 2021  .mozilla
drwx------ 2 thunder thunder 4096  6. Aug 2020  .pki
-rw------- 1 thunder thunder   49 19. Dez 13:23 .Xauthority

debmatrix
Beiträge: 63
Registriert: 12.06.2023 07:48:06

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von debmatrix » 19.12.2023 18:05:47

mat6937 hat geschrieben: ↑ zum Beitrag ↑
19.12.2023 09:21:15
debmatrix hat geschrieben: ↑ zum Beitrag ↑
19.12.2023 00:07:16
Also nochmal mit anderen kürzeren Worten klar auf den Punkt:
Ich möchte ... verschiedene Webanwendungen unter einem anderen, speziell zu diesem Zweck erstellten Benutzernamen ausführen, ...
Was für Webanwendungen sind das?
Evtl. kannst Du diese Webanwendungen auch mit _usereigenen_ service-units ausführen. Dafür muss dieser andere Benutzer (user) nicht am System angemeldet sein.
Eher diverse Client Artige Anwendungen wie Firefox, Torbrowser, manchmal weitere.

debmatrix
Beiträge: 63
Registriert: 12.06.2023 07:48:06

Re: Webanwendung als anderer Benutzer ausführen Problem

Beitrag von debmatrix » 19.12.2023 18:19:20

Danke. Aber dann kann ich in Iptables immer noch nicht die user-id freigeben.

Ich habe bereits folgendes versucht:

Code: Alles auswählen

sudo -u inetuser /usr/bin/kvm -M q35 -name surfing -cpu host -daemonize -m 8000 -device virtio-gpu -vga virtio -device ich9-intel-hda -cdrom ./archbang-*.iso -k de
kein zugriff auf kvm (sudoers)

Code: Alles auswählen

sudo -u inetuser firejail --name=inetuser --noprofile /usr/bin/firefox-esr --no-remote -P
Your Firefox profile cannot be loaded. It may be missing or inaccessible.

Antworten