解决screen Cannot open your terminal '/dev/pts/1'问题
from:http://blog.sina.com.cn/s/blog_704836f401010osn.html
解決screen?Cannot?open?your?terminal?'/dev/pts/1'問題
問題描述:
?
??userA首先登錄系統,使用screen開啟了一個session,然后detach這個窗口。
??userB然后登錄系統,通過su -userA 變成userA,然后使用screen-r 恢復之前detached窗口,這時系統報如下錯誤:
?
??Cannot open your terminal'/dev/pts/1' - please check.
?
解決方法:
?
??userB在su -userA以后,執行如下命令即可:
?
??script /dev/null
?
注意: 有人提到 chmod 777/dev/pts/1,這么干的人真是誤人子弟,雖然這么做的確能解決這個問題,但是會帶來極大的安全問題!!!
?
為什么這條命令能解決問題?
?
一般人看到上面這里估計就馬上回去試驗了,但是,等等,你不想知道為什么這個命令會有作用嗎?它是怎么起作用的呢?
?
我們來過一遍整個的操作步驟:
?
首先,usera登錄到系統中,我們使用tty命令查看一下分配給他的tty,然后看一下這個tty的權限,然后用戶執行screen命令。
?
usera@localhost ~ $ ssh usera@remotehost
usera@remotehost ~ $ tty
/dev/pts/1
usera@remotehost ~ $ ls -l /dev/pts/1
crw--w---- 1 usera tty 136, 12011-01-09 20:14 /dev/pts/1
usera@remotehost ~ $ screen
?
我們觀察上邊的輸出,發現usera對于/dev/pts/1具有讀寫權限,它所在組成員對這個tty具有寫權限,其他用戶不能訪問這個tty。
?
然后,userb也登錄到系統中,同樣我們使用tty命令查看一下分配給他的tty,然后看一下這個tty的權限
userb@localhost ~ $ ssh userb@remotehost
userb@remotehost ~ $ tty
/dev/pts/2
userb@remotehost ~ $ ls -l /dev/pts/2
crw--w---- 1 userb tty 136, 22011-01-09 20:20 /dev/pts/2
?
觀察輸出,userb被分配了/dev/pts/2,也是對于/dev/pts/2具有讀寫權限,它所在組成員對這個tty具有寫權限,其他用戶不能訪問這個tty。
?
然后userb通過su -usera命令變成usera,同樣我們使用tty命令查看一下分配給他的tty,然后看一下這個tty的權限
userb@remotehost ~ $ sudo su - usera
[sudo] password for userb:
usera@remotehost ~ $ tty
/dev/pts/2
usera@remotehost ~ $ ls -l /dev/pts/2
crw--w---- 1 userb tty 136, 22011-01-09 20:20 /dev/pts/2
?
AHA!!? 注意了,我們看到雖然userb已經變成了usera,但是他所使用的tty并沒有改變,仍然是/dev/pts/2。這就是為什么執行screen命令會報錯的原因了,因為所有命令此時是使用usera帳戶執行的,但是/dev/pts/2的讀寫權限屬于userb,所以所有試圖控制/dev/pts/2的訪問都被拒絕了!
?
那么我們接下來看一下 script/dev/null做了些什么,使得screen命令能執行呢?
?
usera@remotehost ~ $ script /dev/null
Script started, file is /dev/null
usera@remotehost ~ $ tty
/dev/pts/3
usera@remotehost ~ $ ls -l /dev/pts/3
crw--w---- 1 usera tty 136, 32011-01-09 20:36 /dev/pts/3
?
AHA!!! 看到了嗎?我們實際上是得到了一個新的tty ---> /dev/pts/3,因此screen命令能夠執行了,因為 /dev/pts/3這個tty的所有者是usera!
參考文檔:
Sharing a screen sessionwith another administrator on a Linux system
總結
以上是生活随笔為你收集整理的解决screen Cannot open your terminal '/dev/pts/1'问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: InfluxDB 开源分布式时序、事件和
- 下一篇: wget指定目录下载以及其它的使用方式