Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I am trying to create an automated monitoring system that other people can see but cannot do commands.

I have a problem where the user is automatically connected to a screen where the monitoring is happening but they can close the screen.

I would like some way so that any user except root to have their keyboard disabled.

share|improve this question
    
do you want it to make users just check mail or something like that? –  poz2k4444 Oct 8 '12 at 20:53
    
I run a Siri Proxy but I need other people to monitor it so I am trusted with that the proxy does. –  Muktadir Miah Oct 8 '12 at 21:08
    
So, you just want other people run a specific application? –  poz2k4444 Oct 8 '12 at 21:31
    
Yes, I have setup, so when the user logs in they are automatically connected to a screen. The script runs "screen -x root/" All I need it to do is stop the keyboard from typing and make them control the screen. –  Muktadir Miah Oct 8 '12 at 22:29
    
@MuktadirMiah I added screen-related stuff to my answer –  artistoex Oct 9 '12 at 10:38
add comment

1 Answer

up vote 0 down vote accepted

Screen-based solution

You can configure screen to open a window, share the session and write-lock it for USER on startup. Put the following commands in your .screenrc:

screen 1
multiuser on
aclchg <USER> +x detach
writelock on

This prevents the USER from executing any commands except detach (so he can log-off).

X-based solution

You can expose your X display read-only via vnc

x11vnc -viewonly -display :0

where :0 is the display number. You can also create an X server by the -create option.

On the ordinary user accounts you can start up all X sessions with the vnc client as the only program.

share|improve this answer
    
Do you know any way to make user connect to the screen as soon as they log in? And make it automatically run the "multiuser on.." when I make a new screen e.g. I make a new screen by typing "screen -S 1234" Then the "multiuser on", "aclchg <USER> -x ?", etc runs automatically. –  Muktadir Miah Oct 9 '12 at 17:00
    
You can put the commands into root's .screenrc. For the user append the lines screen -x root/ and logout to the .bash_login and make sure bash is the login shell for the user (usermod $USER -s /bin/bash). If you like the answer, you can also vote it up. –  artistoex Oct 9 '12 at 18:14
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.