Forum: PC Hard- und Software Linux: Apps wie bei Android mit anderer UID/GID ausführen?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von tux (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hi,
wie kann man Apps, wie bei Android, mit anderer UID/GID ausführen, ohne 
das man nach einem Passwort gefragt wird?

Z.B. soll Firefox mit der UID=1100 einfach vom Desktop aus gestartet 
werden können (mit einem noch zu schreibenden Script).

von Dr. Sommer (Gast)


Bewertung
0 lesenswert
nicht lesenswert
su, sudo, gksudo
Bei grafischen Programmen muss man darauf achten dass der andere User 
auch Zugriff auf X hat, also XAUTHORITY durchgeleitet und lesbar ist.

von setuid (Gast)


Bewertung
0 lesenswert
nicht lesenswert
setuid bit setzen.

von Axel S. (a-za-z0-9)


Bewertung
0 lesenswert
nicht lesenswert
tux schrieb:

> wie kann man Apps, wie bei Android, mit anderer UID/GID ausführen, ohne
> das man nach einem Passwort gefragt wird?

Linux hat keine "Apps". Um ein Programm mit einer anderen Nutzerkennung 
als der eigenen auszuführen, gibt es sudo. Und /etc/sudoers um die 
Passwort-Abfrage zu umgehen.

> Z.B. soll Firefox mit der UID=1100 einfach vom Desktop aus gestartet
> werden können (mit einem noch zu schreibenden Script).

Tatsächlich schalten viele Programme, bei denen das sinnvoll ist, auf 
einen "ungefährlichen" Nutzer. Was natürlich voraussetzt, daß das 
Programm überhaupt erst mal mit zu vielen Rechten gestartet wurde. Was 
bei einem Programm, das aus einer Nutzersession heraus gestartet wurde, 
regelmäßig nicht der Fall ist.
Speziell Firefox will/muß auf viele Files in $HOME zugreifen, weswegen 
es deutlich sinnvoller sein dürfte, komplett auf einen anderen Nutzer 
umzuschalten. Mit eigenem Home und allem.

von Rolf M. (rmagnus)


Bewertung
0 lesenswert
nicht lesenswert
Axel S. schrieb:
>> Z.B. soll Firefox mit der UID=1100 einfach vom Desktop aus gestartet
>> werden können (mit einem noch zu schreibenden Script).
>
> Tatsächlich schalten viele Programme, bei denen das sinnvoll ist, auf
> einen "ungefährlichen" Nutzer. Was natürlich voraussetzt, daß das
> Programm überhaupt erst mal mit zu vielen Rechten gestartet wurde. Was
> bei einem Programm, das aus einer Nutzersession heraus gestartet wurde,
> regelmäßig nicht der Fall ist.

Ich kann schon den Wunsch nachvollziehen, dem Browser einen eigenen User 
zu spendieren, der nur auf genau das Zugriff hat, was er braucht. Das 
komplette Home-Verzeichnis des regulären Benutzers gehört z.B. nicht 
dazu.

> Speziell Firefox will/muß auf viele Files in $HOME zugreifen, weswegen
> es deutlich sinnvoller sein dürfte, komplett auf einen anderen Nutzer
> umzuschalten. Mit eigenem Home und allem.

Was verstehst du unter "komplett auf einen anderen Nutzer umschalten"? 
Wie schaltet man nur halb um?

von Axel S. (a-za-z0-9)


Bewertung
0 lesenswert
nicht lesenswert
Rolf M. schrieb:
> Axel S. schrieb:
>>> Z.B. soll Firefox mit der UID=1100 einfach vom Desktop aus gestartet
>>> werden können (mit einem noch zu schreibenden Script).
>>
>> Tatsächlich schalten viele Programme, bei denen das sinnvoll ist, auf
>> einen "ungefährlichen" Nutzer. Was natürlich voraussetzt, daß das
>> Programm überhaupt erst mal mit zu vielen Rechten gestartet wurde. Was
>> bei einem Programm, das aus einer Nutzersession heraus gestartet wurde,
>> regelmäßig nicht der Fall ist.
>
> Ich kann schon den Wunsch nachvollziehen, dem Browser einen eigenen User
> zu spendieren, der nur auf genau das Zugriff hat, was er braucht. Das
> komplette Home-Verzeichnis des regulären Benutzers gehört z.B. nicht
> dazu.

Falls das die Intention des TE gewesen sein sollte, dann hat er es 
versäumt, das auch kund zu tun. In jedem Fall hilft seine "Lösung", den 
Firefox mit einer anderen UID/GID zu starten, dabei nahezu gar nicht. 
Auf das $HOME dieses anderen Nutzers hat Firefox dann genauso Zugriff 
wie auf alle für diesen Nutzer lesbaren oder gar schreibbaren Resourcen 
des Computers. Was welt-lesbare Dateien wie /etc/passwd in jedem Fall 
einschließt.

Die richtige Lösung braucht wenigstens noch eine chroot-Umgebung bzw. 
gleich einen Container. Siehe z.B. 
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_atomic_host/7/html/container_security_guide/locked_down_secure_firefox_in_a_container 
(und sei es nur, um mal eine Liste all der Dinge zu sehen, von denen man 
einen Firefox u.U. fernhalten wollen würde)

>> Speziell Firefox will/muß auf viele Files in $HOME zugreifen, weswegen
>> es deutlich sinnvoller sein dürfte, komplett auf einen anderen Nutzer
>> umzuschalten. Mit eigenem Home und allem.
>
> Was verstehst du unter "komplett auf einen anderen Nutzer umschalten"?

Ausloggen. Neu einloggen. Das absolute Minimum besteht darin, eine 
Login-Shell für den anderen Nutzer zu starten.

> Wie schaltet man nur halb um?

So wie es der TE plant. Was meinst du, welchen Wert $HOME für den derart 
gestarteten Firefox hat und wo der dann nach seinen Bookmarks und 
sonstigen Laufzeitdaten sucht?

von DPA (Gast)


Bewertung
0 lesenswert
nicht lesenswert
setuid schrieb:
> setuid bit setzen.

Das ist nicht ausreichend. Ein Prozess hat 3 UIDs und GIDs: real, 
effective und saved. Das Setuid bit setzt nur die effective uid, das 
Programm könnte also zum anderen Nutzer zurückwechseln.

Da bleibt eigentlich nur sudo, ist aber auch nicht ideal.

Ich habe mir mal Überlegungen dazu gemacht, was noch fehlen würde, um 
Programme schön voneinander zu trennen: 
https://github.com/Daniel-Abrecht/Discretionary-Program-Access-Control/blob/proposal/Discretionary%20Program%20Access%20Control.md

Irgendwann will ich das mal als LSM implementieren, ich bin aber noch 
nicht dazu gekommen.

von Lukas Straub (Gast)


Bewertung
0 lesenswert
nicht lesenswert
In dem Fall würde ich firejail mit der --private option empfehlen. Das 
hat auch vordefinierte Profile für viele Programme um zsätzlich syscalls 
und Co einzuschränken.

von Rolf M. (rmagnus)


Bewertung
0 lesenswert
nicht lesenswert
Axel S. schrieb:
>> Wie schaltet man nur halb um?
>
> So wie es der TE plant. Was meinst du, welchen Wert $HOME für den derart
> gestarteten Firefox hat und wo der dann nach seinen Bookmarks und
> sonstigen Laufzeitdaten sucht?

Das kommt darauf an, wie man ihn startet. Siehe "man sudo", insbeondere 
der Parameter -i.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.