web-dev-qa-db-fra.com

"l'écran se termine" pour les utilisateurs non root

Lorsque j'essaie d'exécuter screen en tant qu'utilisateur non root, je reçois:

screen

[screen is terminating]

immédiatement, bien que cela fonctionne très bien pour root

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

Lors de la recherche sur Google, j'ai remarqué une mention de/etc/fstab, voici la mienne:

# <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

Ceci sur un centos 7 fraîchement installé sur un serveur dédié accessible via ssh (TTY est pts)

Toute aide serait appréciée.

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 ..
14
Rob

J'avais ce problème sur le serveur CentOS 7 dédié et je suis tombé sur le correctif décrit dans ce rapport de bogue: bugs.centos.org/view.php?id=7395

C’était une bonne solution sur Dedicated d’ajouter gid=5 aux devpts de fstab. screen fonctionne maintenant comme prévu pour tous les utilisateurs.

Cependant, j'ai rencontré ce fil alors que j'essayais de résoudre le problème sur un conteneur OpenVZ de CentOS 7. Comme il n'y a pas moyen de modifier le fstab du serveur (dans la mesure de mes possibilités), j'ai trouvé ce qui suit: contourner le problème corrigé.

Je pensais que j'allais revenir en arrière de cette façon et voir si cela pourrait aider quelqu'un d'autre. (bien que ce ne soit pas une très belle façon de le faire.)

En terminal:

chmod u+s /usr/bin/screen
chmod 755 /var/run/screen
12
Forever Cuber

Assurez-vous qu'aucune autre screen n'utilise ce périphérique

Ceci peut être réalisé avec Comment puis-je savoir quel processus a un fichier ouvert sous Linux? :

Sudo lsof /dev/ttyS0

Et puis tuez ce processus si tel est le cas.

Pour une raison quelconque, dans cette condition, Sudo screen peut toujours accéder au périphérique, mais cette connexion manquera alors des caractères, qui sont consommés par l'autre screen.

Assurez-vous que l'utilisateur dispose des droits de lecture et d'écriture sur le fichier .

Par exemple. sur Ubuntu, vous souhaitez ajouter l'utilisateur au groupe dialout: https://askubuntu.com/a/133244/52975