Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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  account database, /etc/master.passwd)	determines session ac-
       counting, 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, accounting and administrative	restrictions.  It also
       provides	the means by which users are able to be	authenticated  to  the
       system  and the types of	authentication available.  Attributes in addi-
       tion to the ones	described here are available  with  third-party	 pack-
       ages.

       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	 with-
       out  a  valid  login  class will	use the	record "root" if it exists, or
       "default" if not.

       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 capabili-
       ties may	be overridden, typically those which do	not involve  authenti-
       cation, resource	limits and accounting.

       Records	in a class capabilities	database consist of a number of	colon-
       separated fields.  The first entry for each record gives	 one  or  more
       names  that a record is to be known by, each separated by a '|' charac-
       ter.  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
       configuration.	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) conven-
       tions 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 cate-
       gories:

       bool	If the name is present,	then the boolean value is true;	other-
		wise, 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 expanded to home directories etc.)

       number	A numeric value, either	decimal	(default),  hexadecimal	 (with
		leading	 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 values to be correctly over-
		ridden in interpolated records.	 A numeric value may be	 infi-
		nite.

       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.  A
		size value may be infinite.

       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.
		A time value may be infinite.

       "infinity", "inf", "unlimited", "unlimit," and -1 are considered	 infi-
       nite values.

       The  usual  convention to interpolate capability	entries	using the spe-
       cial 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.
       swapuse		  size		      Maximum swap space size limit.
       umtxp		  number	      Maximum number of	process-shared
					      pthread locks.

       These resource limit entries actually specify both the maximum and cur-
       rent 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 individually 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  di-
						   rectory  of	the user.  See
						   ftpd(8) for details.
       label		string			   Default  MAC	 policy;   see
						   maclabel(7).
       lang		string			   Set	  $LANG	   environment
						   variable to	the  specified
						   value.
       mail		string			   Set	  $MAIL	   environment
						   variable to	the  specified
						   value.
       manpath		path			   Default   search  path  for
						   manpages.
       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
						   environment	variables  and
						   values to which they	are to
						   be  set.  Values containing
						   commas must be quoted.
       shell		prog			   Session  shell  to  execute
						   rather than the shell spec-
						   ified  in  the passwd file.
						   The SHELL environment vari-
						   able	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
						   environment variable.
       umask		number	  022		   Initial    umask.	Should
						   always  have	a leading 0 to
						   ensure  octal   interpreta-
						   tion.
       welcome		file	  /etc/motd	   File	  containing   welcome
						   message.

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 ac-
					    cess.
       host.deny	list		    List of remote host	wildcards from
					    which users	in the class  may  not
					    access.
       login_prompt	string		    The	login prompt given by login(1)
       login-backoff	number	  3	    The	 number	 of login attempts al-
					    lowed before the backoff delay  is
					    inserted after each	subsequent at-
					    tempt.   The  backoff delay	is the
					    number     of     tries	 above
					    login-backoff multiplied by	5 sec-
					    onds.
       login-retries	number	  10	    The	 number	 of login attempts al-
					    lowed before the login fails.
       passwd_format	string	  sha512    The	encryption format that new  or
					    changed passwords will use.	 Valid
					    values   include   "des",	"md5",
					    "blf", "sha256" and	"sha512";  see
					    crypt(3) for details.  NIS clients
					    using  a  non-FreeBSD  NIS	server
					    should probably use	"des".
       passwd_prompt	string		    The	password prompt	 presented  by
					    login(1)
       passwordtime	time		    Used  by  passwd(1)	 to  set  next
					    password expiry date.
       times.allow	list		    List of time periods during	 which
					    logins are allowed.
       times.deny	list		    List  of time periods during which
					    logins are disallowed.
       ttys.allow	list		    List of ttys and  ttygroups	 which
					    users in the class may use for ac-
					    cess.
       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
					    expiry.
       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 en-
       vironment  variable,  escape the	character by preceding it with a back-
       slash '\'.

       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	 host-
       names  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  re-
       mote  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 hy-
       phen or dash.   For  example,  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 peri-
       ods specified in	times.allow applies.

       Note that login(1) enforces only	that the actual	login falls within pe-
       riods allowed by	these entries.	Further	enforcement over the life of a
       session requires	a separate daemon to monitor transitions from  an  al-
       lowed 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 login device used by the	user is	unrestricted.  If only
       ttys.allow is specified,	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 using	the specified devices  or  devices  in
       the  group.  If both lists are given and	are non-empty, the user	is re-
       stricted	to those devices allowed by ttys.allow that are	not  available
       by ttys.deny.

       The  minpasswordlen  and	 minpasswordcase  facilities for enforcing re-
       strictions  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
					     sessions.
       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
					     accounted.
       host.exempt	 list		     List  of  remote  host  wildcards
					     from which	login session account-
					     ing is exempted.
       idletime		 time		     Maximum idle time before logout.
       minpasswordlen	 number	   6	     The  minimum length a local pass-
					     word may be.
       mixpasswordcase	 bool	   true	     Whether passwd(1) will  warn  the
					     user  if  an all lower case pass-
					     word is entered.
       monthtime	 time		     Maximum login time	per month.
       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  lo-
					     gin   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)

HISTORY
       The file	login.conf first appeared in FreeBSD 2.1.5.

FreeBSD	13.2			 June 28, 2023			 LOGIN.CONF(5)

NAME | SYNOPSIS | DESCRIPTION | CAPABILITIES | RESOURCE LIMITS | ENVIRONMENT | AUTHENTICATION | RESERVED CAPABILITIES | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=login.conf&manpath=FreeBSD+14.0-RELEASE+and+Ports>

home | help