I would consider using
screen to do this. Although, the only method I know of does produce some security concerns. Screen has the ability to create access control lists and the ability to allow multiple screen sessions with a variety of permissions. The setup can be a bit tricky, but the idea is this:
- Create a user account for your coworker.
- Give your coworker ssh access to your machine.
- Make the screen executable setuid root (dangerous).
- Change the permissions on
/var/run/screen to 755 (Other permissions setups might be doable, this is just what I've always done. Also, this is the path on Debian, I'm unsure if it is different elsewhere)
~/.screenrc to enable multiuser mode:
~/.screenrc to set up the right permissions using the commands:
aclgrp. See the man pages for the details.
Your coworker could then log into your machine via ssh and connect to your screen session. Via the
ssh config, you could actually force him to connect to the screen session upon his logging in. The following blog post has more detailed instructions (these directions are roughly based off of them) in the context of holding a class using screen:
Your use case is a bit different, but I think that the only real difference will be the permissions you set in
~/.screenrc and the name of the user.