以下是尝试使用 gnu screen 时发生的情况。基本上,一切都正常,直到我以另一个用户身份登录。然后我收到一个Cannot open your terminal '/dev/pts/7' - please check.
错误
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:~$
我如何以 sbird 身份登录,然后通过 su 进入 gradplan,并仍然使用屏幕?
答案1
直接回答你的问题:
ssh [email protected] su grandplan -c “script /dev/null -qc \"screen\""
不要更改 /dev/pts/X 上的权限 - 这只会引入不必要的安全漏洞。
答案2
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:为什么将“脚本”重定向到 /dev/null/ 会允许“屏幕”在以其他用户身份登录时工作?
答案3
如果你:
ls -l /dev/pts/7
您将看到它归 sbird 所有,当您切换到 gradplan 时,他无权接触该设备。
你可以尝试做
chmod a+rw /dev/pts/X
(X 是您当前连接到的 pts #,因为它会改变)在您进行筛选之前。
或者您可以以 sbird 的身份进行筛选,然后在每个屏幕窗口中进行筛选。