użyj ekranu GNU, gdy ssh'ed jako użytkownik, ale su jako inny


8

Poniżej znajduje się, co dzieje się podczas próby użycia ekranu GNU. Zasadniczo wszystko działa dobrze, dopóki nie będę su jako inny użytkownik. wtedy pojawia się Cannot open your terminal '/dev/pts/7' - please check.błąd

l413:~$ ssh sbird@example.com
sbird@example.com password: 
sbird@example:~$ screen
[screen is terminating]
sbird@example:~$ su - gradplan
Password: 
gradplan@example:~$ screen 
Cannot open your terminal '/dev/pts/7' - please check.
gradplan@example:~$ 

Jak mogę zalogować się jako sbird, su do gradplan i nadal używać ekranu?

Odpowiedzi:


4

Aby bezpośrednio odpowiedzieć na twoje pytanie:

ssh sbird@example.com su grandplan -c “script /dev/null -qc \"screen\""

Nie zmieniaj uprawnień na swoim / dev / pts / X - to po prostu wprowadza niepotrzebną lukę bezpieczeństwa.


11

Wpisz script /dev/nullprzed rozpoczęciem screen.

$ su - gradplan
$ screen
Cannot open your terminal '/dev/pts/15' - please check.
$ script /dev/null
Script started, file is /dev/null
$ screen
# do whatever inside the screen
[detached]
$

ref: ServerFault: Dlaczego przekierowanie „skryptu” do / dev / null / pozwala „ekranowi” działać, gdy jest używany jako inny użytkownik?


Dla przyszłych czytelników uznaję, że suing wewnątrz ekranu jest lepszą praktyką, ale ponieważ odpowiada to, o co właściwie prosiłem, uznałem to za właściwą odpowiedź.
Alexander Bird,

1

Jeśli ty:

ls -l /dev/pts/7

Zobaczysz, że jest własnością sbirda, kiedy przejdziesz do gradplan, nie będzie miał pozwoleń na dotknięcie tego urządzenia.

Możesz spróbować zrobić

chmod a+rw /dev/pts/X

(X oznacza, z którym pts # jesteś aktualnie połączony, ponieważ to się zmieni) przed ekranem.

Lub możesz przesłać jako sbird, a następnie w każdym oknie ekranu tam.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.