CPU.CONF(5)
π NAME π
cpu.conf β the cpu configuration file. that's it, that's the name, slay π
β¨ DESCRIPTION β¨
okay so listen bestie, this file is where every single configurable option for CPU and all the CPU modules lives. all of it. one file. iconic behavior honestly π
you get to pick where the config file lives at runtime by passing the --config or -C command line switches (peep cpu(8) for the deets). every CPU module gets its own configuration section, but don't worry, they're all documented right here in this one page. no cap. π¦
lowkey important: it's recommended that the config file have strict permissions such as 600. protect the file, protect the vibes. π
also, the format is very specific and it's giving:
- config options look like
option = value - section headers look like
[HEADER]
that's the whole grammar, you're welcome π
π GLOBAL OPTIONS π
these go under the section marked [GLOBAL]. everything in here impacts all operations, so like, no pressure but also all the pressure. π
DEFAULT_METHOD = methodβ tells CPU what the default administration method is. this value should be a string of eitherldaporpasswd. pick your fighter. π₯CRACKLIB_DICTIONARY = fileβ if CPU was compiled--with-libcrack, then file should be the location ofcracklib_dict.
π LDAP OPTIONS π
these go under the section marked [LDAP]. they're only useful when DEFAULT_METHOD is set to ldap, or when ldap was specified at the command line with the -M switch. these options are only used by the LDAP module, periodt. β¨
LDAP_HOST = hostnameβ hostname should be either the IP address or the hostname of the server running the LDAP directory that you wish to administer users on. this can be overridden with the-Ncommand line switch.LDAP_PORT = portβ port is the port that the LDAP server specified byLDAP_HOSTis listening on. this value must be non negative. this can be overridden by the-Pcommand line switch.BIND_DN = dnβ dn should be the fully qualified DN of an LDAP entity with appropriate rights to perform any actions that you wish. this value can be overridden by the-Dcommand line switch.BIND_PASS = passwordβ password is the password of the entity specified byBIND_DN. this value is passed directly to the server, so it may be stored encrypted if your server supports this. this value can be overridden by the-wcommand line switch. πUSER_BASE = base_dnβ base_dn is the base dn that users should be added to, search for, deleted from, or modified from. in general, if you wish to add a user to the following dn:ou=users,o=company,c=usthen base_dn should be set toou=users,o=company,c=us. if you set this value too=company,c=us, users will be added to that dn, although for searching purposes the scope is more broad. this value can be overridden at the command line with the-Uswitch.GROUP_BASE = base_dnβ base_dn is the base dn that groups should be added to, search for, deleted from, or modified from. in general, if you wish to add a group to the following dn:ou=group,o=company,c=usthen base_dn should be set toou=group,o=company,c=us. if you set this value too=company,c=us, groups will be added to that dn, although for searching purposes the scope is more broad. this value can be overridden at the command line with the-Bswitch.USER_OBJECT_CLASS = object_classGROUP_OBJECT_CLASS = object_class
object_class is a comma separated list of object classes that are required by your LDAP directory's schema in order to add or modify users and groups. the default should be fine, consult your vendor's documentation or contact cpu-users@lists.sourceforge.net if you have problems. π«Ά
USER_FILTER = filterGROUP_FILTER = filter
filter is a filter that adheres to the following BNF:
<filter> ::= '(' <filtercomp> ')'
<filtercomp> ::= <and> | <or> | <not> | <simple>
<and> ::= '&' <filterlist>
<or> ::= '|' <filterlist>
<not> ::= '!' <filter>
<filterlist> ::= <filter> | <filter> <filterlist>
<simple> ::= <attributetype> <filtertype> <attributevalue>
<filtertype> ::= '=' | '~=' | '<=' | '>='
these filters are utilized to locate users and groups, as well as to aid in finding new uid's and gid's. π
USER_CN_STRING = stringβ string is used during user creation. it allows you to specify the dn of the user. the dn becomesstring=login,...GROUP_CN_STRING = stringβ string is used during group creation. it allows you to specify the dn of the group. the dn becomesstring=groupname,...TIMEOUT = timeoutβ timeout should be a value in seconds and greater than 0. if unspecified the default is60. this value determines the duration after which an operation should be aborted. β°
π§ the user-centric corner of [LDAP] π§
the following options are still used by the [LDAP] section, but they're more user centric and less ldap centric. iykyk. π
SKEL_DIR = dirβ dir should be the path for a directory that files are to be copied from when-mis given at the command line. this value can be overridden by the-kcommand line switch.DEFAULT_SHELL = shellβ the default name of the user's login shell. this value can be overridden by the-scommand line switch.HOME_DIRECTORY = directoryβ new users will be created using directory prepended to the user's login name. if this variable is undefined, it must be specified at the command line with the-dswitch. when specified at the command line, that value is used for the user's home directory.MAX_UIDNUMBER = integerMIN_UIDNUMBER = integerMAX_GIDNUMBER = integerMIN_GIDNUMBER = integerID_MAX_PASSES = integer
these values control gid and uid generation. when a uid is not specified at the command line (for a useradd), these values are used for finding the next unused uid (random or linear). similar for groupadd. these are pretty self evident. ID_MAX_PASSES is the number of times that a search should be performed before giving up. π³οΈ
RANDOM = true or falseβ ifRANDOMis true, then a random number will be generated and searched for (this number, if unused in the directory, will be the user's uid or a group's gid). if a user or group with that ID exists, the process will continue forID_MAX_PASSES. if true, a linear scan will be done starting atMIN_UIDNUMBER(orGIDNUMBER) and will not stop until an unused ID is found or the number of scans is equal toID_MAX_PASSES. if random is false, only one query is done on the directory, but it may still be a bit slower than setting random to true in some cases. π²
ok bestie i'm just the messenger on that one, i'm telling you exactly what it says, no edits, no notes. π
USERGROUPS = yes or noβ theUSERGROUPScan be eitheryesorno. if yes, each created user will be given their own group to use as a default. if no, each created user will be placed in the group whose gid isUSER_GID.USERS_GID = integerβ ifUSERGROUPSisno, thenUSERS_GIDshould be the GID of the groupusers(or the equivalent group) on your system. if this is unspecified, the default is100.GECOS = stringβ the default value for a user's gecos field. this can be overridden at the command line with the-cswitch.PASSWORD_FILE = fileβ the value should be a Unix style, passwd formatted file. in order to use this value the-Fswitch must be used at the command line. this value can be empty if a file is provided with the-Fswitch. in this case, the user's attributes are taken from the file (if the user is found) and used in the LDAP entry.SHADOW_FILE = fileβ the value should be a Unix style, shadow formatted file. in order to use this value the-Sswitch must be used at the command line. this value can be empty if a file is provided with the-Sswitch. in this case, the user's attributes are taken from the file (if the user is found) and used in the LDAP entry (including the password). πHASH = hashβ hash is a hash of eitherclear,md5crypt,crypt,sha1,ssha1,md5, orsmd5to be used when hashing user passwords. this is largely implementation dependent but all are supported. if you are taking passwords from a standard password file, this should beclear(i think, need to check...). this can be overridden at the command line with the-Hswitch. πSHADOWLASTCHANGE = integerSHADOWMAX = integerSHADOWWARING = integerSHADOWEXPIRE = integerSHADOWFLAG = integerSHADOWMIN = integerSHADOWINACTIVE = integer
these values are better documented in shadow(3) and in shadow(5). these are not required by RFC2307 but are by some ldap authentication implementations. these values can only be specified here, or taken from an existing shadow file for the user.
ADD_SCRIPT = executableDEL_SCRIPT = executable
ADD_SCRIPT and DEL_SCRIPT work the same, however ADD_SCRIPT is used only for a useradd operation and DEL_SCRIPT is used only for a userdel operation. these can be overridden via the command line switch -X. if specified in the configuration file or at the command line, the script is executed after a successful useradd or userdel. the first argument to the script is the login name as specified at the command line. π¬
π PASSWD OPTIONS π
password options should be under the section marked [PASSWD]. these options are only useful when DEFAULT_METHOD is set to passwd, or when passwd was specified at the command line with the -M switch. these options are only used by the passwd module.
and, uh. this module is not yet functional, so the author won't document the options. that's it, that's the whole section. π
π SEE ALSO π
π AUTHORS π
Blake Matheny <bmatheny@purdue.edu>
the current version of this software is always available at http://cpu.sourceforge.net π
π BUGS π
to report a bug or problem, please e-mail:
cpu-users@lists.sourceforge.net
π TODO π
see the TODO file that accompanied the software. please e-mail us with any additional suggestions. bestie we want your ideas fr fr π«Ά
and that's the whole page, mwah π this was CPU.CONF(5) from the File Formats Manual, dated 17 February 2003 β go forth and configure responsibly, queen π
π¦ where this page comes from
- debian bookworm: cpu 1.4.3-14~deb12u1 Β· GPL-2.0-or-later
- debian trixie: cpu 1.4.3-15+b1 Β· GPL-2.0-or-later
- ubuntu jammy: cpu 1.4.3-13build1 Β· GPL-2.0-or-later
- ubuntu noble: cpu 1.4.3-13build2 Β· GPL-2.0-or-later
- ubuntu questing: cpu 1.4.3-16
- ubuntu resolute: cpu 1.4.3-16build1 Β· GPL-2.0-or-later
- ubuntu stonking: cpu 1.4.3-16build1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms