Frage

Jeder Hallo hat eine Antwort. Zweiter TTY wird ein Hallo an den Sender TTY und umgekehrt an:

echo 'echo hello > /dev/pts/1' > /dev/pts/0

Der erste Empfänger soll „Hallo“ an den ursprünglichen Absender schicken, aber es funktioniert nicht. Was ist falsch?

[Klarstellung] Ich habe zwei Schalen ausgeführt wird. / Dev / pts / 1 der anfängliche Absender ist.

War es hilfreich?

Lösung

Wenn Sie Ihren Befehl echo senden Sie buchstäblich nur /dev/pts/0 sind die Ausgabe dieses Echo des anderen TTY Senden der Ausgabe - Sie sind nicht auf die andere TTY des Senden input Puffer. Daher verschachtelter echo Befehl wird einfach auf der anderen TTY angezeigt, aber nicht ausgeführt.

Es gibt eine ioctl() Anruf TIOCSTI, die zu fälschen Eingabe auf einem anderen TTY verwendet werden können, aber nur, wenn Sie „schreiben“ die Erlaubnis, dass andere TTY.

Vor vielen Jahren erinnere ich mich, dass einige Freunde und ich Löcher auf einigen UNIX-Versionen entdeckt, die nicht korrekt die Sicherheitsberechtigungen auf TIOCSTI zusetzen haben. Wenn root einen Terminal in irgendwo angemeldet verlassen hatte war es möglich, die Root-Benutzer-Terminal-Typen in Befehlen in Ihrem Namen zu machen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top