Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
/usr/bin/script hängt und frisst dann CPU
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6396

PostPosted: Sun Nov 22, 2020 2:46 pm    Post subject: /usr/bin/script hängt und frisst dann CPU Reply with quote

Ich benutze
Code:
/usr/bin/script -q -e /dev/nul

indirekt über sudox regelmäßig, um das Rechteproblem für screen/tmux zu lösen - m.W. gibt es bislang keinen anderen sicheren Workaround dafür als die Benutzung von script (oder einem selbstgeschriebenen Binary mit ähnlicher Funktionalität für den Spezialfall).

Leider bleibt das einmal alle 2-3 Tage hängen, vollkommen zufällig. Offensichtlich bin ich nicht der einzige, der dieses Problem hat: https://bugs.launchpad.net/ubuntu/+source/util-linux/+bug/1558236

Hat noch jemand dieses Problem, oder einen besseren Workaround?
(Oder noch besser: Weiß jemand, wie man die Rechteproblematic von tmux/screen ohne /usr/bin/script lösen kann? Ich will halt vermeiden, dass ein User letztlich Zugriff auf ein Root-Terminal bekommt, was sich vermutlich nur durch Erstellen eines neuen pty mit passenden Rechten lösen lässt)

Das Problem tritt zu selten auf, als dass sich ein ordentliches Debuggen leicht durchführen ließe oder den Aufwand lohnen würde.
Back to top
View user's profile Send private message
mike155
Advocate
Advocate


Joined: 17 Sep 2010
Posts: 2566
Location: Frankfurt, Germany

PostPosted: Sun Nov 22, 2020 3:38 pm    Post subject: Reply with quote

Es klingt, als hättest Du ein interessantes Problem - von dem ich auch etwas lernen könnte! Ich verstehe nur leider nicht, worum es geht.
  1. Welches Rechteproblem? Kannst Du bitte ein Beispiel nennen? Geht es darum, dass User A eine tmux/screen Session gestartet hat und User B diese übernehmen soll? Und deshalb sudo verwendet wird?

  2. Wie hilft 'script' dabei? Soweit ich weiß, verwendet man das Programm, um Sessions mitzuschreiben? Wie hilft es dabei, ein Rechte-Problem zu lösen?
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6396

PostPosted: Sun Nov 22, 2020 8:34 pm    Post subject: Reply with quote

https://serverfault.com/questions/255521/why-does-redirecting-script-to-dev-null-allow-screen-to-work-while-sued-a

Das Problem ist: Wenn Du als BenutzerA mit sudo root wirst, kann theoretisch jedes Programm mit den Rechten von BenutzerA root-Kommandos ausühren, indem es in das pty schreibt. Die File-Rechte des pty im Nachhinein zu verändern, wäre nur Augenwischerei, weil das Programm bereits vorher einen Handle halten könnte: Das pty muss vom "Zielnutzer" (im Beispiel: root) erstellt werden. Das einzige "Standard"-Kommando, das dies kann, ist m.W. script. Natürlich könnte man sich theoretisch sein eigenes C-Programm schreiben, aber script sollte einfach genug sein. Wenn es nur nicht diesen Bug hätte...
Back to top
View user's profile Send private message
firefly
Advocate
Advocate


Joined: 31 Oct 2002
Posts: 4605

PostPosted: Sun Nov 22, 2020 9:48 pm    Post subject: Reply with quote

mv wrote:
https://serverfault.com/questions/255521/why-does-redirecting-script-to-dev-null-allow-screen-to-work-while-sued-a

Das Problem ist: Wenn Du als BenutzerA mit sudo root wirst, kann theoretisch jedes Programm mit den Rechten von BenutzerA root-Kommandos ausühren, indem es in das pty schreibt. Die File-Rechte des pty im Nachhinein zu verändern, wäre nur Augenwischerei, weil das Programm bereits vorher einen Handle halten könnte: Das pty muss vom "Zielnutzer" (im Beispiel: root) erstellt werden. Das einzige "Standard"-Kommando, das dies kann, ist m.W. script. Natürlich könnte man sich theoretisch sein eigenes C-Programm schreiben, aber script sollte einfach genug sein. Wenn es nur nicht diesen Bug hätte...

Öhm der link beschreibt aber ein anderes Problem.
Dort geht es darum, dass screen nicht gestartet werden kann wenn via su der Benutzer gewechselt wurde.
Und nicht das von dir beschriebene Problem.

Edit: Ich hab mal versucht das Problem nachzustellen
Ausgangslage:
Bin als mein Hauptuser in einer X11 session angemeldet, und urxvt als shell ist gestartet.
Es gibt einen user "test"
Quote:
mainuser@host $ ls -l $(tty)
crw--w---- 1 mainuser tty 136, 1 Nov 22 23:03 /dev/pts/1

Quote:
mainuser@host $ su test
test@host $ ls -l $(tty)
crw--w---- 1 mainuser tty 136, 1 22. Nov 23:09 /dev/pts/1


Hier hat der hauptuser zugriff auf das unterliegende pseudo tty obwohl die shell selbst als user "test" läuft.

Quote:
test@host $ screen
test@host $ ls -l $(tty)
crw--w---- 1 test tty 136, 4 22. Nov 23:12 /dev/pts/4

Die screen session selbst läuft in einem separaten pseudo tty auf welches nur der user test zugriff hat.

Nach der ausgabe würde ich vermuten das es hier das von dir beschriebene Problem nicht existiert.
Vorausgesetzt ich übersehe etwas nicht.

Das gleiche nun mit script
Quote:
mainuser@host $ ls -l $(tty)
crw--w---- 1 mainuser tty 136, 1 Nov 22 23:13 /dev/pts/1

Quote:
mainuser@host $ su test
test@host $ ls -l $(tty)
crw--w---- 1 mainuser tty 136, 1 22. Nov 23:13 /dev/pts/1

Quote:
test@host $ script
test@host $ ls -l $(tty)
crw--w---- 1 test tty 136, 4 22. Nov 23:14 /dev/pts/4


script erzeugt ein neues pseudo tty mit den rechten das user welches script gestartet hat

Quote:
test@host $ screen
test@host $ ls -l $(tty)
crw--w---- 1 test tty 136, 5 22. Nov 23:16 /dev/pts/5


Und screen erzeugt wiederum ein neues pseudo tty

Ich kann da jetzt keinen Unterschied erkennen.
Aber wie schon gesagt es kann gut sein das ich ein wichtiges detail übersehe.
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
mike155
Advocate
Advocate


Joined: 17 Sep 2010
Posts: 2566
Location: Frankfurt, Germany

PostPosted: Mon Nov 23, 2020 12:32 am    Post subject: Reply with quote

Quote:
Das Problem ist: Wenn Du als BenutzerA mit sudo root wirst, kann theoretisch jedes Programm mit den Rechten von BenutzerA root-Kommandos ausühren, indem es in das pty schreibt.

Ich kann das Problem nicht nachstellen. Ich kann zwar Befehle in das Pseudo-Device des sudo/screen-Prozesses schreiben - aber die erscheinen nur auf dem Ausgabe-Fenster, nicht aber im Standardeingabe-Kanal des Screen-Prozesses. Deshalb werden sie auch nicht ausgeführt.

Gibt es das Problem wirklich? Das wäre doch bestimmt bekannt? Oder war das mal ein Security-Bug, der zwischenzeitlich gelöst wurde? Vielleicht noch aus alten SunOS-Zeiten? :)
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6396

PostPosted: Mon Nov 23, 2020 5:46 am    Post subject: Reply with quote

firefly wrote:
Öhm der link beschreibt aber ein anderes Problem.

Die Erklärungen im Link enthalten aber mehr Informationen. Dort steht u.a., dass screen/tmux neuerdings selbst ein tty anlegt, und in den Kommentaren, dass dies z.B. bei remote-Sessions nicht zuverlässig funktioniert. Und das angesprochene Problem wird damit nicht gelöst: die Screen-Session wird ja i.d.R. irgendwann beendet. Es ist eben eher ein sudo- als ein screen-Problem, wobei es halt nur bei letzterem leichter sichtbar wird.
Quote:
Hier hat der hauptuser zugriff auf das unterliegende pseudo tty obwohl die shell selbst als user "test" läuft.

Eben.
Quote:
script erzeugt ein neues pseudo tty mit den rechten das user welches script gestartet hat

Ja, das sollte das einzige ausgeführte Kommando des remote-Nutzers sein. Deswegen habe ich dieses als Deafult so in sudox eingebaut.


Last edited by mv on Mon Nov 23, 2020 5:55 am; edited 2 times in total
Back to top
View user's profile Send private message
mv
Watchman
Watchman


Joined: 20 Apr 2005
Posts: 6396

PostPosted: Mon Nov 23, 2020 5:50 am    Post subject: Reply with quote

mike155 wrote:
Gibt es das Problem wirklich? Das wäre doch bestimmt bekannt?

Es gab Seiten, die das genauer beschrieben, aber ich finde sie im Moment nicht. Der "multiuser"-Modus von screen ist deswegen als Workaround geschaffen worden, aber der hat wiederum andere Probleme: screen muss dazu suid root sein.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum