사용자로 ssh 할 때 gnu 화면을 사용하지만 다른 사용자로 su


8

다음은 gnu screen을 사용하려고 할 때 발생하는 현상입니다. 본질적으로 다른 사용자로 su 할 때까지 모두 잘 작동합니다. 그런 다음 Cannot open your terminal '/dev/pts/7' - please check.오류가 발생합니다

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:~$ 

sbird로, gradplan으로 su로 로그인하고, 여전히 화면을 사용하려면 어떻게해야합니까?

답변:


4

질문에 직접 대답하려면 :

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

/ dev / pts / X의 권한을 변경하지 마십시오. 불필요한 보안 허점이 생길뿐입니다.


11

script /dev/null시작하기 전에 입력하십시오 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]
$

참고 : ServerFault : 왜 'script'를 / dev / null /으로 리디렉션하면 다른 사용자로 인해 'screen'이 작동합니까?


미래의 독자들에게는 실제로 화면에 su'ing하는 것이 실제로 더 나은 연습이라는 것을 알았습니다. 그러나 이것이 실제로 더 나은 질문에 답하기 때문에 올바른 대답으로 받아 들였습니다.
Alexander Bird

1

만약 너라면:

ls -l /dev/pts/7

sbird가 소유하고 있음을 알 수 있습니다. gradplan으로 전환하면 해당 장치를 만질 수있는 권한이 없습니다.

당신은 시도 할 수 있습니다

chmod a+rw /dev/pts/X

화면을 표시하기 전에 (X는 현재 연결되어있는 pt 번호입니다.)

또는 sbird로 스크리닝 한 다음 각 화면 창에서 su를 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.