Linux - screen nach su - Fehler

nPoday

New Member
Hallo,

ich habe nun ca. 2 Stunden gegoogelt - und komme zu folgendem Resultat:
Bei manchen geht es "Out-of-the-Box", manche nutzen einen "Hack" mit "script /dev/null" der bei mir nicht laufen will und die letzte Fraktion setzt die Rechte auf "/dev/pts/*" anders.

Problem:
Ich will ein Startscript für meine Gameserver schreiben welches diese via "su" mit "screen" unter einem anderem Benutzer ausführt.

Wieso?
Gameserver als "root" auszuführen habe ich mir sagen lassen - sie jetzt nicht so der Hit ;)

Fehler:
Cannot open your terminal '/dev/pts/1' - please check.

Gibt es hierfür eine Lösung? Welche ist "die sauberste / sicherste"? Wieso funktioniert es bei manchen und bei manchen nicht?

Vielen Dank!
 
Schau mal ob du in /etc/sudoers in den Defaults die Option "requiretty" gesetzt hast und wenn ja, dann nimm sie mal testweise heraus.
 
Ich kenne das Problem zu gut.
Habe festgestellt, dass wenn man sich direkt als Nutzer anmeldet, der den Screen starten soll, also nicht root, problemlos reinkommt.
Wenn man jedoch den Umweg über root mit su geht, gehts nicht. Ich löse das so, dass ich mir vor dem
Code:
"su -l USER"
auf /dev/pts mit
Code:
"sudo chmod o+rw /dev/pts/*"
temporär berechtigungen gebe. Dann klappt es auch nach dem su. Ob das die sauberste Lösung ist - keine Ahnung...
 
Wie wäre es, die Screen-Session als root laufen zu lassen und darin dann das Programm mit su auf einen anderem Account laufen zu lassen?

Oder gleich einen ordentlichen Daemonizer wie z.b. supervisord benutzen?
 
Code:
"sudo chmod o+rw /dev/pts/*"
[...]
Ob das die sauberste Lösung ist - keine Ahnung...
Dir ist schon klar, dass du damit alle virtuellen Terminal-Sitzungen world-writeable machst? Wenn eine Terminal-Sitzung mit root gestartet wurde, kann jede UID auf diese Sitzung zugreifen. Das ist dann in Summe unsicherer als den Gameserver gleich als root laufen zu lassen...
 
Gut das mir dieses Konstrukt vor etwa 1,5 Jahren so auf die Nerven gegangen ist, das ich die Screen Session seitdem direkt als "dienste" User starte. ;)
 
Ich würde den Screen weglassen. Letzendlich gibt man vielleicht ein bis zwei mal irgendwelche Befehle direkt in die Konsole des Servers ein und das meisten, wenn man Fehler sucht oder den Server das erste mal einrichtet. In dem Fall kann man den Server auch manuell starten. Der Deamon-Dienst supervisord ist recht einfach zu konfigurieren. Wenn du doch unbedingt screen willst, dann ignoriere meinen Post einfach.

PS: chmod 666 `tty` # ist aber nicht sicher xD
 
Back
Top