home | help
LOGIN.CONF(5)		       File Formats Manual		   LOGIN.CONF(5)

NAME
     login.conf -- login class capability database

SYNOPSIS
     /etc/login.conf, ~/.login_conf

DESCRIPTION
     login.conf  contains  various attributes and capabilities of login classes.
     A login class (an optional annotation against each record in the  user  ac-
     count database, /etc/master.passwd) determines session accounting, resource
     limits  and  user	environment settings.  It is used by various programs in
     the system to set up a user's login environment and to enforce policy,  ac-
     counting  and  administrative  restrictions.  It also provides the means by
     which users are able to be authenticated to the system and the types of au-
     thentication available.  Attributes in addition to the ones described  here
     are available with third-party packages.

     A	special  record  "default"  in the system user class capability database
     /etc/login.conf is used automatically for any non-root user without a valid
     login class in /etc/master.passwd.  A user with a uid of 0 without a  valid
     login class will use the record "root" if it exists, or "default" if not.

     In  FreeBSD,  users  may  individually  create a file called .login_conf in
     their home directory using the same format, consisting of	a  single  entry
     with a record id of "me".	If present, this file is used by login(1) to set
     user-defined  environment	settings  which  override those specified in the
     system login capabilities database.  Only a subset  of  login  capabilities
     may be overridden, typically those which do not involve authentication, re-
     source limits and accounting.

     Records in a class capabilities database consist of a number of colon-sepa-
     rated fields.  The first entry for each record gives one or more names that
     a	record	is to be known by, each separated by a '|' character.  The first
     name is the most common abbreviation.  The last name given should be a long
     name that is more descriptive of the capability entry, and all  others  are
     synonyms.	 All  names  but the last should be in lower case and contain no
     blanks; the last name may contain upper  case  characters	and  blanks  for
     readability.

     Note  that  since	a  colon (`:') is used to separate capability entries, a
     `\c' escape sequence must be used to embed a literal colon in the value  or
     name of a capability.

     The  default /etc/login.conf shipped with FreeBSD is an out of the box con-
     figuration.  Whenever changes to this, or the  user's  ~/.login_conf,  file
     are made, the modifications will not be picked up until cap_mkdb(1) is used
     to  compile  the  file into a database.  This database file will have a .db
     extension and is accessed through cgetent(3).  See getcap(3) for a more in-
     depth description of the format of a capability database.

CAPABILITIES
     Fields within each record in the database follow the getcap(3)  conventions
     for boolean, type string `=' and type numeric `#', although type numeric is
     deprecated in favour of the string format and either form is accepted for a
     numeric datum.  Values fall into the following categories:

     bool     If the name is present, then the boolean value is true; otherwise,
	      it is false

     file     Path name to a data file

     program  Path name to an executable file

     list     A  list  of  values  (or	pairs  of values) separated by commas or
	      spaces

     path     A space or comma separated list of path names, following the usual
	      csh conventions (leading tilde with and without username being ex-
	      panded to home directories etc.)

     number   A numeric value, either decimal (default), hexadecimal (with lead-
	      ing 0x), or octal (with a leading 0).  With a numeric  type,  only
	      one numeric value is allowed.  Numeric types may also be specified
	      in  string  format  (i.e., the capability tag being delimited from
	      the value by '=' instead of '#').  Whichever method is used,  then
	      all records in the database must use the same method to allow val-
	      ues to be correctly overridden in interpolated records.

     size     A  number which expresses a size.  The default interpretation of a
	      value is the number of bytes, but a suffix may  specify  alternate
	      units:
		    b	  explicitly selects 512-byte blocks
		    k	  selects kilobytes (1024 bytes)
		    m	  specifies a multiplier of 1 megabyte (1048576 bytes),
		    g	  specifies units of gigabytes, and
		    t	  represents terabytes.
	      A  size  value is a numeric quantity and case of the suffix is not
	      significant.  Concatenated values are added together.

     time     A period of time, by default in seconds.	A prefix may  specify  a
	      different unit:
		    y	  indicates the number of 365 day years,
		    w	  indicates the number of weeks,
		    d	  the number of days,
		    h	  the number of hours,
		    m	  the number of minutes, and
		    s	  the number of seconds.
	      Concatenated  values are added together.	For example, 2 hours and
	      40 minutes may be written either as 9600s, 160m or 2h40m.

     The usual convention to interpolate capability entries  using  the  special
     tc=value notation may be used.

RESOURCE LIMITS
     Name		Type	  Notes     Description
     coredumpsize	size		    Maximum coredump size limit.
     cputime		time		    CPU usage limit.
     datasize		size		    Maximum data size limit.
     filesize		size		    Maximum file size limit.
     maxproc		number		    Maximum number of processes.
     memorylocked	size		    Maximum  locked  in core memory size
					    limit.
     memoryuse		size		    Maximum  of  core  memory  use  size
					    limit.
     openfiles		number		    Maximum  number  of  open  files per
					    process.
     sbsize		size		    Maximum permitted socketbuffer size.
     vmemoryuse 	size		    Maximum permitted total VM usage per
					    process.
     stacksize		size		    Maximum stack size limit.
     pseudoterminals	number		    Maximum number of pseudo-terminals.

     These resource limit entries actually specify both the maximum and  current
     limits  (see  getrlimit(2)).   The current (soft) limit is the one normally
     used, although the user is permitted to increase the current limit  to  the
     maximum  (hard) limit.  The maximum and current limits may be specified in-
     dividually by appending a -max or -cur to the capability name.

ENVIRONMENT
     Name	      Type	Notes		 Description
     charset	      string			 Set   $MM_CHARSET   environment
						 variable   to	 the   specified
						 value.
     cpumask	      string			 List of cpus to bind  the  user
						 to.  The  syntax is the same as
						 for   the   -l   argument    of
						 cpuset(1)     or    the    word
						 `default'.  If set to `default'
						 no action is taken.
     hushlogin	      bool	false		 Same as having  a  ~/.hushlogin
						 file.
     ignorenologin    bool	false		 Login not prevented by nologin.
     ftp-chroot       bool	false		 Limit FTP access with chroot(2)
						 to  the  HOME	directory of the
						 user.	See ftpd(8) for details.
     label	      string			 Default MAC policy; see  macla-
						 bel(7).
     lang	      string			 Set  $LANG environment variable
						 to the specified value.
     manpath	      path			 Default search  path  for  man-
						 pages.
     nocheckmail      bool	false		 Display mail status at login.
     nologin	      file			 If  the  file exists it will be
						 displayed and the login session
						 will be terminated.
     path	      path	/bin /usr/bin	 Default search path.
     priority	      number			 Initial priority (nice) level.
     requirehome      bool	false		 Require a valid home  directory
						 to login.
     setenv	      list			 A comma-separated list of envi-
						 ronment variables and values to
						 which they are to be set.
     shell	      prog			 Session shell to execute rather
						 than the shell specified in the
						 passwd  file.	 The SHELL envi-
						 ronment variable  will  contain
						 the   shell  specified  in  the
						 password file.
     term	      string			 Default terminal  type  if  not
						 able  to  determine  from other
						 means.
     timezone	      string			 Default value of  $TZ	environ-
						 ment variable.
     umask	      number	022		 Initial  umask.  Should  always
						 have a leading 0 to ensure  oc-
						 tal interpretation.
     welcome	      file	/etc/motd	 File  containing  welcome  mes-
						 sage.

AUTHENTICATION
     Name	      Type	Notes	  Description
     copyright	      file		  File containing  additional  copyright
					  information
     host.allow       list		  List	of  remote  host  wildcards from
					  which users in the class may access.
     host.deny	      list		  List of  remote  host  wildcards  from
					  which  users	in the class may not ac-
					  cess.
     login_prompt     string		  The login prompt given by login(1)
     login-backoff    number	3	  The number of login  attempts  allowed
					  before  the  backoff delay is inserted
					  after each  subsequent  attempt.   The
					  backoff  delay  is the number of tries
					  above login-backoff  multiplied  by  5
					  seconds.
     login-retries    number	10	  The  number  of login attempts allowed
					  before the login fails.
     passwd_format    string	md5	  The  encryption  format  that  new  or
					  changed  passwords  will  use.   Valid
					  values include "des", "md5" and "blf".
					  NIS clients using  a	non-FreeBSD  NIS
					  server should probably use "des".
     passwd_prompt    string		  The  password  prompt presented by lo-
					  gin(1)
     times.allow      list		  List of time periods during which  lo-
					  gins are allowed.
     times.deny       list		  List	of time periods during which lo-
					  gins are disallowed.
     ttys.allow       list		  List of ttys and ttygroups which users
					  in the class may use for access.
     ttys.deny	      list		  List of ttys and ttygroups which users
					  in the class may not use for access.
     warnexpire       time		  Advance notice for pending account ex-
					  piry.
     warnpassword     time		  Advance notice  for  pending	password
					  expiry.

     These fields are intended to be used by passwd(1) and other programs in the
     login authentication system.

     Capabilities  that  set  environment variables are scanned for both `~' and
     `$' characters, which are substituted for a user's home directory and  name
     respectively.   To  pass  these  characters  literally into the environment
     variable, escape the character by preceding it with a backslash '\'.

     The host.allow and host.deny entries are comma  separated	lists  used  for
     checking  remote  access  to the system, and consist of a list of hostnames
     and/or IP addresses against which remote network logins are checked.  Items
     in these lists may contain wildcards in the form used by shell programs for
     wildcard matching (See fnmatch(3) for details on the implementation).   The
     check  on	hosts  is made against both the remote system's Internet address
     and hostname (if available).  If both lists are  empty  or  not  specified,
     then  logins  from any remote host are allowed.  If host.allow contains one
     or more hosts, then only remote systems matching any of the items	in  that
     list  are allowed to log in.  If host.deny contains one or more hosts, then
     a login from any matching hosts will be disallowed.

     The times.allow and times.deny entries consist of a comma-separated list of
     time periods during which the users in a class are allowed to be logged in.
     These are expressed as one or more day codes followed by a  start	and  end
     times  expressed in 24 hour format, separated by a hyphen or dash.  For ex-
     ample, MoThSa0200-1300 translates to Monday, Thursday and Saturday  between
     the hours of 2 am and 1 p.m..  If both of these time lists are empty, users
     in  the class are allowed access at any time.  If times.allow is specified,
     then logins are only allowed during the periods given.   If  times.deny  is
     specified,  then  logins are denied during the periods given, regardless of
     whether one of the periods specified in times.allow applies.

     Note that login(1) enforces only that the actual login falls within periods
     allowed by these entries.	Further enforcement over the life of  a  session
     requires a separate daemon to monitor transitions from an allowed period to
     a non-allowed one.

     The  ttys.allow and ttys.deny entries contain a comma-separated list of tty
     devices (without the /dev/ prefix) that a user in a class may use to access
     the system, and/or a list of ttygroups (See getttyent(3)  and  ttys(5)  for
     information on ttygroups).  If neither entry exists, then the choice of lo-
     gin  device used by the user is unrestricted.  If only ttys.allow is speci-
     fied, then the user is restricted only to ttys in the given group or device
     list.  If only ttys.deny is specified, then the user is prevented from  us-
     ing the specified devices or devices in the group.  If both lists are given
     and  are  non-empty,  the	user  is  restricted to those devices allowed by
     ttys.allow that are not available by ttys.deny.

     The minpasswordlen and minpasswordcase facilities	for  enforcing	restric-
     tions  on	password quality, which used to be supported by login.conf, have
     been superseded by the pam_passwdqc(8) PAM module.

RESERVED CAPABILITIES
     The following capabilities are reserved for the purposes indicated and  may
     be supported by third-party software.  They are not implemented in the base
     system.

     Name	       Type	 Notes	   Description
     accounted	       bool	 false	   Enable  session  time  accounting for
					   all users in this class.
     auth	       list	 passwd    Allowed  authentication  styles.  The
					   first item is the default style.
     auth-type	       list		   Allowed authentication styles for the
					   authentication type.
     autodelete        time		   Time  after	expiry	when  account is
					   auto-deleted.
     bootfull	       bool	 false	   Enable  'boot  only	if  ttygroup  is
					   full'  strategy when terminating ses-
					   sions.
     daytime	       time		   Maximum login time per day.
     expireperiod      time		   Time for expiry allocation.
     graceexpire       time		   Grace days for expired account.
     gracetime	       time		   Additional grace login time allowed.
     host.accounted    list		   List of remote  host  wildcards  from
					   which  login  sessions  will  be  ac-
					   counted.
     host.exempt       list		   List of remote  host  wildcards  from
					   which login session accounting is ex-
					   empted.
     idletime	       time		   Maximum idle time before logout.
     minpasswordlen    number	 6	   The	minimum  length a local password
					   may be.
     mixpasswordcase   bool	 true	   Whether passwd(1) will warn the  user
					   if  an all lower case password is en-
					   tered.
     monthtime	       time		   Maximum login time per month.
     passwordtime      time		   Used by passwd(1) to set  next  pass-
					   word expiry date.
     refreshtime       time		   New time allowed on account refresh.
     refreshperiod     str		   How often account time is refreshed.
     sessiontime       time		   Maximum login time per session.
     sessionlimit      number		   Maximum  number  of	concurrent login
					   sessions on ttys in any group.
     ttys.accounted    list		   List of ttys and ttygroups for  which
					   login accounting is active.
     ttys.exempt       list		   List  of ttys and ttygroups for which
					   login accounting is exempt.
     warntime	       time		   Advance notice  for	pending  out-of-
					   time.
     weektime	       time		   Maximum login time per week.

     The  ttys.accounted  and  ttys.exempt fields operate in a similar manner to
     ttys.allow  and  ttys.deny  as  explained	above.	  Similarly   with   the
     host.accounted and host.exempt lists.

SEE ALSO
     cap_mkdb(1),  login(1),  chroot(2),  getcap(3), getttyent(3), login_cap(3),
     login_class(3), pam(3), passwd(5), ttys(5), ftpd(8), pam_passwdqc(8)

FreeBSD 8.4-stable		 August 20, 2008		   LOGIN.CONF(5)

home | help