8

Below is what happens when trying to use gnu screen. Essentially, it all works fine until I su as another user. then I get a Cannot open your terminal '/dev/pts/7' - please check. error

l413:~$ ssh [email protected]
[email protected] password: 
sbird@example:~$ screen
[screen is terminating]
sbird@example:~$ su - gradplan
Password: 
gradplan@example:~$ screen 
Cannot open your terminal '/dev/pts/7' - please check.
gradplan@example:~$ 

How can I login as sbird, su to gradplan, and still use screen?

3 Answers 3

4

To directly answer your question:

ssh [email protected] su grandplan -c “script /dev/null -qc \"screen\""

Don't change the permissions on your /dev/pts/X - it just introduces an unnecessary security hole.

11

Type script /dev/null before starting screen.

$ su - gradplan
$ screen
Cannot open your terminal '/dev/pts/15' - please check.
$ script /dev/null
Script started, file is /dev/null
$ screen
# do whatever inside the screen
[detached]
$

ref: ServerFault: Why does redirecting 'script' to /dev/null/ allow 'screen' to work while su'ed as another user?

1
  • For future readers, I have found su'ing inside screen to actually be better practice, but since this answers what I actually asked better, I accepted this as the right answer. Jul 6, 2011 at 10:50
1

If you:

ls -l /dev/pts/7

You will see it is owned by sbird, when you switch to gradplan, he doesn't have perms to touch that device.

You can try doing

chmod a+rw /dev/pts/X

(X being which pts # you are currently connected to, because it will change) before you screen.

Or you can screen as sbird, then in each screen window su there.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .