Christian Garbs
2024-10-15 17:59:26 UTC
Mahlzeit!
Ich bin dabei, ein paar Spiele von itch.io auszuprobieren und habe
überlegt, ob ich die irgendwie einfach sandboxen kann.
systemd kann das ja grundsätzlich.
systemd-run --user kann man mit "-p" einen Stapel Properties mitgeben,
z.B. LockPersonality=yes, PrivateTmp=yes, ProtectHome=tmpfs oder
PrivateNetwork=yes (vmtl. wäre localhost besser, aber egal, siehe unten).
Um den X-Server und pulseaudio zu erreichen, muss ich mit "-E"
einzelne Umgebungsvariablen durchreichen. Das wird ein wenig
ausprobieren, das ist mir klar.
Ich bin allerdings schon beim ersten Test über das Problem gestolpert,
dass ich als User gar keine Rechte habe, Rechtebeschränkungen zu
setzen, da kommt dann sowas:
- PrivateNetwork=yes is configured, but network namespace setup
failed, ignoring: Operation not permitted
- ProtectHostname=yes is configured, but UTS namespace setup is
prohibited (container manager?), ignoring namespace setup.
- Failed to drop capabilities: Operation not permitted
Den Weg, mir ein sudo-Skript zu schreiben, um darüber dann
'systemd-run' mit '-p User=ich' aufzurufen (also im System-Kontext,
statt als --user), will ich nicht gehen - ich will ja
Angriffsoberfläche verkleinern und nicht vergrößern :)
Ist es vielleicht gar nicht möglich, die Rechtebeschränkungen im
User-Kontext zu setzen?
Oder falls doch: Wie macht man das?
Grüße
Christian
PS: Kann man "systemd-run" im Vordergrund loggen lassen?
Mit "--pty --wait" bekomme ich ein paar Infos auf der Konsole zu
sehen, aber die richtigen Logausgaben sind weiterhin nur im
Journal zu finden. Was nervig auszulesen ist, weil der Unit-Name
ja bei jedem Lauf ein anderer ist. Etwas sed(1) hilft da, aber
geht das schöner?
Ich bin dabei, ein paar Spiele von itch.io auszuprobieren und habe
überlegt, ob ich die irgendwie einfach sandboxen kann.
systemd kann das ja grundsätzlich.
systemd-run --user kann man mit "-p" einen Stapel Properties mitgeben,
z.B. LockPersonality=yes, PrivateTmp=yes, ProtectHome=tmpfs oder
PrivateNetwork=yes (vmtl. wäre localhost besser, aber egal, siehe unten).
Um den X-Server und pulseaudio zu erreichen, muss ich mit "-E"
einzelne Umgebungsvariablen durchreichen. Das wird ein wenig
ausprobieren, das ist mir klar.
Ich bin allerdings schon beim ersten Test über das Problem gestolpert,
dass ich als User gar keine Rechte habe, Rechtebeschränkungen zu
setzen, da kommt dann sowas:
- PrivateNetwork=yes is configured, but network namespace setup
failed, ignoring: Operation not permitted
- ProtectHostname=yes is configured, but UTS namespace setup is
prohibited (container manager?), ignoring namespace setup.
- Failed to drop capabilities: Operation not permitted
Den Weg, mir ein sudo-Skript zu schreiben, um darüber dann
'systemd-run' mit '-p User=ich' aufzurufen (also im System-Kontext,
statt als --user), will ich nicht gehen - ich will ja
Angriffsoberfläche verkleinern und nicht vergrößern :)
Ist es vielleicht gar nicht möglich, die Rechtebeschränkungen im
User-Kontext zu setzen?
Oder falls doch: Wie macht man das?
Grüße
Christian
PS: Kann man "systemd-run" im Vordergrund loggen lassen?
Mit "--pty --wait" bekomme ich ein paar Infos auf der Konsole zu
sehen, aber die richtigen Logausgaben sind weiterhin nur im
Journal zu finden. Was nervig auszulesen ist, weil der Unit-Name
ja bei jedem Lauf ein anderer ist. Etwas sed(1) hilft da, aber
geht das schöner?
--
....Christian.Garbs....................................https://www.cgarbs.de
Backward conditioning:
Putting saliva in a dog's mouth in an attempt to make a bell ring.
....Christian.Garbs....................................https://www.cgarbs.de
Backward conditioning:
Putting saliva in a dog's mouth in an attempt to make a bell ring.