14

Когда я пытаюсь запустить экран от имени пользователя без полномочий root, я получаю:

screen

[screen is terminating]

сразу, хотя для рута работает нормально

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

Это на недавно установленном Centos 7 на выделенном сервере, доступ к которому осуществляется через ssh (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 ..

3 ответа3

12

У меня была эта проблема на выделенном сервере CentOS 7, и я нашел исправление, описанное в этом отчете об ошибке:bugs.centos.org/view.php?ID = 7395

Это было прекрасное решение для Dedicated - добавить gid=5 к devpts в fstab. screen теперь работает, как ожидается, для всех пользователей.

Однако я наткнулся на этот поток, пытаясь решить проблему с контейнером OpenVZ в CentOS 7. Поскольку нет способа отредактировать fstab для сервера (насколько я мог найти), я обнаружил, что следующий обходной путь исправил это.

Я подумал, что поеду туда и посмотрю, может ли это кому-нибудь помочь. (Хотя это не очень красивый способ сделать это.)

В терминале:

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

Убедитесь, что другой screen не использует это устройство

Это может быть достигнуто с помощью Как я могу определить, какой процесс имеет файл, открытый в Linux? :

sudo lsof /dev/ttyS0

А затем убить этот процесс, если это так.

По какой-то причине при этом условии sudo screen все еще может получить доступ к устройству, но в этом соединении будут пропущены символы, которые используются другим screen .

Убедитесь, что у пользователя есть права на чтение и запись в файл

Например, в Ubuntu вы хотите добавить пользователя в группу dialout : https://askubuntu.com/a/133244/52975

-2

Это может быть ошибка в вашем конфигурационном файле

~/.Screenrc

Попробуйте проверить это или создайте тусклый.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .