FreeBSD命令leave 介绍

3/28/2005来源:FreeBSD教程人气:11016

◎设定档位置
  /use/local/etc/idled.cf -- idled configuration file format

◎描述
  idled,由idled.cf这个档案来决定idled这个程式如何执行。
  # 表示设定挡解。
  idled程式的执行约可分为10方面:

  1.Exemption  定义哪些user是不受idled所限制(影响)的。

  2.session    定义限制login 的时间。
  
  3.Timeout    定义设定终端机需要idle多久才将user踢出(logout)。
  
  4.Refuse     定义某些状况一发生,立刻将user踢出。
  
  5.Sleep      定义idled程式每次检查的时间(min)间隔。
  
  6.Wait       定义idled的终端机(tty)在警告讯息发出之後,
                                         到踢出user的时间(sec)。

  7.Conswins   定义user在console登入时的相关处理方式。
 
  8.Idlemethod 定义何谓idle。
  
  9.Threshold  在session限制及multiple login生效前,login的user数。
  
 10.Multiple   定义重登入登出(multi login logout)的行为,
               控制每一user能够保有的login次数。

◎相关语法说明
1.Exemption who from
  who必须是以下之一:
  登入名称(login username)、机器名(host hhostname)、
  群组名(group groupanme)、终端机(tty ttyname)、
  档案名称(file filename)
  
  from必须是下列型态之一:
  multiple  idle   seesion  all
  all包含前三个状态。
  
2.Session refuse minutes
  Session default minutes
  Session who minutes
  who的条件与上相同。而minutes乃十进位数。
  这个命令定义在终止user的session之前,user能够登入的时间长度。
  当此命令被执行,会发出警告并将使用者踢出。
  default 定义应提供给user多少session限制的时间,除此之外不在设定档中,
          另外分配session限制给群组、login或tty。
  refuse  定义当使用者被踢出後,需要经过多久才能够再次登入。
 
3.Timeout who minutes
  定义在idle多少minutes(时间)之後,who将会被踢出。
  以没有标准输入作为idle的判别。
  
4.Refuse who
  在idle时间到达时,他将会告知该使用者其session将会被终止,
  且将会在大约五秒後实际终止。

5.Sleep seconds
  定义检查的间隔时间,若设定档中有多个Sleep定义,则会只读取最後一个。
  
6.Wait seconds
  定义idled在发出警告到实际踢出的时间。
  若设定档中有多个Sleep定义,则会只读取最後一个。
         
7.Conswins --  Console Windows Handling
  语法:
  Conswins idle option
  Conswins session option
  Conswins multiple option
  
  option必须是下列其中之一:
  number  normal  off
  
  number 定义console的user能够idle的时间。
         对於multiple来说,number定义console的user能够重登入的次数。
          此设定效果凌驾於先前的timeout、session、multiple设定。
  
  normal 表示采用预设的timeout、session、multiple设定。
  
  off 表示对於从console登入的user,管user已经idle很久
      ,idle程式也不产生作用。

8.Idlemethod userinput
  若user没有任何标准输入发生,即使有输出也视为idle。
  
  Idlemethod inputoutput 
  若user没有任何输入或输出,则视为idle。
  以就是说若一程式没有输入,只有不断的输出,不算idle。
  
  注意:若一程式没有输入但只有不断输出到非tty装置,
       会被视为tty idle。
       若没有特别指定,预设是采userinput模式。

9.Threshold type number
  type形式:
   multiple 及 session
  Threshold multiple 
   定义最小的tty限制,当超过此限制时,
   idled程式才会开始去限制user拥有多少tty。
   若threshold设为10,且今天有3个user各登入5次。
   则3*5=15(总共拥有的tty) > 10(threshold设定值)
   此时idled程式才会开始去限制每位user所拥有的tty数。
   若先前的multiple设定设为每个人最多拥有3的tty,
   则每位user必须停止2个tty或者是idled程式会帮他们各停止2个tty。
  Threshold session
   定义最小的tty限制,当超过此限制时,
   idled程式才会开始去限制user登入的时间。
   idled会将发出警告,并终止该tty。

10.Multiple number
   number必须是 -1 或者是其他正数。
   若number为-1,每个user能够重登入的数量,依有多少使用者登入决定。
   计算方式如下:                 若threshold设为10,且有2个不同的user登入,
     Multiple threshold           则每一使用者可以拥有 10 ÷2 =5 个tty。
     ------- ÷--------           若threshold设为10,且有3个不同的user登入,
          num  users              则每一使用者可以拥有 10 ÷3 =3 个tty。
   
   若number大於0,则不管有多少tty被执行,限定每一个user能够拥有的tty数。
   因为number必须大於0,最小是1,所以最少每一位user最少会拥有一个tty。

   idled程式选择那个tty该保留的方式,是依据登入的时间。
   最先启动的tty会被保留,其他的则会被警告并且终止。

11.上述的类型,可以经由某些档案定义,语法如下:
   timeout file  
   session file  
   refuse file 
   exempt file  
   
    若以相对路径表示,则需要由程式启始位置开始描述路径。
              亦可以直接用绝对路径。
              档案的内容很简单,每一个user(login name)一行。
              且基本上档案中的空白会被忽略。

◎测试
   若今天为了测试,将threshold设为2且multiple为-1
   我登入连续3次,则因为 2/1(user数)=2
   所以当今天登入超过2次後,idled会启动
   并要求我停止最後启动的tty。若不理他...结果如下..
   
Fri Jan 18 16:59:01
This user id is logged on too many times. Please end
some logins to reduce your total number of logins to no
more than 2. Please do so in the next 2 minutes
or you will bi logged out by the system.

两分钟后

Logged out by the system.

◎参考资料
  IDLED.CF(5)