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 [email protected]
[email protected] 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?

Alexander Bird
źródło

Odpowiedzi:

4

Aby bezpośrednio odpowiedzieć na twoje pytanie:

ssh [email protected] su grandplan -c “script /dev/null -qc \"screen\""

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

Joseph Riopelle
źródło
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?

ento
źródło
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.

superfro
źródło