LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   I want to force user logouts (https://www.linuxquestions.org/questions/linux-newbie-8/i-want-to-force-user-logouts-234360/)

qowpal 09-23-2004 12:30 PM

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.

masand 09-23-2004 12:39 PM

hi there

what protocol are they using to login to linux machines???

regards

qowpal 09-23-2004 12:45 PM

TCP/IP

serz 09-23-2004 12:51 PM

Quote:

Originally posted by qowpal
TCP/IP
He meant telnet/ssh, or whatever.

masand 09-23-2004 12:57 PM

hi there

sorry,
i meant whether telnet, or other service

regards

qowpal 09-23-2004 01:01 PM

telnet

masand 09-23-2004 01:16 PM

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

btmiller 09-23-2004 01:44 PM

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.

masand 09-23-2004 01:54 PM

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

btmiller 09-23-2004 02:33 PM

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.

masand 09-23-2004 02:52 PM

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.