#سوال: چگونه می توان کاربری که بیشتر از مدت معینی در وضعیت idle قرار دارد را مجبور به logout کرد؟
روش اول: برای logout خودکار کاربران(در صورت عدم فعالیت) می توان از متغیر TMOUT استفاده کرد. برای مثال با تنظیم این متغیر به عدد 5، کاربر oracle بعد از مدت پنج ثانیه از سیستم خارج خواهد شد البته در صورت عدم فعالیت!:
[[email protected] ~]$ export TMOUT=5
[[email protected] ~]$ timed out waiting for input: auto-logout
برای تنظیم پایدار این متغیر، می توانیم از فایلهایی چون bashrc. و bash_profile. کمک بگیریم.
[[email protected] ~]$ vi .bash_profile
export TMOUT=5
با این روش، فردی که با این متغیر آشنا باشد، می تواند بعد از لاگین به سیستم، آن را تغییر دهد. برای انکه متغیر TMOUT برای همه کاربران اعمال شود و همچنین برای کاربران غیرادمین غیرقابل تغییر باشد، می توان این متغیر را read only کرد:
[[email protected] ~]# vi /etc/profile.d/myscript.sh
export TMOUT=50
readonly TMOUT
[[email protected] myhost ~]# chmod 777 /etc/profile.d/myscript.sh
با این تنظیمات، کاربر oracle نخواهد توانست متغیر TMOUT را تغییر دهد:
[[email protected] ~]$ echo $TMOUT
50
[[email protected] ~]$ export TMOUT=60
-bash: TMOUT: readonly variable
روش دوم: برای logout خودکار افراد غیرفعالی که با سرویس sshd به سیستم لاگین کرده اند، می توان دو متغیر زیر را در فایل پیکربندی sshd تنظیم کرد:
[[email protected] ~]# vi /etc/ssh/sshd_config
ClientAliveInterval 50
ClientAliveCountMax 0
با این تنظیم و با اتصال از طریق سرویس sshd به سیستم، بعد از 50 ثانیه عدم فعالیت، پیام زیر را دریافت خواهیم کرد:
[[email protected] ~]# ssh 192.168.1.20
[[email protected] ~]# Connection to 192.168.1.20 closed by remote host.
Connection to 192.168.1.20 closed.