非 root 的“螢幕正在終止”

非 root 的“螢幕正在終止”

當我嘗試以非 root 使用者身分執行 screen 時,我得到:

screen

[screen is terminating]

立即,儘管它對於 root 來說效果很好

ls -alh /usr/bin/screen
-rwxr-sr-x 1 root screen 465K Jun  9 20:30 /usr/bin/screen

在谷歌搜尋時,我注意到提到了 /etc/fstab,這是我的:

# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/md1        /       ext4    errors=remount-ro       0       1
/dev/md2        /home   ext4    defaults        1       2
/dev/sda3       swap    swap    defaults        0       0
/dev/sdb3       swap    swap    defaults        0       0
proc            /proc   proc    defaults                0       0
sysfs           /sys    sysfs   defaults                0       0
tmpfs           /dev/shm        tmpfs   defaults        0       0
devpts          /dev/pts        devpts  defaults        0       0

這是在透過 ssh 存取的專用伺服器上新安裝的 centos 7 上進行的( TTY 是 pts )

任何幫助,將不勝感激。

screen -ls    
No Sockets found in /var/run/screen/S-user.

ls -la /var/run/screen/S-user
total 0
drwx------ 2 user user 40 Jul 10 18:23 .
drwxrwxr-t 4 root     screen   80 Jul 10 17:59 ..

答案1

我在專用 CentOS 7 伺服器上遇到了這個問題,並遇到了此錯誤報告中描述的修復: bugs.centos.org/view.php?id=7395

這是專用於添加gid=5到 fstab 中的 devpts 的一個很好的解決方案。screen現在所有用戶都可以按預期工作。

然而,當我試圖解決 CentOS 7 的 OpenVZ 容器上的問題時,我遇到了這個線程。

我想我會透過這種方式回去看看是否可以幫助其他人。 (儘管這不是一個非常漂亮的方法。)

在終端機中:

chmod u+s /usr/bin/screen
chmod 755 /var/run/screen

答案2

確保沒有其他人screen在使用該設備

這可以透過以下方式實現在 Linux 中如何確定哪個進程開啟了檔案?:

sudo lsof /dev/ttyS0

如果是這種情況,然後終止該進程。

由於某種原因,在這種情況下,sudo screen仍然可以訪問該設備,但該連接將丟失字符,而這些字符將被其他screen.

確保使用者對該檔案有讀寫權限

例如,在 Ubuntu 上,您想要將使用者新增至dialout群組:https://askubuntu.com/a/133244/52975

答案3

可能是你的設定檔有錯誤

〜/.screenrc

嘗試檢查它或創建一個暗淡的。

相關內容