„Ekran się kończy” dla użytkownika innego niż root

14

Kiedy próbuję uruchomić ekran jako użytkownik inny niż root, otrzymuję:

screen

[screen is terminating]

natychmiast, choć działa dobrze dla roota

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

Kiedy googlowałam, zauważyłam wzmiankę o / etc / fstab, oto moja:

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

To na świeżo zainstalowanym centos 7 na dedykowanym serwerze dostępnym przez ssh (TTY to pts)

Każda pomoc będzie mile widziana.

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 ..
Obrabować
źródło
Uruchom screen -ls; powinien podać nazwę katalogu w pierwszym wierszu. Następnie uruchom ls -la <above directory name>i umieść wynik w swoim pytaniu.
BenjiWiebe,
Ok, dodałem to do pytania.
Rob
Hmmmm ... Spodziewałem się tam problemu z uprawnieniami, ale wygląda dobrze.
BenjiWiebe,
Usiłuję uzyskać maszynę Wirtualną CentOS 7, aby sprawdzić, czy ma również ten problem, ale może nie uda mi się tego zrobić do jutra ...
BenjiWiebe
Czy istnieje powód, dla którego potrzebujesz CentOS 7? Wydaje się, że być może ma to związek z faktem, że CentOS 7 został właśnie wydany. Być może mógłbyś używać CentOS 6 jeszcze przez kilka tygodni?
BenjiWiebe,

Odpowiedzi:

13

Miałem ten problem na dedykowanym serwerze CentOS 7 i natrafiłem na poprawkę opisaną w tym raporcie o błędzie: bugs.centos.org/view.php?id=7395

To było dobre rozwiązanie dla Dedicated do dodawania gid=5do poświęceń w fstab. screenteraz działa zgodnie z oczekiwaniami dla wszystkich użytkowników.

Jednak natknąłem się na ten wątek, próbując rozwiązać problem na kontenerze OpenVZ CentOS 7. Ponieważ nie ma sposobu na edycję fstab dla serwera (o ile mogłem znaleźć), znalazłem następujące obejście to naprawiło.

Pomyślałem, że wrócę w ten sposób i sprawdzę, czy może to pomóc komuś innemu. (Chociaż nie jest to bardzo ładny sposób.)

W terminalu:

chmod u+s /usr/bin/screen
chmod 755 /var/run/screen
Forever Cuber
źródło
Ta odpowiedź rozwiązała problem dla mnie, Ubuntu 18.04 działający na kontenerze
openvz
3

Upewnij się, że nikt inny nie screenkorzysta z tego urządzenia

Można to osiągnąć za pomocą: Jak ustalić, który proces ma otwarty plik w systemie Linux? :

sudo lsof /dev/ttyS0

A potem zabij ten proces, jeśli tak jest.

Z jakiegoś powodu, pod tym warunkiem, sudo screenmoże nadal uzyskiwać dostęp do urządzenia, ale wtedy to połączenie będzie brakowało znaków, które są konsumowane przez drugi screen.

Upewnij się, że użytkownik ma uprawnienia do odczytu i zapisu do pliku

Np. W Ubuntu chcesz dodać użytkownika do dialoutgrupy: /ubuntu//a/133244/52975

Ciro Santilli
źródło
1
dzięki lsof, nie wiedziałem, że mam już dwa screensdziałające w tle
Marecky