I want to force user logouts
I would like to know if there is a way to log off all users that remain logged in after business hours. They are Windows clients logged into a Red Hat 9 box.
|
hi there
what protocol are they using to login to linux machines??? regards |
TCP/IP
|
Quote:
|
hi there
sorry, i meant whether telnet, or other service regards |
telnet
|
hi there
i have written one program which is a module for my project i will uploading that soon to sourceforge.net( it has been already delayed though) i can give u the compiled binary if u want... i will be able to give the code,once that is released under the GNU license,which will be done after it is uploaded regards |
This actually isn't terribly hard at all. All you need to do to disconnect a login session is to kill -9 the user's shell. So you can read the list of prohibited users from a file, do ps aux and grep for shells being run by those users, and pass 'em on to kill -9. Should be a not terribly difficult bash or Perl script to write. Run it from cron at the end of the day, and presto.
Of course, you need a way to prevent them from re-logging on. There are tools that limit user login times, but I've never used them. Alternatively, if you want nobody but root to be able to log on during off hours, you can have your cron file touch /etc/nologin and then have another cron entry remove that file at the start of business the next day. |
hi there
kill -9 will surely eject the user but at some cost though what about the utmp file entries??,they are ditd if the usr logs out/logs in u need to maintain that too for records and if the user has made some process free of the terminal, then u need to kill that,that will not be killed after u terminate the bash session i had initailly tries the ps -aux thing but it did not give me the desired results regards |
Well, it's easy enough to simply kill all the processes associated with a particular user (and deny them access to cron and at so they can't be restarted). You could also try a normal kill (SIGTERM not SIGKILL) of the login shell, which should cause all the clean-up to be done. BTW, I just tried kill 9'ing the shell myself, and the utmp/wtmp info does seem to be written out correctly (at least based on the results of w and last). I think this is because the process controlling the session (i.e. telnetd, sshd, or init/getty for local connections) detects the exit and writes out the log info, independent of the user's shell. I'm not 100% sure that this is how it works, though.
|
hi there
there are utmp funcions in C which allowu to manuallly edit th utmp file see more on that man setutent these functions are standard utm functions and are used to edit the utmp file upon login/logout regards |
All times are GMT -5. The time now is 05:17 AM. |