非根用户的“屏幕正在终止”

Rob*_*Rob 15 linux centos gnu-screen centos-7

当我尝试以非 root 用户身份运行 screen 时,我得到:

screen

[screen is terminating]
Run Code Online (Sandbox Code Playgroud)

立即,虽然它适用于 root

ls -alh /usr/bin/screen
-rwxr-sr-x 1 root screen 465K Jun  9 20:30 /usr/bin/screen
Run Code Online (Sandbox Code Playgroud)

在谷歌搜索时,我注意到提到了 /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
Run Code Online (Sandbox Code Playgroud)

这是在通过 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 ..
Run Code Online (Sandbox Code Playgroud)

小智 16

我在专用 CentOS 7 服务器上遇到了这个问题,并且遇到了这个错误报告中描述的修复: bugs.centos.org/view.php?id=7395

这是 Dedicated to add gid=5to devpts in fstab 的一个很好的解决方案。screen现在可以为所有用户按预期工作。

但是,我在尝试解决 CentOS 7 的 OpenVZ 容器上的问题时遇到了这个线程。由于没有办法编辑服务器的 fstab(据我所知),我发现以下内容解决方法修复了它。

我想我会通过这种方式退回去看看它是否可以帮助其他人。 (虽然这不是一种非常漂亮的方式。)

在终端:

chmod u+s /usr/bin/screen
chmod 755 /var/run/screen
Run Code Online (Sandbox Code Playgroud)


Cir*_*郝海东 5

确保没有其他人screen在使用该设备

这可以通过如何确定哪个进程在 Linux 中打开了文件来实现

sudo lsof /dev/ttyS0
Run Code Online (Sandbox Code Playgroud)

如果是这种情况,然后终止该进程。

出于某种原因,在这种情况下,sudo screen仍然可以访问设备,但是该连接将丢失字符,这些字符会被其他screen.

确保用户对文件具有读写权限

例如在 Ubuntu 上,您想将用户添加到dialout组中:https : //askubuntu.com/a/133244/52975