You can use the screen
tool to share a console between
two users - this is useful for remote collaborative development, and
doesn't require nearly as much bandwidth as a desktop-sharing protocol
like VNC.
For this document, I'll use the example of user 'Alice' creating a shared console for 'Bob' to join in on.
setting up the system
You'll need a local installation of screen, and make a few
permissions changes to allow multi-user mode. The screen
binary needs to be setuid-root, and the /var/run/screen
directory needs to be at least mode 0755
.:
alice $ sudo chmod u+s `which screen` alice $ sudo chmod 755 /var/run/screen
Note that creating setuid-root binaries on a machine is usually not a good idea. I'd advise against doing this on a machine that hosts untrusted users.
setting up the hosting session
User alice
needs to run screen
and turn
'multiuser mode' on, then allow user bob
to access it.
alice $ screen
And then the keystrokes (C-a
is ctrl + a):
C-a : multiuser on C-a : addacl bob
Now the session is available to Bob to connect - all he needs is the session id. This is shown by
alice $ screen -ls
and will be something like alice/1942.pts-3.localhost
.
connecting to the existing session
Once Alice has started screen and given Bob the session-id,
he can connect with screen -x
:
bob $ screen -S session-id -x
Then Alice's console will be available to Bob. Both users will see the output on the console, both are able to input characters.