title: clone_member(8)

text:
# clone_member(8)

## NAME
clone_member - Clone a Mailman mailing list subscriber address

## SYNOPSIS
clone_member [options] fromoldaddr tonewaddr

## DESCRIPTION
Cloning a member address means that a new member will be added who has all the same options and passwords as the original member address. Note that this operation is fairly trusting of the user who runs it -- it does no verification to the new address, it does not send out a welcome message, etc.

The existing member's subscription is usually not modified in any way. If you want to remove the old address, use the -r flag. If you also want to change any list admin addresses, use the -a flag.

## OPTIONS
-l listname, --listname=listname

Check and modify only the named mailing lists. If -l is not given, then all mailing lists are scanned from the address. Multiple -l options can be supplied.

-r, --remove

Remove the old address from the mailing list after it's been cloned.

-a, --admin

Scan the list admin addresses for the old address, and clone or change them too.

-q, --quiet

Do the modifications quietly.

-n, --nomodify

Print what would be done, but don't actually do it. Inhibits the 0

fromoldaddr (`from old address') is the old address of the user. tonewaddr (`to new address') is the new address of the user.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


package: mailman

title: config_list(8)

text:
# config_list(8)

## NAME
config_list - Configure a Mailman mailing list from a text file description

## SYNOPSIS
config_list [options] listname

## DESCRIPTION
This is a very powerful script which lets you view and modify a list's configuration variables from the command line. E.g. you can dump out all the list options into a plain text file (actually a valid Python file!), complete with comments explaining each variable. Or you can apply the configuration from such a file to a particular list.

## OPTIONS
-i filename, --inputfile=filename

Configure the list by assigning each module-global variable in the file to an attribute on the list object, then saving the list. The named file is loaded with execfile() and must be legal Python code. Any variable that isn't already an attribute of the list object is ignored (a warning message is printed). See also the -c option. A special variable named `mlist' is put into the globals during the execfile, which is bound to the actual MailList object. This lets you do all manner of bizarre thing to the list object, but BEWARE! Using this can severely (and possibly irreparably) damage your mailing list!

-o filename, --outputfile=filename

Instead of configuring the list, print out a list's configuration variables in a format suitable for input using this script. In this way, you can easily capture the configuration settings for a particular list and imprint those settings on another list. filename is the file to output the settings to. If filename is `-', standard out is used.

-c, --checkonly

The modified list is not actually changed. Only useful with -i.

-v, --verbose

Print the name of each attribute as it is being changed. Only useful with -i.

-h, --help

Print a small help text and exit

## NOTES
The options -o and -i are mutually exclusive.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


title: find_member(8)

text:
# find_member(8)

## NAME
find_member - Find all Mailman mailing lists that a member's address is on

## SYNOPSIS
find_member [options] regex [regex [...]]

## OPTIONS
-l listname, --listname=listname

Include only the named list in the search.

-x listname, --exclude=listname

Exclude the named list from the search.

-w, --owners

Search list owners as well as members.

-o file, --output=file

Append the alias setting recommendations to file, in addition to printing them to standard output.

-h, --help

Print a small help text and exit

regex

A Python regular expression to match against.

## NOTES
The interaction between -l and -x is as follows. If any -l option is given then only the named list will be included in the search. If any -x option is given but no -l option is given, then all lists will be search except those specifically excluded.

Regular expression syntax is Perl5-like, using the Python re module. Complete specifications are at:

http://www.python.org/doc/current/lib/module-re.html

Address matches are case-insensitive, but case-preserved addresses are displayed.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


title: list_admins(8)

text:
# list_admins(8)

## NAME
list_admins - List all the owners of a Mailman mailing list.

## SYNOPSIS
list_admins [options] listname ...

## OPTIONS
-v=vhost, --all-vhost=vhost

List the owners of all the mailing lists for the given virtual host.

-a, --all

List the owners of all the mailing lists on this system.

-h, --help

Print a small help text and exit

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written for Debian by Bernd S. Brentrup <bsb@debian.org>, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


title: list_lists(8)

text:
# list_lists(8)

## NAME
list_lists - List all Mailman mailing lists on this host

## SYNOPSIS
list_lists [options]

## OPTIONS
-a, --advertised

List only those mailing lists that are publically advertised

-V domain, --virtual-host-overview=domain

List only those mailing lists that are homed to the given virtual domain. This only works if the VIRTUAL_HOST_OVERVIEW variable is set.

-b, --bare

Displays only the list name, with no description.

-h, --help

Print a small help text and exit

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


title: list_members(8)

text:
# list_members(8)

## NAME
list_members - List all the members of a Mailman mailing list

## SYNOPSIS
list_members [-o file] [-r] [-d] [-p] [-h] listname

## OPTIONS
-o file, --output file

Write output to specified file instead of standard out.

-r, --regular

Print just the regular (non-digest) members.

-d [kind], --digest[=kind]

Print just the digest members. Optional argument can be "mime" or "plain" which prints just the digest members receiving that kind of digest.

--nomail[=why], -n [why]

Print the members that have delivery disabled. Optional argument can be "byadmin", "byuser", "bybounce", or "unknown" which prints just the users who have delivery disabled for that reason. It can also be "enabled" which prints just those member for whom delivery is enabled.

-f, --fullnames

Include the full names in the output.

-p, --preserve

Output member addresses case preserved the way they were added to the list. Otherwise, addresses are printed in all lowercase.

-i, --invalid

Print only the addresses in the membership list that are invalid. Ignores -r, -d, -n.

-u, --unicode

Print addresses which are stored as Unicode objects instead of normal string objects. Ignores -r, -d, -n.

-h, --help

Print a small help text and exit

listname is the name of the mailing list to use.

## NOTES
Note that if neither -r or -d is supplied, both regular members are printed first, followed by digest members, but no indication is given as to address status.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


mmarch

title: mmarch(8)

text:
# mmarch(8)

## NAME
mmarch - Rebuild a Mailman mailing list's archive.

## SYNOPSIS
mmarch [options] <listname> [<mbox>]

## DESCRIPTION
Use this command to rebuild the archives for a mailing list. You may want to do this if you edit some messages in an archive, or remove some messages from an archive.

-h, --help

Print this error message and exit.

-q, --quiet

Make the archiver output less verbose.

--wipe

First wipe out the original archive before regenerating. You usually want to specify this argument unless you're generating the archive in chunks.

-s N, --start=N

Start indexing at article N, where article 0 is the first in the mbox. Defaults to 0.

-e M, --end=M

End indexing at article M. This script is not very efficient with respect to memory management, and for large archives, it may not be possible to index the mbox entirely. For that reason, you can specify the start and end article numbers.

mbox is the path to a list's complete mbox archive. Usually this will be some path in the archives/private directory. For example:

% mmarch mylist archives/private/mylist.mbox/mylist.mbox

mbox is optional. If it is missing, it is calculated.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


mmsitepass

title: mmsitepass(8)

text:
# mmsitepass(8)

## NAME
mmsitepass - Set the Mailman site password, prompting from the terminal.

## SYNOPSIS
mmsitepass [options] [password]

## OPTIONS
-c, --listcreator

Set the list creator password instead of the site password. The list creator is authorized to create and remove lists, but does not have the total power of the site administrator.

-h, --help

Print a small help text and exit

## SECURITY
Including the admin-password on the command line is a small security risk if you have untrusted users on the system.

## DESCRIPTION
The site password can be used in most if not all places that the list administrator's password can be used, which in turn can be used in most places that a list users password can be used.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


newlist

title: newlist(8)

text:
# newlist(8)

## NAME
newlist - Create a new, unpopulated Mailman mailing list.

## SYNOPSIS
newlist [options] [listname] [listadmin-addr] [admin-password]

## OPTIONS
-l language, --language=language

Make the list's preferred language `language', which must be the (mostly two letter) language code as found under /usr/share/mailman.

-u urlhost, --urlhost=urlhost

Gives the list's web interface host name.

-e emailhost, --emailhost=emailhost

Gives the list's email domain name.

-q, --quiet

Normally the administrator is notified by email (after a prompt) that their list has been created. This option suppresses that notification and the prompting.

-h, --help

Print a small help text and exit

## SECURITY
Including the admin-password on the command line is a small security risk if you have untrusted users on the system.

## NOTES
You can specify as many of the arguments as you want on the command line: you will be prompted for the missing ones.

Every Mailman list has two parameters which define the default host name for outgoing email, and the default URL for all web interfaces. When you configured Mailman, certain defaults were calculated, but if you are running multiple virtual Mailman sites, then the defaults may not be appropriate for the list you are creating.

You also specify the domain to create your new list in by typing the command like so:

newlist --urlhost=www.example.com mylist

where `www.example.com' should be the base hostname for the URL to this virtual hosts's lists. E.g. with this setting people will view the general list overviews at http://www.example.com/mailman/listinfo. Also, www.example.com should be a key in the VIRTUAL_HOSTS mapping in mm_cfg.py/Defaults.py if the email hostname to be automatically determined.

If you want the email hostname to be different from the one looked up by the VIRTUAL_HOSTS or if urlhost is not registered in VIRTUAL_HOSTS, you can specify `emailhost' like so:

newlist --urlhost=www.example.com --emailhost=example.com mylist

where `example.com' is the mail domain name. If you don't specify emailhost but urlhost is not in the virtual host list, then mm_cfg.DEFAULT_EMAIL_HOST will be used for the email interface.

For backward compatibility, you can also specify the domain to create your new list in by spelling the listname like so:

mylist@www.example.com

where www.example.com is used for `urlhost' but it will also be used for `emailhost' if it is not found in the virtual host table. Note `--urlhost' and `--emailhost' have precedence to this notation.

If you spell the list name as just `mylist', then the email hostname will be taken from DEFAULT_EMAIL_HOST and the url will be taken from DEFAULT_URL (as defined in your Defaults.py file or overridden by settings in mm_cfg.py).

Note that listnames are forced to lowercase.

The list admin address need to be a fully-qualified address, like owner@example.com, not just owner.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


title: remove_members(8)

text:
# remove_members(8)

## NAME
remove_members - Remove members from a Mailman mailing list.

## SYNOPSIS
remove_members [options] listname [addr1 ...]

## OPTIONS
-f file, --file=file

Remove member addresses found in the given file. If file is `-', read stdin.

-a, --all

Remove all members of the mailing list. (mutually exclusive with --fromall)

--fromall

Removes the given addresses from all the lists on this system regardless of virtual domains if you have any. This option cannot be used with -a/--all. Also, you should not specify a listname when using this option.

-n, --nouserack

Don't send the user acknowledgements. If not specified, the list default value is used.

-N, --noadminack

Don't send the admin acknowledgements. If not specified, the list default value is used.

-h, --help

Print a small help text and exit

listname is the name of the mailing list to use.

addr1 ... are additional addresses to remove.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


rmlist

title: rmlist(8)

summary: Remove the components of a Mailman mailing list with impunity \- beware!

text:
# rmlist(8)

## NAME
rmlist - Remove the components of a Mailman mailing list with impunity - beware!

## SYNOPSIS
rmlist [-a] [-h] listname

## DESCRIPTION
This removes (almost) all traces of a mailing list. By default, the lists archives are not removed, which is very handy for retiring old lists.

## OPTIONS
-a, --archives

Remove the list's archives too, or if the list has already been deleted, remove any residual archives.

-h, --help

Print a small help text and exit

listname is the name of the mailing list to use.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


title: sync_members(8)

text:
# sync_members(8)

## NAME
sync_members - Synchronize a Mailman mailing list's membership with a flat file.

## SYNOPSIS
sync_members [options] -f file listname

## DESCRIPTION
This script is useful if you have a Mailman mailing list and a sendmail :include: style list of addresses (also as is used in Majordomo). For every address in the file that does not appear in the mailing list, the address is added. For every address in the mailing list that does not appear in the file, the address is removed. Other options control what happens when an address is added or removed.

## OPTIONS
-n, --no-change

Don't actually make the changes. Instead, print out what would be done to the list.

-w={ yes | no }, --welcome-msg={ yes | no }

Sets whether or not to send the newly added members a welcome message, overriding whatever the list's `send_welcome_msg' setting is. With -w=yes or -w, the welcome message is sent. With -w=no, no message is sent.

-g={ yes | no }, --goodbye-msg={ yes | no }

Sets whether or not to send the goodbye message to removed members, overriding whatever the list's `send_goodbye_msg' setting is. With -g=yes or -g, the goodbye message is sent. With -g=no, no message is sent.

-d={ yes | no }, --digest={ yes | no }

Selects whether to make newly added members receive messages in digests. With -d=yes or -d, they become digest members. With -d=no (or if no -d option given) they are added as regular members.

-a={ yes | no }, --notifyadmin={ yes | no }

Specifies whether the admin should be notified for each subscription or unsubscription. If you're adding a lot of addresses, you definitely want to turn this off! With -a=yes or -a, the admin is notified. With -a=no, the admin is not notified. With no -a option, the default for the list is used.

-f=filename, --file=filename

This option is required. It specifies the flat file to synchronize against. Email addresses must appear one per line. If filename is `-' then stdin is used.

-h, --help

Print a small help text and exit.

listname specifies the list to synchronize.

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written by Tollef Fog Heen <tfheen@debian.org> for Debian, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


withlist

title: withlist(8)

text:
# withlist(8)

## NAME
withlist - General framework for interacting with a Mailman mailing list object.

## SYNOPSIS
withlist [options] listname [args ...]

There are two ways to use this script: interactively or programmatically. Using it interactively allows you to play with, examine and modify a MailList object from Python's interactive interpreter. When running interactively, a MailList object called `m' will be available in the global namespace. It also loads the class MailList into the global namespace.

Programmatically, you can write a function to operate on a MailList object, and this script will take care of the housekeeping (see below for examples). In that case, the general usage syntax is:

## OPTIONS
-l, --lock

Lock the list when opening. Normally the list is opened unlocked (e.g. for read-only operations). You can always lock the file after the fact by typing `m.Lock()' Note that if you use this option, you should explicitly call m.Save() before exiting, since the interpreter's clean up procedure will not automatically save changes to the MailList object (but it will unlock the list).

-i, --interactive

Leaves you at an interactive prompt after all other processing is complete. This is the default unless the -r option is given.

-r [module.]callable, --run [module.]callable

This can be used to run a script with the opened MailList object. This works by attempting to import module (which must already be accessible on your sys.path), and then calling callable from the module. callable can be a class or function; it is called with the MailList object as the first argument. If additional args are given on the command line, they are passed as subsequent positional args to the callable. Note that module. is optional; if it is omitted then a module with the name callable will be imported.

The global variable `r' will be set to the results of this call.

-a, --all

This option only works with the -r option. Use this if you want to execute the script on all mailing lists. When you use -a you should not include a listname argument on the command line. The variable `r' will be a list of all the results.

-q, --quiet

Suppress all status messages.

-h, --help

Print a small help text and exit.

## EXAMPLES
Here's an example of how to use the -r option. Say you have a file in the Mailman installation directory called `listaddr.py', with the following two functions:

def listaddr(mlist):

print mlist.GetListEmail()

def requestaddr(mlist):

print mlist.GetRequestEmail()

Now, from the command line you can print the list's posting address by running the following from the command line:

% bin/withlist -r listaddr mylist

Loading list: mylist (unlocked)

Importing listaddr ...

Running listaddr.listaddr() ...

mylist@example.com

And you can print the list's request address by running:

% bin/withlist -r listaddr.requestaddr mylist

Loading list: mylist (unlocked)

Importing listaddr ...

Running listaddr.requestaddr() ...

mylist-request@example.com

As another example, say you wanted to change the password for a particular user on a particular list. You could put the following function in a file called `changepw.py':

from Mailman.Errors import NotAMemberError

def changepw(mlist, addr, newpasswd):

try:

mlist.setMemberPassword(addr, newpasswd)

mlist.Save()

except NotAMemberError:

print 'No address matched:', addr

and run this from the command line:

% bin/withlist -l -r changepw mylist somebody@example.org foobar

## AUTHOR
Author of Mailman is the Mailman Cabal, see http://www.list.org/ for information. This manpage is written for Debian by Bernd S. Brentrup <bsb@debian.org>, but may be used by others.

## SEE ALSO
Mailman documentation on http://www.list.org/ and in /usr/share/doc/mailman.


makedumpfile

package: makedumpfile

title: makedumpfile(8)

summary: make a small dumpfile of kdump

text:
# makedumpfile(8)

## NAME
makedumpfile - make a small dumpfile of kdump

## SYNOPSIS
makedumpfile [OPTION] [-x VMLINUX|-i VMCOREINFO] VMCORE DUMPFILE

makedumpfile -F [OPTION] [-x VMLINUX|-i VMCOREINFO] VMCORE

makedumpfile [OPTION] -x VMLINUX [--config FILTERCONFIGFILE] [--eppic EPPICMACRO] VMCORE DUMPFILE

makedumpfile -R DUMPFILE

makedumpfile --split [OPTION] [-x VMLINUX|-i VMCOREINFO] VMCORE DUMPFILE1 DUMPFILE2 [DUMPFILE3 ..]

makedumpfile [OPTION] [-x VMLINUX|-i VMCOREINFO] --num-threads THREADNUM VMCORE DUMPFILE

makedumpfile --reassemble DUMPFILE1 DUMPFILE2 [DUMPFILE3 ..] DUMPFILE

makedumpfile -g VMCOREINFO -x VMLINUX

makedumpfile [OPTION] [--xen-syms XEN-SYMS|--xen-vmcoreinfo VMCOREINFO] VMCORE DUMPFILE

makedumpfile --dump-dmesg [--partial-dmesg] [-x VMLINUX|-i VMCOREINFO] VMCORE LOGFILE

makedumpfile [OPTION] -x VMLINUX --diskset=VMCORE1 --diskset=VMCORE2 [--diskset=VMCORE3 ..] DUMPFILE

makedumpfile -h

makedumpfile -v

## DESCRIPTION
With kdump, the memory image of the first kernel (called "panicked kernel") can be taken as /proc/vmcore while the second kernel (called "kdump kernel" or "capture kernel") is running. This document represents /proc/vmcore as VMCORE. makedumpfile makes a small DUMPFILE by compressing dump data or by excluding unnecessary pages for analysis, or both. makedumpfile needs the first kernel's debug information, so that it can distinguish unnecessary pages by analyzing how the first kernel uses the memory. The information can be taken from VMLINUX or VMCOREINFO.

makedumpfile can exclude the following types of pages while copying VMCORE to DUMPFILE, and a user can choose which type of pages will be excluded.

- Pages filled with zero

- Cache pages without private flag (non-private cache)

- Cache pages with private flag (private cache)

- User process data pages

- Free pages

makedumpfile provides two DUMPFILE formats (the ELF format and the kdump-compressed format). By default, makedumpfile makes a DUMPFILE in the kdump-compressed format. The kdump-compressed format is readable only with the crash utility, and it can be smaller than the ELF format because of the compression support. The ELF format is readable with GDB and the crash utility. If a user wants to use GDB, DUMPFILE format has to be explicitly specified to be the ELF format.

Apart from the exclusion of unnecessary pages mentioned above, makedumpfile allows user to filter out targeted kernel data. The filter config file can be used to specify kernel/module symbols and its members that need to be filtered out through the erase command syntax. makedumpfile reads the filter config and builds the list of memory addresses and its sizes after processing filter commands. The memory locations that require to be filtered out are then poisoned with character 'X' (58 in Hex). Refer to makedumpfile.conf(5) for file format.

Eppic macros can also be used to specify kernel symbols and its members that need to be filtered. Eppic provides C semantics including language constructs such as conditional statements, logical and arithmetic operators, functions, nested loops to traverse and erase kernel data. --eppic requires eppic_makedumpfile.so and eppic library. eppic_makedumpfile.so can be built from makedumpfile source. Refer to http://code.google.com/p/eppic/ to build eppic library libeppic.a and for more information on writing eppic macros. NOTE: currently Rust is not supported in this function.

To analyze the first kernel's memory usage, makedumpfile can refer to VMCOREINFO instead of VMLINUX. VMCOREINFO contains the first kernel's information (structure size, field offset, etc.), and VMCOREINFO is small enough to be included into the second kernel's initrd.

If the second kernel is running on its initrd without mounting a root file system, makedumpfile cannot refer to VMLINUX because the second kernel's initrd cannot include a large file like VMLINUX. To solve the problem, makedumpfile makes VMCOREINFO beforehand, and it refers to VMCOREINFO instead of VMLINUX while the second kernel is running.

VMCORE has contained VMCOREINFO since linux-2.6.24, and a user does not need to specify neither -x nor -i option.

If the second kernel is running on its initrd without mounting any file system, a user needs to transport the dump data to a remote host. To transport the dump data by SSH, makedumpfile outputs the dump data in the intermediate format (the flattened format) to the standard output. By piping the output data to SSH, a user can transport the dump data to a remote host. Note that analysis tools (crash utility before version 5.1.2 or GDB) cannot read the flattened format directly, so on a remote host the received data in the flattened format needs to be rearranged to a readable DUMPFILE format by makedumpfile (or makedumpfile-R.pl).

makedumpfile can read a DUMPFILE in the kdump-compressed format instead of VMCORE and re-filter it. This feature is useful in situation that users need to reduce the file size of DUMPFILE for sending it somewhere by ftp/scp/etc. (If all of the page types, which are specified by a new dump_level, are excluded from an original DUMPFILE already, a new DUMPFILE is the same as an original DUMPFILE.)

For example, makedumpfile can create a DUMPFILE of dump_level 31 from the one of dump_level 3 like the following:

Example:

\# makedumpfile -c -d 3 /proc/vmcore dumpfile.1

\# makedumpfile -c -d 31 dumpfile.1 dumpfile.2

makedumpfile can read VMCORE(s) in three kinds of sadump formats: single partition format, diskset format and media backup format, and can convert each of them into kdump-compressed format with filtering and compression processing. Note that for VMCORE(s) created by sadump, you always need to pass VMLINUX with -x option. Also, to pass multiple VMCOREs created on diskset configuration, you need to use --diskset option.

## OPTIONS
-c,-l,-p,-z

Compress dump data by the page using the following compression library respectively:

-c : zlib

-l : lzo

-p : snappy

-z : zstd

(-l, -p and -z option need USELZO=on, USESNAPPY=on and USEZSTD=on respectively when building makedumpfile)

A user cannot specify this option with -E option, because the ELF format does not support compressed data.

Example:

\# makedumpfile -c -d 31 -x vmlinux /proc/vmcore dumpfile

-d dump_level

Specify the type of unnecessary page for analysis.

Pages of the specified type are not copied to DUMPFILE. The page type marked in the following table is excluded. A user can specify multiple page types by setting the sum of each page type for dump_level. The maximum of dump_level is 31. Note that a dump_level for Xen dump filtering is 0 or 1 on a machine other than x86_64. On a x86_64 machine, even 2 or bigger dump level will be effective if you specify domain-0's vmlinux with -x option. Then the pages are excluded only from domain-0.

If specifying multiple dump_levels with the delimiter ',', makedumpfile retries to create DUMPFILE using the next dump_level when the size of a dumpfile exceeds the limit specified with '-L' or when a "No space on device" error happens. For example, if dump_level is "11,31" and makedumpfile fails with dump_level 11, makedumpfile retries with dump_level 31.

Example:

\# makedumpfile -d 11 -x vmlinux /proc/vmcore dumpfile

\# makedumpfile -d 11,31 -x vmlinux /proc/vmcore dumpfile

Base level:

dump_level consists of five bits, so there are five base levels to specify the type of unnecessary page.

1 : Exclude the pages filled with zero.

2 : Exclude the non-private cache pages.

4 : Exclude all cache pages.

8 : Exclude the user process data pages.

16 : Exclude the free pages. Here is the all combinations of the bits.

| |non- | | |

dump | zero |private|private| user | free

level | page |cache |cache | data | page

-------+------+-------+-------+------+------

0 | | | | |

1 | X | | | |

2 | | X | | |

3 | X | X | | |

4 | | X | X | |

5 | X | X | X | |

6 | | X | X | |

7 | X | X | X | |

8 | | | | X |

9 | X | | | X |

10 | | X | | X |

11 | X | X | | X |

12 | | X | X | X |

13 | X | X | X | X |

14 | | X | X | X |

15 | X | X | X | X |

16 | | | | | X

17 | X | | | | X

18 | | X | | | X

19 | X | X | | | X

20 | | X | X | | X

21 | X | X | X | | X

22 | | X | X | | X

23 | X | X | X | | X

24 | | | | X | X

25 | X | | | X | X

26 | | X | | X | X

27 | X | X | | X | X

28 | | X | X | X | X

29 | X | X | X | X | X

30 | | X | X | X | X

31 | X | X | X | X | X

-L SIZE

Limit the size of the output file to SIZE bytes. An incomplete DUMPFILE or LOGFILE is written if the size would otherwise exceed SIZE.

-E

Create DUMPFILE in the ELF format.

This option cannot be specified with the -c, -l or -p options, because the ELF format does not support compressed data.

Example:

\# makedumpfile -E -d 31 -x vmlinux /proc/vmcore dumpfile

-f

Force existing DUMPFILE to be overwritten and mem-usage to work with older kernel as well.

Example:

\# makedumpfile -f -d 31 -x vmlinux /proc/vmcore dumpfile

This command overwrites DUMPFILE even if it already exists.

\# makedumpfile -f --mem-usage /proc/kcore

Kernel version lesser than v4.11 will not work with --mem-usage functionality until it has been patched with upstream commit 464920104bf7. Therefore if you have patched your older kernel then use -f.

-x VMLINUX

Specify the first kernel's VMLINUX with debug information to analyze the first kernel's memory usage.

This option is necessary if VMCORE does not contain VMCOREINFO, [-i VMCOREINFO] is not specified, and dump_level is 2 or more.

The page size of the first kernel and the second kernel should match.

Example:

\# makedumpfile -d 31 -x vmlinux /proc/vmcore dumpfile

-i VMCOREINFO

Specify VMCOREINFO instead of VMLINUX for analyzing the first kernel's memory usage.

VMCOREINFO should be made beforehand by makedumpfile with -g option, and it contains the first kernel's information.

This option is necessary if VMCORE does not contain VMCOREINFO, [-x VMLINUX] is not specified, and dump_level is 2 or more.

Example:

\# makedumpfile -d 31 -i vmcoreinfo /proc/vmcore dumpfile

-g VMCOREINFO

Generate VMCOREINFO from the first kernel's VMLINUX with debug information.

VMCOREINFO must be generated on the system that is running the first kernel. With -i option, a user can specify VMCOREINFO generated on the other system that is running the same first kernel. [-x VMLINUX] must be specified.

Example:

\# makedumpfile -g vmcoreinfo -x vmlinux

--config FILTERCONFIGFILE

Used in conjunction with -x VMLINUX option, to specify the filter config file FILTERCONFIGFILE that contains erase commands to filter out desired kernel data from vmcore while creating DUMPFILE. For filter command syntax please refer to makedumpfile.conf(5).

--eppic EPPICMACRO

Used in conjunction with -x VMLINUX option, to specify the eppic macro file that contains filter rules or directory that contains eppic macro files to filter out desired kernel data from vmcore while creating DUMPFILE. When directory is specified, all the eppic macros in the directory are processed.

-F

Output the dump data in the flattened format to the standard output for transporting the dump data by SSH.

Analysis tools (crash utility before version 5.1.2 or GDB) cannot read the flattened format directly. For analysis, the dump data in the flattened format should be rearranged to a normal DUMPFILE (readable with analysis tools) by -R option. By which option is specified with -F option, the format of the rearranged DUMPFILE is fixed. In other words, it is impossible to specify the DUMPFILE format when the dump data is rearranged with -R option. If specifying -E option with -F option, the format of the rearranged DUMPFILE is the ELF format. Otherwise, it is the kdump-compressed format. All the messages are output to standard error output by -F option because standard output is used for the dump data.

Example:

\# makedumpfile -F -c -d 31 -x vmlinux /proc/vmcore \

| ssh user@host "cat > dumpfile.tmp"

\# makedumpfile -F -c -d 31 -x vmlinux /proc/vmcore \

| ssh user@host "makedumpfile -R dumpfile"

\# makedumpfile -F -E -d 31 -i vmcoreinfo /proc/vmcore \

| ssh user@host "makedumpfile -R dumpfile"

\# makedumpfile -F -E --xen-vmcoreinfo VMCOREINFO /proc/vmcore \

| ssh user@host "makedumpfile -R dumpfile"

-R

Rearrange the dump data in the flattened format from the standard input to a normal DUMPFILE (readable with analysis tools).

Example:

\# makedumpfile -R dumpfile < dumpfile.tmp

\# makedumpfile -F -d 31 -x vmlinux /proc/vmcore \

| ssh user@host "makedumpfile -R dumpfile" Instead of using -R option, a perl script "makedumpfile-R.pl" rearranges the dump data in the flattened format to a normal DUMPFILE, too. The perl script does not depend on architecture, and most systems have perl command. Even if a remote host does not have makedumpfile, it is possible to rearrange the dump data in the flattened format to a readable DUMPFILE on a remote host by running this script.

Example:

\# makedumpfile -F -d 31 -x vmlinux /proc/vmcore \

| ssh user@host "makedumpfile-R.pl dumpfile"

--split

Split the dump data to multiple DUMPFILEs in parallel. If specifying DUMPFILEs on different storage devices, a device can share I/O load with other devices and it reduces time for saving the dump data. The file size of each DUMPFILE is smaller than the system memory size which is divided by the number of DUMPFILEs. This feature supports only the kdump-compressed format.

Example:

\# makedumpfile --split -d 31 -x vmlinux /proc/vmcore dumpfile1 dumpfile2

--num-threads THREADNUM

Using multiple threads to read and compress data of each page in parallel. And it will reduces time for saving DUMPFILE. Note that if the usable cpu number is less than the thread number, it may lead to great performance degradation. This feature only supports creating DUMPFILE in kdump-comressed format from VMCORE in kdump-compressed format or elf format.

Example:

\# makedumpfile -d 31 --num-threads 4 /proc/vmcore dumpfile

--reassemble

Reassemble multiple DUMPFILEs, which are created by --split option, into one DUMPFILE. dumpfile1 and dumpfile2 are reassembled into dumpfile on the following example.

Example:

\# makedumpfile --reassemble dumpfile1 dumpfile2 dumpfile

-b <order>

Cache 2^order pages in ram when generating DUMPFILE before writing to output. The default value is 4.

--cyclic-buffer buffer_size

Specify the buffer size in kilo bytes for bitmap data. Filtering processing will be divided into multi cycles to fix the memory consumption, the number of cycles is represented as:

num_of_cycles = system_memory / (buffer_size * 1024 * bit_per_bytes * page_size )

The lesser number of cycles, the faster working speed is expected. By default, buffer_size will be calculated automatically depending on system memory size, so ordinary users don't need to specify this option.

Example:

\# makedumpfile --cyclic-buffer 1024 -d 31 -x vmlinux /proc/vmcore dumpfile

--splitblock-size splitblock_size

Specify the splitblock size in kilo bytes for analysis with --split. If --splitblock N is specified, difference of each splitted dumpfile size is at most N kilo bytes.

Example:

\# makedumpfile --splitblock-size 1024 -d 31 -x vmlinux --split /proc/vmcore dumpfile1 dumpfile2

--work-dir

Specify the working directory for the temporary bitmap file. If this option isn't specified, the bitmap will be saved on memory. Filtering processing has to do 2 pass scanning to fix the memory consumption, but it can be avoided by using working directory on file system. So if you specify this option, the filtering speed may be bit faster. Example:

\# makedumpfile --work-dir /tmp -d 31 -x vmlinux /proc/vmcore dumpfile

--non-mmap

Never use mmap(2) to read VMCORE even if it supports mmap(2). Generally, reading VMCORE with mmap(2) is faster than without it, so ordinary users don't need to specify this option. This option is mainly for debugging.

Example:

\# makedumpfile --non-mmap -d 31 -x vmlinux /proc/vmcore dumpfile

--xen-syms XEN-SYMS

Specify the XEN-SYMS with debug information to analyze the xen's memory usage. This option extracts the part of xen and domain-0.

Example:

\# makedumpfile -E --xen-syms xen-syms /proc/vmcore dumpfile

--xen-vmcoreinfo VMCOREINFO

Specify VMCOREINFO instead of XEN-SYMS for analyzing the xen's memory usage.

VMCOREINFO should be made beforehand by makedumpfile with -g option, and it contains the xen's information.

Example:

\# makedumpfile -E --xen-vmcoreinfo VMCOREINFO /proc/vmcore dumpfile

-X

Exclude all the user domain pages from Xen kdump's VMCORE, and extracts the part of xen and domain-0. If VMCORE contains VMCOREINFO for Xen, it is not necessary to specify --xen-syms and --xen-vmcoreinfo.

Example:

\# makedumpfile -E -X /proc/vmcore dumpfile

--xen_phys_start xen_phys_start_address

This option is only for x86_64. Specify the xen_phys_start_address, if the xen code/data is relocatable and VMCORE does not contain xen_phys_start_address in the CRASHINFO. xen_phys_start_address can be taken from the line of "Hypervisor code and data" in /proc/iomem. For example, specify 0xcee00000 as xen_phys_start_address if /proc/iomem is the following:

-------------------------------------------------------

\# cat /proc/iomem

...

cee00000-cfd99999 : Hypervisor code and data

...

------------------------------------------------------- Example:

\# makedumpfile -E -X --xen_phys_start 0xcee00000 /proc/vmcore dumpfile

--message-level message_level

Specify the message types.

Users can restrict outputs printed by specifying message_level with this option. The message type marked with an X in the following table is printed. For example, according to the table, specifying 7 as message_level means progress indicator, common message, and error message are printed, and this is a default value. Note that the maximum value of message_level is 31.

message | progress | common | error | debug | report

level | indicator| message | message | message | message

---------+----------+---------+---------+---------+---------

0 | | | | |

1 | X | | | |

2 | | X | | |

3 | X | X | | |

4 | | | X | |

5 | X | | X | |

6 | | X | X | |

* 7 | X | X | X | |

8 | | | | X |

9 | X | | | X |

10 | | X | | X |

11 | X | X | | X |

12 | | | X | X |

13 | X | | X | X |

14 | | X | X | X |

15 | X | X | X | X |

16 | | | | | X

17 | X | | | | X

18 | | X | | | X

19 | X | X | | | X

20 | | | X | | X

21 | X | | X | | X

22 | | X | X | | X

23 | X | X | X | | X

24 | | | | X | X

25 | X | | | X | X

26 | | X | | X | X

27 | X | X | | X | X

28 | | | X | X | X

29 | X | | X | X | X

30 | | X | X | X | X

31 | X | X | X | X | X

--vtop virtual_address

This option is useful, when user debugs the translation problem of virtual address. If specifing virtual_address, its physical address is printed. It makes debugging easy by comparing the output of this option with the one of "vtop" subcommand of the crash utility. "--vtop" option only prints the translation output, and it does not affect the dumpfile creation.

--dump-dmesg

This option overrides the normal behavior of makedumpfile. Instead of compressing and filtering a VMCORE to make it smaller, it simply extracts the dmesg log from a VMCORE and writes it to the specified LOGFILE. If a VMCORE does not contain VMCOREINFO for dmesg, it is necessary to specfiy [-x VMLINUX] or [-i VMCOREINFO]. Example:

\# makedumpfile --dump-dmesg /proc/vmcore dmesgfile

\# makedumpfile --dump-dmesg -x vmlinux /proc/vmcore dmesgfile

--partial-dmesg

This option will make --dump-dmesg extract only dmesg logs since that buffer was last cleared on the crashed kernel, through "dmesg --clear" for example.

--mem-usage

This option is currently supported on x86_64, arm64, ppc64 and s390x. This option is used to show the page numbers of current system in different use. It should be executed in 1st kernel. By the help of this, user can know how many pages is dumpable when different dump_level is specified. It analyzes the 'System Ram' and 'kernel text' program segment of /proc/kcore excluding the crashkernel range, then calculates the page number of different kind per vmcoreinfo. So currently /proc/kcore need be specified explicitly. Example:

\# makedumpfile --mem-usage /proc/kcore

--diskset=VMCORE

Specify multiple VMCOREs created on sadump diskset configuration the same number of times as the number of VMCOREs in increasing order from left to right. VMCOREs are assembled into a single DUMPFILE. Example:

\# makedumpfile -x vmlinux --diskset=vmcore1 --diskset=vmcore2 dumpfile

-D

Print debugging message.

-h (--help)

Show help message and LZO/snappy support status (enabled/disabled).

-v

Show the version of makedumpfile.

--check-params

Only check whether the command-line parameters are valid or not, and exit. Preferable to be given as the first parameter.

--dry-run

Do not write the output dump file while still performing operations specified by other options. This option cannot be used with the --dump-dmesg, --reassemble and -g options.

--show-stats

Display report messages. This is an alternative to enabling bit 4 in the level provided to --message-level.

## ENVIRONMENT VARIABLES
TMPDIR

This environment variable is used in 1st kernel environment for a temporary memory bitmap file. If your machine has a lots of memory and you use small tmpfs on /tmp, makedumpfile can fail for a little memory because makedumpfile makes a very large temporary memory bitmap file in this case. To avoid this failure, you should specify --work-dir option to use file system on storage for the bitmap file.

## DIAGNOSTICS
makedumpfile exits with the following value.

0 : makedumpfile succeeded.

1 : makedumpfile failed without the following reasons.

2 : makedumpfile failed due to the different version between VMLINUX and VMCORE.

## AUTHORS
Written by Masaki Tachibana, and Ken'ichi Ohmichi.

## SEE ALSO
crash(8), gdb(1), kexec(8), makedumpfile.conf(5)


makemap

package: makemap

title: makemap(8)

summary: create database maps for sendmail

text:
# makemap(8)

## NAME
makemap - create database maps for sendmail

## SYNOPSIS
makemap [-C file] [-N] [-c cachesize] [-d] [-D commentchar] [-e] [-f] [-i type] [-l] [-o] [-r] [-s] [-t delim] [-u] [-v] maptype mapnam

## DESCRIPTION
Makemap creates the database maps used by the keyed map lookups in sendmail(8). It reads input from the standard input and outputs them to the indicated mapname.

Depending on how it is compiled, makemap handles different database formats, selected using the maptype parameter. They may be

btree

B-Tree format maps. This requires the new Berkeley DB library.

hash

Hash format maps. This also requires the Berkeley DB library.

cdb

CDB (Constant DataBase) format maps. This requires the tinycdb library.

implicit

The first available format in the following order: hash, dbm, and cdb.

In all cases, makemap reads lines from the standard input consisting of two words separated by white space. The first is the database key, the second is the value. The value may contain ``%n'' strings to indicate parameter substitution. Literal percents should be doubled (``%%''). Blank lines and lines beginning with ``#'' are ignored.

Notice: do not use makemap to create the aliases data base, but newaliases which puts a special token into the data base that is required by sendmail.

If the TrustedUser option is set in the sendmail configuration file and makemap is invoked as root, the generated files will be owned by the specified TrustedUser.

### Flags
-C

Use the specified sendmail configuration file for looking up the TrustedUser option.

-N

Include the null byte that terminates strings in the map. This must match the -N flag in the sendmail.cf ``K'' line.

-c

Use the specified hash and B-Tree cache size.

-D

Use to specify the character to use to indicate a comment (which is ignored) instead of the default of '#'.

-d

Allow duplicate keys in the map. This is only allowed on B-Tree format maps. If two identical keys are read, they will both be inserted into the map.

-e

Allow empty value (right hand side).

-f

Normally all upper case letters in the key are folded to lower case. This flag disables that behaviour. This is intended to mesh with the -f flag in the K line in sendmail.cf. The value is never case folded.

-i

Use the specified type as fallback if the given maptype is not available.

-l

List supported map types.

-o

Append to an old file. This allows you to augment an existing file. Note: this might not be supported by all database types, e.g., cdb.

-r

Allow replacement of existing keys. Normally makemap complains if you repeat a key, and does not do the insert.

-s

Ignore safety checks on maps being created. This includes checking for hard or symbolic links in world writable directories.

-t

Use the specified delimiter instead of white space (also for dumping a map).

-u

dump (unmap) the content of the database to standard output.

-v

Verbosely print what it is doing.

## Example
makemap hash /etc/mail/access < /etc/mail/access

## SEE ALSO
sendmail(8), newaliases(1)

## HISTORY
The makemap command appeared in 4.4BSD.


malcontent-client

package: malcontent-tools

title: malcontent-client(8)

summary: Parental Controls Access Utility

text:
# malcontent-client(8)

## NAME
malcontent-client - Parental Controls Access Utility

## SYNOPSIS
malcontent-client get-app-filter [-q] [-n] [USER]

malcontent-client check-app-filter [-q] [-n] [USER] ARG

malcontent-client set-app-filter [-q] [-n] [USER] ARG

malcontent-client oars-section [-q] [-n] [USER] SECTION

malcontent-client get-session-limits [-q] [-n] [USER]

malcontent-client monitor [-q] [USER]

## DESCRIPTION
malcontent-client is a utility for querying and updating the parental controls settings for users on the system. It will typically require administrator access to do anything more than query the current user’s parental controls.

It communicates with accounts-service, which stores parental controls data.

Its first argument is a command to run. The supported commands are documented below.

The command line API and output format are unstable and likely to change in future versions of malcontent-client.

## get-app-filter OPTIONS
Get the app filter for a user. For example:

\# malcontent-client get-app-filter timmy

USER

Username or ID of the user to get the app filter for. If not specified, the current user will be used by default.

-q, --quiet

Only output error messages, and no informational messages, as the operation progresses. (Default: Output informational messages.)

-n, --no-interactive

Do not allow interactive authorization with polkit. If this is needed to complete the operation, the operation will fail. (Default: Allow interactive authorization.)

## check-app-filter OPTIONS
Check if a given program, content type or flatpak ref is permitted to be used by a user, according to their current app filter. For example:

\# malcontent-client check-app-filter timmy $(which gnome-calculator) # malcontent-client check-app-filter timmy x-scheme-handler/http

\# malcontent-client check-app-filter timmy app/com.realm667.WolfenDoom_Blade_of_Agony/x86_64/stable

USER

Username or ID of the user to get the app filter for. If not specified, the current user will be used by default.

ARG

Path to a program, content type or flatpak ref to check against the app filter, to see if it is allowed for the specified user.

-q, --quiet

Only output error messages, and no informational messages, as the operation progresses. (Default: Output informational messages.)

-n, --no-interactive

Do not allow interactive authorization with polkit. If this is needed to complete the operation, the operation will fail. (Default: Allow interactive authorization.)

## set-app-filter OPTIONS
Set the app filter for a user, replacing all previous values in it. For example:

\# malcontent-client set-app-filter timmy \

--disallow-user-installation \

$(which gnome-calculator) \

x-scheme-handler/http \

app/com.realm667.WolfenDoom_Blade_of_Agony/x86_64/stable

USER

Username or ID of the user to set the app filter for. If not specified, the current user will be used by default.

ARG

Item to filter in the user’s app filter. This could either be an absolute path or flatpak ref of a program to block; a content type to block all programs handling that type; or an OARS section=value pair to block installation of apps with a more extreme rating for that OARS section. Multiple items may be specified, and they will replace the user’s current app filter in entirety. If zero items are specified, the app filter is cleared.

--allow-user-installation

Allow the user to install flatpaks to their user repository.

--disallow-user-installation

Disallow the user from installing flatpaks to their user repository.

--allow-system-installation

Allow the user to install flatpaks to the system repository.

--disallow-system-installation

Disallow the user from installing flatpaks to the system repository.

-q, --quiet

Only output error messages, and no informational messages, as the operation progresses. (Default: Output informational messages.)

-n, --no-interactive

Do not allow interactive authorization with polkit. If this is needed to complete the operation, the operation will fail. (Default: Allow interactive authorization.)

## oars-section OPTIONS
Get the value set for a specific OARS section from the app filter of the given user. For example:

\# malcontent-client oars-section timmy language-profanity

USER

Username or ID of the user to get the OARS filter for. If not specified, the current user will be used by default.

SECTION

OARS section to get the restriction level of the given user for. For example, language-profanity.

-q, --quiet

Only output error messages, and no informational messages, as the operation progresses. (Default: Output informational messages.)

-n, --no-interactive

Do not allow interactive authorization with polkit. If this is needed to complete the operation, the operation will fail. (Default: Allow interactive authorization.)

## get-session-limits OPTIONS
Get the session limits set for a user. For example:

\# malcontent-client get-session-limits timmy

USER

Username or ID of the user to get the session limits for. If not specified, the current user will be used by default.

-q, --quiet

Only output error messages, and no informational messages, as the operation progresses. (Default: Output informational messages.)

-n, --no-interactive

Do not allow interactive authorization with polkit. If this is needed to complete the operation, the operation will fail. (Default: Allow interactive authorization.)

--now yyyy-mm-ddThh:mm:ssZ

Check session limits (in particular, session expiry time) against the given date/time, provided in ISO 8601 format. (Default: Current date/time.)

## monitor OPTIONS
Monitor changes to the parental controls settings for a specific user. For example:

\# malcontent-client monitor timmy

USER

Username or ID of the user to monitor the parental controls for. If not specified, the current user will be used by default.

-q, --quiet

Only output error messages, and no informational messages, as the operation progresses. (Default: Output informational messages.)

## ENVIRONMENT
malcontent-client supports the standard GLib environment variables for debugging. These variables are not intended to be used in production:

$G_MESSAGES_DEBUG

This variable can contain one or more debug domain names to display debug output for. The value all will enable all debug output. The default is for no debug output to be enabled.

## EXIT STATUS
malcontent-client may return one of several error codes if it encounters problems.

0

No problems occurred. The utility ran and successfully queried the app filter. If running the check-app-filter command, the given path, content type or flatpak ref was allowed for the given user.

1

An invalid option was passed to malcontent-client on startup.

2

The current user was not authorized to query the app filter for the given user.

3

If running the check-app-filter command, the given path, content type or flatpak ref was not allowed for the given user.

4

Malcontent is disabled at the system level, and hence parental controls are not enabled or enforced.

5

An operation failed and no more specific error information is available.

## BUGS
Any bugs which are found should be reported on the project website:

https://gitlab.freedesktop.org/pwithnall/malcontent/-/issues

## AUTHOR
Endless Mobile, Inc.

## COPYRIGHT
Copyright © 2018 Endless Mobile, Inc.


accessdb

package: man-db

title: accessdb(8)

text:
# accessdb(8)

## NAME
accessdb - dumps the content of a man-db database in a human readable format

## SYNOPSIS
/usr/sbin/accessdb [-d?V] [<index-file>]

## DESCRIPTION
accessdb will output the data contained within a man-db database in a human readable form. By default, it will dump the data from /var/cache/man/index.<db-type>, where <db-type> is dependent on the database library in use.

Supplying an argument to accessdb will override this default.

## OPTIONS
-d, --debug

Print debugging information.

-?, --help

Print a help message and exit.

--usage

Print a short usage message and exit.

-V, --version

Display version information.

## AUTHOR

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## BUGS
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


catman

title: catman(8)

text:
# catman(8)

## NAME
catman - create or update the pre-formatted manual pages

## SYNOPSIS
catman [-d?V] [-M path] [-C file] [section] ...

## DESCRIPTION
catman is used to create an up to date set of pre-formatted manual pages known as cat pages. Cat pages are generally much faster to display than the original manual pages, but require extra storage space. The decision to support cat pages is that of the local administrator, who must provide suitable directories to contain them.

The options available to catman are the manual page hierarchies and sections to pre-format. The default hierarchies are those specified as system hierarchies in the man-db configuration file, and the default sections are either the colon-delimited contents of the environment variable $MANSECT or the standard set compiled into man if $MANSECT is undefined. Supplying catman with a set of whitespace-delimited section names will override both of the above.

catman makes use of the index database cache associated with each hierarchy to determine which files need to be formatted.

## OPTIONS
-d, --debug

Print debugging information.

-M path, --manpath=path

Specify an alternate colon-delimited manual page hierarchy search path. By default, this is all paths indicated as system hierarchies in the man-db configuration file.

-C file, --config-file=file

Use this user configuration file rather than the default of ~/.manpath.

-?, --help

Print a help message and exit.

--usage

Print a short usage message and exit.

-V, --version

Display version information.

## ENVIRONMENT
MANSECT

If $MANSECT is set, its value is a colon-delimited list of sections and it is used to determine which manual sections to search and in what order. The default is "1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x 3x 4x 5x 6x 7x 8x", unless overridden by the SECTION directive in /etc/man_db.conf.

MANPATH

If $MANPATH is set, its value is interpreted as the colon-delimited manual page hierarchy search path to use. See the SEARCH PATH section of manpath(5) for the default behaviour and details of how this environment variable is handled.

## FILES
/etc/man_db.conf

man-db configuration file.

/usr/man/index.(bt|db|dir|pag)

A traditional global index database cache.

/var/catman/index.(bt|db|dir|pag)

An alternate or FSSTND compliant global index database cache.

## SEE ALSO
man(1), manpath(5), mandb(8)

## AUTHOR

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## BUGS
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


mandb

title: mandb(8)

text:
# mandb(8)

## NAME
mandb - create or update the manual page index caches

## SYNOPSIS
mandb [-dqsucpt?V] [-C file] [manpath]

mandb [-dqsut] [-C file] -f filename ...

## DESCRIPTION
mandb is used to initialise or manually update index database caches. The caches contain information relevant to the current state of the manual page system and the information stored within them is used by the man-db utilities to enhance their speed and functionality.

When creating or updating an index, mandb will warn of bad ROFF .so requests, bogus manual page filenames and manual pages from which the whatis cannot be parsed.

Supplying mandb with an optional colon-delimited path will override the internal system manual page hierarchy search path, determined from information found within the man-db configuration file.

## DATABASE CACHES
mandb can be compiled with support for any one of the following database types.

Name

Async

Filename

Berkeley db

Yes

index.bt

GNU gdbm

Yes

index.db

UNIX ndbm

No

index.(dir|pag)

Those database types that support asynchronous updates provide enhanced speed at the cost of possible corruption in the event of unusual termination. In an unusual case where this has occurred, it may be necessary to rerun mandb with the -c option to re-create the databases from scratch.

## OPTIONS
-d, --debug

Print debugging information.

-q, --quiet

Produce no warnings.

-s, --no-straycats

Do not spend time looking for or adding information to the databases regarding stray cats.

-p, --no-purge

Do not spend time checking for deleted manual pages and purging them from the databases.

-c, --create

By default, mandb will try to update any previously created databases. If a database does not exist, it will create it. This option forces mandb to delete previous databases and re-create them from scratch, and implies --no-purge. This may be necessary if a database becomes corrupt or if a new database storage scheme is introduced in the future.

-u, --user-db

Create user databases only, even with write permissions necessary to create system databases.

-t, --test

Perform correctness checks on manual pages in the hierarchy search path. With this option, mandb will not alter existing databases.

-f, --filename

Update only the entries for the given filename. This option is not for general use; it is used internally by man when it has been compiled with the MAN_DB_UPDATES option and finds that a page is out of date. It implies -p and disables -c and -s.

-C file, --config-file=file

Use this user configuration file rather than the default of ~/.manpath.

-?, --help

Show the usage message, then exit.

--usage

Print a short usage message and exit.

-V, --version

Show the version, then exit.

## EXIT STATUS
0

Successful program execution.

1

Usage, syntax, or configuration file error.

2

Operational error.

3

A child process failed.

## DIAGNOSTICS
The following warning messages can be emitted during database building.

<filename>: whatis parse for page(sec) failed

An attempt to extract whatis line(s) from the given <filename> failed. This is usually due to a poorly written manual page, but if many such messages are emitted it is likely that the system contains non-standard manual pages which are incompatible with the man-db whatis parser. See the WHATIS PARSING section in lexgrog(1) for more information.

<filename>: is a dangling symlink

<filename> does not exist but is referenced by a symbolic link. Further diagnostics are usually emitted to identify the <filename> of the offending link.

<filename>: bad symlink or ROFF `.so' request

<filename> is either a symbolic link to, or contains a ROFF include request to, a non existent file.

<filename>: ignoring bogus filename

The <filename> may or may not be a valid manual page but its name is invalid. This is usually due to a manual page with sectional extension <x> being put in manual page section <y>.

<filename_mask>: competing extensions

The wildcard <filename_mask> is not unique. This is usually caused by the existence of both a compressed and uncompressed version of the same manual page. All but the most recent are ignored.

## FILES
/etc/man_db.conf

man-db configuration file.

/var/cache/man/index.(bt|db|dir|pag)

An FHS compliant global index database cache.

Older locations for the database cache included:

/usr/man/index.(bt|db|dir|pag)

A traditional global index database cache.

/var/catman/index.(bt|db|dir|pag)

An alternate or FSSTND compliant global index database cache.

## SEE ALSO
lexgrog(1), man(1), manpath(5), catman(8)

The WHATIS PARSING section formerly in this manual page is now part of lexgrog(1).

## AUTHOR

```
Wilf. (G.Wilford@ee.surrey.ac.uk).
Fabrizio Polacco (fpolacco@debian.org).
Colin Watson (cjwatson@debian.org).
```

## BUGS
https://gitlab.com/man-db/man-db/-/issues

https://savannah.nongnu.org/bugs/?group=man-db


iconvconfig

package: man-pages

title: iconvconfig(8)

summary: create iconv module configuration cache

text:
# iconvconfig(8)

## NAME
iconvconfig - create iconv module configuration cache

## SYNOPSIS
iconvconfig [options] [directory]...

## DESCRIPTION
The iconv(3) function internally uses gconv modules to convert to and from a character set. A configuration file is used to determine the needed modules for a conversion. Loading and parsing such a configuration file would slow down programs that use iconv(3), so a caching mechanism is employed.

The iconvconfig program reads iconv module configuration files and writes a fast-loading gconv module configuration cache file.

In addition to the system provided gconv modules, the user can specify custom gconv module directories with the environment variable GCONV_PATH. However, iconv module configuration caching is used only when the environment variable GCONV_PATH is not set.

## OPTIONS
--nostdlib

Do not search the system default gconv directory, only the directories provided on the command line.

-o outputfile, --output=outputfile

Use outputfile for output instead of the system default cache location.

--prefix=pathname

Set the prefix to be prepended to the system pathnames. See FILES, below. By default, the prefix is empty. Setting the prefix to foo, the gconv module configuration would be read from foo/usr/lib/gconv/gconv-modules and the cache would be written to foo/usr/lib/gconv/gconv-modules.cache.

-?, --help

Print a usage summary and exit.

--usage

Print a short usage summary and exit.

-V, --version

Print the version number, license, and disclaimer of warranty for iconv.

## EXIT STATUS
Zero on success, nonzero on errors.

## FILES
/usr/lib/gconv

Usual default gconv module path.

/usr/lib/gconv/gconv-modules

Usual system default gconv module configuration file.

/usr/lib/gconv/gconv-modules.cache

Usual system gconv module configuration cache.

Depending on the architecture, the above files may instead be located at directories with the path prefix /usr/lib64.

## SEE ALSO
iconv(1), iconv(3)


intro

title: intro(8)

text:
# intro(8)

## NAME
intro - introduction to administration and privileged commands

## DESCRIPTION
Section 8 of the manual describes commands which either can be or are used only by the superuser, like system-administration commands, daemons, and hardware-related commands.

As with the commands described in Section 1, the commands described in this section terminate with an exit status that indicates whether the command succeeded or failed. See intro(1) for more information.

## NOTES

### Authors and copyright conditions
Look at the header of the manual page source for the author(s) and copyright conditions. Note that these can be different from page to page!


ld.so

title: ld.so(8)

summary: dynamic linker/loader

text:
# ld.so(8)

## NAME
ld.so, ld-linux.so - dynamic linker/loader

## SYNOPSIS
The dynamic linker can be run either indirectly by running some dynamically linked program or shared object (in which case no command-line options to the dynamic linker can be passed and, in the ELF case, the dynamic linker which is stored in the .interp section of the program is executed) or directly by running:

/lib/ld-linux.so.* [OPTIONS] [PROGRAM [ARGUMENTS]]

## DESCRIPTION
The programs ld.so and ld-linux.so* find and load the shared objects (shared libraries) needed by a program, prepare the program to run, and then run it.

Linux binaries require dynamic linking (linking at run time) unless the -static option was given to ld(1) during compilation.

The program ld.so handles a.out binaries, a binary format used long ago. The program ld-linux.so* (/lib/ld-linux.so.1 for libc5, /lib/ld-linux.so.2 for glibc2) handles binaries that are in the more modern ELF format. Both programs have the same behavior, and use the same support files and programs (ldd(1), ldconfig(8), and /etc/ld.so.conf).

When resolving shared object dependencies, the dynamic linker first inspects each dependency string to see if it contains a slash (this can occur if a shared object pathname containing slashes was specified at link time). If a slash is found, then the dependency string is interpreted as a (relative or absolute) pathname, and the shared object is loaded using that pathname.

If a shared object dependency does not contain a slash, then it is searched for in the following order:

(1)

Using the directories specified in the DT_RPATH dynamic section attribute of the binary if present and DT_RUNPATH attribute does not exist. Use of DT_RPATH is deprecated.

(2)

Using the environment variable LD_LIBRARY_PATH, unless the executable is being run in secure-execution mode (see below), in which case this variable is ignored.

(3)

Using the directories specified in the DT_RUNPATH dynamic section attribute of the binary if present. Such directories are searched only to find those objects required by DT_NEEDED (direct dependencies) entries and do not apply to those objects' children, which must themselves have their own DT_RUNPATH entries. This is unlike DT_RPATH, which is applied to searches for all children in the dependency tree.

(4)

From the cache file /etc/ld.so.cache, which contains a compiled list of candidate shared objects previously found in the augmented library path. If, however, the binary was linked with the -z nodefaultlib linker option, shared objects in the default paths are skipped. Shared objects installed in hardware capability directories (see below) are preferred to other shared objects.

(5)

In the default path /lib, and then /usr/lib. (On some 64-bit architectures, the default paths for 64-bit shared objects are /lib64, and then /usr/lib64.) If the binary was linked with the -z nodefaultlib linker option, this step is skipped.

### Dynamic string tokens
In several places, the dynamic linker expands dynamic string tokens:

•

In the environment variables LD_LIBRARY_PATH, LD_PRELOAD, and LD_AUDIT,

•

inside the values of the dynamic section tags DT_NEEDED, DT_RPATH, DT_RUNPATH, DT_AUDIT, and DT_DEPAUDIT of ELF binaries,

•

in the arguments to the ld.so command line options --audit, --library-path, and --preload (see below), and

•

in the filename arguments to the dlopen(3) and dlmopen(3) functions.

The substituted tokens are as follows:

$ORIGIN (or equivalently ${ORIGIN})

This expands to the directory containing the program or shared object. Thus, an application located in somedir/app could be compiled with

```
gcc -Wl,-rpath,'$ORIGIN/../lib'

```

so that it finds an associated shared object in somedir/lib no matter where somedir is located in the directory hierarchy. This facilitates the creation of "turn-key" applications that do not need to be installed into special directories, but can instead be unpacked into any directory and still find their own shared objects.

$LIB (or equivalently ${LIB})

This expands to lib or lib64 depending on the architecture (e.g., on x86-64, it expands to lib64 and on x86-32, it expands to lib).

$PLATFORM (or equivalently ${PLATFORM})

This expands to a string corresponding to the processor type of the host system (e.g., "x86_64"). On some architectures, the Linux kernel doesn't provide a platform string to the dynamic linker. The value of this string is taken from the AT_PLATFORM value in the auxiliary vector (see getauxval(3)).

Note that the dynamic string tokens have to be quoted properly when set from a shell, to prevent their expansion as shell or environment variables.

## OPTIONS
--argv0 string (since glibc 2.33)

Set argv[0] to the value string before running the program.

--audit list

Use objects named in list as auditors. The objects in list are delimited by colons.

--inhibit-cache

Do not use /etc/ld.so.cache.

--library-path path

Use path instead of LD_LIBRARY_PATH environment variable setting (see below). The names ORIGIN, LIB, and PLATFORM are interpreted as for the LD_LIBRARY_PATH environment variable.

--inhibit-rpath list

Ignore RPATH and RUNPATH information in object names in list. This option is ignored when running in secure-execution mode (see below). The objects in list are delimited by colons or spaces.

--list

List all dependencies and how they are resolved.

--list-tunables (since glibc 2.33)

Print the names and values of all tunables, along with the minimum and maximum allowed values.

--preload list (since glibc 2.30)

Preload the objects specified in list. The objects in list are delimited by colons or spaces. The objects are preloaded as explained in the description of the LD_PRELOAD environment variable below.

By contrast with LD_PRELOAD, the --preload option provides a way to perform preloading for a single executable without affecting preloading performed in any child process that executes a new program.

--verify

Verify that program is dynamically linked and this dynamic linker can handle it.

## ENVIRONMENT
Various environment variables influence the operation of the dynamic linker.

### Secure-execution mode
For security reasons, if the dynamic linker determines that a binary should be run in secure-execution mode, the effects of some environment variables are voided or modified, and furthermore those environment variables are stripped from the environment, so that the program does not even see the definitions. Some of these environment variables affect the operation of the dynamic linker itself, and are described below. Other environment variables treated in this way include: GCONV_PATH, GETCONF_DIR, HOSTALIASES, LOCALDOMAIN, LOCPATH, MALLOC_TRACE, NIS_PATH, NLSPATH, RESOLV_HOST_CONF, RES_OPTIONS, TMPDIR, and TZDIR.

A binary is executed in secure-execution mode if the AT_SECURE entry in the auxiliary vector (see getauxval(3)) has a nonzero value. This entry may have a nonzero value for various reasons, including:

•

The process's real and effective user IDs differ, or the real and effective group IDs differ. This typically occurs as a result of executing a set-user-ID or set-group-ID program.

•

A process with a non-root user ID executed a binary that conferred capabilities to the process.

•

A nonzero value may have been set by a Linux Security Module.

### Environment variables
Among the more important environment variables are the following:

LD_ASSUME_KERNEL (since glibc 2.2.3)

Each shared object can inform the dynamic linker of the minimum kernel ABI version that it requires. (This requirement is encoded in an ELF note section that is viewable via readelf -n as a section labeled NT_GNU_ABI_TAG.) At run time, the dynamic linker determines the ABI version of the running kernel and will reject loading shared objects that specify minimum ABI versions that exceed that ABI version.

LD_ASSUME_KERNEL can be used to cause the dynamic linker to assume that it is running on a system with a different kernel ABI version. For example, the following command line causes the dynamic linker to assume it is running on Linux 2.2.5 when loading the shared objects required by myprog:

```
$ LD_ASSUME_KERNEL=2.2.5 ./myprog

```

On systems that provide multiple versions of a shared object (in different directories in the search path) that have different minimum kernel ABI version requirements, LD_ASSUME_KERNEL can be used to select the version of the object that is used (dependent on the directory search order).

Historically, the most common use of the LD_ASSUME_KERNEL feature was to manually select the older LinuxThreads POSIX threads implementation on systems that provided both LinuxThreads and NPTL (which latter was typically the default on such systems); see pthreads(7).

LD_BIND_NOW (since glibc 2.1.1)

If set to a nonempty string, causes the dynamic linker to resolve all symbols at program startup instead of deferring function call resolution to the point when they are first referenced. This is useful when using a debugger.

LD_LIBRARY_PATH

A list of directories in which to search for ELF libraries at execution time. The items in the list are separated by either colons or semicolons, and there is no support for escaping either separator. A zero-length directory name indicates the current working directory.

This variable is ignored in secure-execution mode.

Within the pathnames specified in LD_LIBRARY_PATH, the dynamic linker expands the tokens $ORIGIN, $LIB, and $PLATFORM (or the versions using curly braces around the names) as described above in Dynamic string tokens. Thus, for example, the following would cause a library to be searched for in either the lib or lib64 subdirectory below the directory containing the program to be executed:

```
$ LD_LIBRARY_PATH='$ORIGIN/$LIB' prog

```

(Note the use of single quotes, which prevent expansion of $ORIGIN and $LIB as shell variables!)

LD_PRELOAD

A list of additional, user-specified, ELF shared objects to be loaded before all others. This feature can be used to selectively override functions in other shared objects.

The items of the list can be separated by spaces or colons, and there is no support for escaping either separator. The objects are searched for using the rules given under DESCRIPTION. Objects are searched for and added to the link map in the left-to-right order specified in the list.

In secure-execution mode, preload pathnames containing slashes are ignored. Furthermore, shared objects are preloaded only from the standard search directories and only if they have set-user-ID mode bit enabled (which is not typical).

Within the names specified in the LD_PRELOAD list, the dynamic linker understands the tokens $ORIGIN, $LIB, and $PLATFORM (or the versions using curly braces around the names) as described above in Dynamic string tokens. (See also the discussion of quoting under the description of LD_LIBRARY_PATH.)

There are various methods of specifying libraries to be preloaded, and these are handled in the following order:

(1)

The LD_PRELOAD environment variable.

(2)

The --preload command-line option when invoking the dynamic linker directly.

(3)

The /etc/ld.so.preload file (described below).

LD_TRACE_LOADED_OBJECTS

If set (to any value), causes the program to list its dynamic dependencies, as if run by ldd(1), instead of running normally.

Then there are lots of more or less obscure variables, many obsolete or only for internal use.

LD_AUDIT (since glibc 2.4)

A list of user-specified, ELF shared objects to be loaded before all others in a separate linker namespace (i.e., one that does not intrude upon the normal symbol bindings that would occur in the process) These objects can be used to audit the operation of the dynamic linker. The items in the list are colon-separated, and there is no support for escaping the separator.

LD_AUDIT is ignored in secure-execution mode.

The dynamic linker will notify the audit shared objects at so-called auditing checkpoints—for example, loading a new shared object, resolving a symbol, or calling a symbol from another shared object—by calling an appropriate function within the audit shared object. For details, see rtld-audit(7). The auditing interface is largely compatible with that provided on Solaris, as described in its Linker and Libraries Guide, in the chapter Runtime Linker Auditing Interface.

Within the names specified in the LD_AUDIT list, the dynamic linker understands the tokens $ORIGIN, $LIB, and $PLATFORM (or the versions using curly braces around the names) as described above in Dynamic string tokens. (See also the discussion of quoting under the description of LD_LIBRARY_PATH.)

Since glibc 2.13, in secure-execution mode, names in the audit list that contain slashes are ignored, and only shared objects in the standard search directories that have the set-user-ID mode bit enabled are loaded.

LD_BIND_NOT (since glibc 2.1.95)

If this environment variable is set to a nonempty string, do not update the GOT (global offset table) and PLT (procedure linkage table) after resolving a function symbol. By combining the use of this variable with LD_DEBUG (with the categories bindings and symbols), one can observe all run-time function bindings.

LD_DEBUG (since glibc 2.1)

Output verbose debugging information about operation of the dynamic linker. The content of this variable is one of more of the following categories, separated by colons, commas, or (if the value is quoted) spaces:

help

Specifying help in the value of this variable does not run the specified program, and displays a help message about which categories can be specified in this environment variable.

all

Print all debugging information (except statistics and unused; see below).

bindings

Display information about which definition each symbol is bound to.

files

Display progress for input file.

libs

Display library search paths.

reloc

Display relocation processing.

scopes

Display scope information.

statistics

Display relocation statistics.

symbols

Display search paths for each symbol look-up.

unused

Determine unused DSOs.

versions

Display version dependencies.

Since glibc 2.3.4, LD_DEBUG is ignored in secure-execution mode, unless the file /etc/suid-debug exists (the content of the file is irrelevant).

LD_DEBUG_OUTPUT (since glibc 2.1)

By default, LD_DEBUG output is written to standard error. If LD_DEBUG_OUTPUT is defined, then output is written to the pathname specified by its value, with the suffix "." (dot) followed by the process ID appended to the pathname.

LD_DEBUG_OUTPUT is ignored in secure-execution mode.

LD_DYNAMIC_WEAK (since glibc 2.1.91)

By default, when searching shared libraries to resolve a symbol reference, the dynamic linker will resolve to the first definition it finds.

Old glibc versions (before glibc 2.2), provided a different behavior: if the linker found a symbol that was weak, it would remember that symbol and keep searching in the remaining shared libraries. If it subsequently found a strong definition of the same symbol, then it would instead use that definition. (If no further symbol was found, then the dynamic linker would use the weak symbol that it initially found.)

The old glibc behavior was nonstandard. (Standard practice is that the distinction between weak and strong symbols should have effect only at static link time.) In glibc 2.2, the dynamic linker was modified to provide the current behavior (which was the behavior that was provided by most other implementations at that time).

Defining the LD_DYNAMIC_WEAK environment variable (with any value) provides the old (nonstandard) glibc behavior, whereby a weak symbol in one shared library may be overridden by a strong symbol subsequently discovered in another shared library. (Note that even when this variable is set, a strong symbol in a shared library will not override a weak definition of the same symbol in the main program.)

Since glibc 2.3.4, LD_DYNAMIC_WEAK is ignored in secure-execution mode.

LD_HWCAP_MASK (since glibc 2.1)

Mask for hardware capabilities.

LD_ORIGIN_PATH (since glibc 2.1)

Path where the binary is found.

Since glibc 2.4, LD_ORIGIN_PATH is ignored in secure-execution mode.

LD_POINTER_GUARD (from glibc 2.4 to glibc 2.22)

Set to 0 to disable pointer guarding. Any other value enables pointer guarding, which is also the default. Pointer guarding is a security mechanism whereby some pointers to code stored in writable program memory (return addresses saved by setjmp(3) or function pointers used by various glibc internals) are mangled semi-randomly to make it more difficult for an attacker to hijack the pointers for use in the event of a buffer overrun or stack-smashing attack. Since glibc 2.23, LD_POINTER_GUARD can no longer be used to disable pointer guarding, which is now always enabled.

LD_PROFILE (since glibc 2.1)

The name of a (single) shared object to be profiled, specified either as a pathname or a soname. Profiling output is appended to the file whose name is: $LD_PROFILE_OUTPUT/$LD_PROFILE.profile.

Since glibc 2.2.5, LD_PROFILE is ignored in secure-execution mode.

LD_PROFILE_OUTPUT (since glibc 2.1)

Directory where LD_PROFILE output should be written. If this variable is not defined, or is defined as an empty string, then the default is /var/tmp.

LD_PROFILE_OUTPUT is ignored in secure-execution mode; instead /var/profile is always used. (This detail is relevant only before glibc 2.2.5, since in later glibc versions, LD_PROFILE is also ignored in secure-execution mode.)

LD_SHOW_AUXV (since glibc 2.1)

If this environment variable is defined (with any value), show the auxiliary array passed up from the kernel (see also getauxval(3)).

Since glibc 2.3.4, LD_SHOW_AUXV is ignored in secure-execution mode.

LD_TRACE_PRELINKING (since glibc 2.4)

If this environment variable is defined, trace prelinking of the object whose name is assigned to this environment variable. (Use ldd(1) to get a list of the objects that might be traced.) If the object name is not recognized, then all prelinking activity is traced.

LD_USE_LOAD_BIAS (since glibc 2.3.3)

By default (i.e., if this variable is not defined), executables and prelinked shared objects will honor base addresses of their dependent shared objects and (nonprelinked) position-independent executables (PIEs) and other shared objects will not honor them. If LD_USE_LOAD_BIAS is defined with the value 1, both executables and PIEs will honor the base addresses. If LD_USE_LOAD_BIAS is defined with the value 0, neither executables nor PIEs will honor the base addresses.

Since glibc 2.3.3, this variable is ignored in secure-execution mode.

LD_VERBOSE (since glibc 2.1)

If set to a nonempty string, output symbol versioning information about the program if the LD_TRACE_LOADED_OBJECTS environment variable has been set.

LD_WARN (since glibc 2.1.3)

If set to a nonempty string, warn about unresolved symbols.

LD_PREFER_MAP_32BIT_EXEC (x86-64 only; since glibc 2.23)

According to the Intel Silvermont software optimization guide, for 64-bit applications, branch prediction performance can be negatively impacted when the target of a branch is more than 4 GB away from the branch. If this environment variable is set (to any value), the dynamic linker will first try to map executable pages using the mmap(2) MAP_32BIT flag, and fall back to mapping without that flag if that attempt fails. NB: MAP_32BIT will map to the low 2 GB (not 4 GB) of the address space.

Because MAP_32BIT reduces the address range available for address space layout randomization (ASLR), LD_PREFER_MAP_32BIT_EXEC is always disabled in secure-execution mode.

## FILES
/lib/ld.so

a.out dynamic linker/loader

/lib/ld-linux.so.{1,2}

ELF dynamic linker/loader

/etc/ld.so.cache

File containing a compiled list of directories in which to search for shared objects and an ordered list of candidate shared objects. See ldconfig(8).

/etc/ld.so.preload

File containing a whitespace-separated list of ELF shared objects to be loaded before the program. See the discussion of LD_PRELOAD above. If both LD_PRELOAD and /etc/ld.so.preload are employed, the libraries specified by LD_PRELOAD are preloaded first. /etc/ld.so.preload has a system-wide effect, causing the specified libraries to be preloaded for all programs that are executed on the system. (This is usually undesirable, and is typically employed only as an emergency remedy, for example, as a temporary workaround to a library misconfiguration issue.)

lib*.so*

shared objects

## NOTES

### Hardware capabilities
Some shared objects are compiled using hardware-specific instructions which do not exist on every CPU. Such objects should be installed in directories whose names define the required hardware capabilities, such as /usr/lib/sse2/. The dynamic linker checks these directories against the hardware of the machine and selects the most suitable version of a given shared object. Hardware capability directories can be cascaded to combine CPU features. The list of supported hardware capability names depends on the CPU. The following names are currently recognized:

Alpha

ev4, ev5, ev56, ev6, ev67

MIPS

loongson2e, loongson2f, octeon, octeon2

PowerPC

4xxmac, altivec, arch_2_05, arch_2_06, booke, cellbe, dfp, efpdouble, efpsingle, fpu, ic_snoop, mmu, notb, pa6t, power4, power5, power5+, power6x, ppc32, ppc601, ppc64, smt, spe, ucache, vsx

SPARC

flush, muldiv, stbar, swap, ultra3, v9, v9v, v9v2

s390

dfp, eimm, esan3, etf3enh, g5, highgprs, hpage, ldisp, msa, stfle, z900, z990, z9-109, z10, zarch

x86 (32-bit only)

acpi, apic, clflush, cmov, cx8, dts, fxsr, ht, i386, i486, i586, i686, mca, mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm

## SEE ALSO
ld(1), ldd(1), pldd(1), sprof(1), dlopen(3), getauxval(3), elf(5), capabilities(7), rtld-audit(7), ldconfig(8), sln(8)


ldconfig

title: ldconfig(8)

text:
# ldconfig(8)

## NAME
ldconfig - configure dynamic linker run-time bindings

## SYNOPSIS
/sbin/ldconfig

[-nNvVX] [-C cache] [-f conf] [-r root] directory ...

/sbin/ldconfig

-l [-v] library ...

/sbin/ldconfig

-p

## DESCRIPTION
ldconfig creates the necessary links and cache to the most recent shared libraries found in the directories specified on the command line, in the file /etc/ld.so.conf, and in the trusted directories, /lib and /usr/lib. On some 64-bit architectures such as x86-64, /lib and /usr/lib are the trusted directories for 32-bit libraries, while /lib64 and /usr/lib64 are used for 64-bit libraries.

The cache is used by the run-time linker, ld.so or ld-linux.so. ldconfig checks the header and filenames of the libraries it encounters when determining which versions should have their links updated. ldconfig should normally be run by the superuser as it may require write permission on some root owned directories and files.

ldconfig will look only at files that are named lib*.so* (for regular shared objects) or ld-*.so* (for the dynamic loader itself). Other files will be ignored. Also, ldconfig expects a certain pattern to how the symbolic links are set up, like this example, where the middle file (libfoo.so.1 here) is the SONAME for the library:

```
libfoo.so -> libfoo.so.1 -> libfoo.so.1.12
```

Failure to follow this pattern may result in compatibility issues after an upgrade.

## OPTIONS
-c fmt

--format=fmt

(Since glibc 2.2) Use cache format fmt, which is one of old, new, or compat. Since glibc 2.32, the default is new. Before that, it was compat.

-C cache

Use cache instead of /etc/ld.so.cache.

-f conf

Use conf instead of /etc/ld.so.conf.

-i

--ignore-aux-cache

(Since glibc 2.7) Ignore auxiliary cache file.

-l

(Since glibc 2.2) Interpret each operand as a library name and configure its links. Intended for use only by experts.

-n

Process only the directories specified on the command line; don't process the trusted directories, nor those specified in /etc/ld.so.conf. Implies -N.

-N

Don't rebuild the cache. Unless -X is also specified, links are still updated.

-p

--print-cache

Print the lists of directories and candidate libraries stored in the current cache.

-r root

Change to and use root as the root directory.

-v

--verbose

Verbose mode. Print current version number, the name of each directory as it is scanned, and any links that are created. Overrides quiet mode.

-V

--version

Print program version.

-X

Don't update links. Unless -N is also specified, the cache is still rebuilt.

## FILES
/lib/ld.so

is the run-time linker/loader.

/etc/ld.so.conf

contains a list of directories, one per line, in which to search for libraries.

/etc/ld.so.cache

contains an ordered list of libraries found in the directories specified in /etc/ld.so.conf, as well as those found in the trusted directories.

## SEE ALSO
ldd(1), ld.so(8)


nscd

title: nscd(8)

summary: name service cache daemon

text:
# nscd(8)

## NAME
nscd - name service cache daemon

## DESCRIPTION
nscd is a daemon that provides a cache for the most common name service requests. The default configuration file, /etc/nscd.conf, determines the behavior of the cache daemon. See nscd.conf(5).

nscd provides caching for accesses of the passwd(5), group(5), hosts(5) services(5) and netgroup databases through standard libc interfaces, such as getpwnam(3), getpwuid(3), getgrnam(3), getgrgid(3), gethostbyname(3), and others.

There are two caches for each database: a positive one for items found, and a negative one for items not found. Each cache has a separate TTL (time-to-live) period for its data. Note that the shadow file is specifically not cached. getspnam(3) calls remain uncached as a result.

## OPTIONS
--help

will give you a list with all options and what they do.

## NOTES
The daemon will try to watch for changes in configuration files appropriate for each database (e.g., /etc/passwd for the passwd database or /etc/hosts and /etc/resolv.conf for the hosts database), and flush the cache when these are changed. However, this will happen only after a short delay (unless the inotify(7) mechanism is available and glibc 2.9 or later is available), and this auto-detection does not cover configuration files required by nonstandard NSS modules, if any are specified in /etc/nsswitch.conf. In that case, you need to run the following command after changing the configuration file of the database so that nscd invalidates its cache:

```
$ nscd -i <database>
```

## SEE ALSO
nscd.conf(5), nsswitch.conf(5)


sln

title: sln(8)

summary: create symbolic links

text:
# sln(8)

## NAME
sln - create symbolic links

## SYNOPSIS

```
sln source dest
sln filelist
```

## DESCRIPTION
The sln program creates symbolic links. Unlike the ln(1) program, it is statically linked. This means that if for some reason the dynamic linker is not working, sln can be used to make symbolic links to dynamic libraries.

The command line has two forms. In the first form, it creates dest as a new symbolic link to source.

In the second form, filelist is a list of space-separated pathname pairs, and the effect is as if sln was executed once for each line of the file, with the two pathnames as the arguments.

The sln program supports no command-line options.

## SEE ALSO
ln(1), ld.so(8), ldconfig(8)


tzselect

title: tzselect(8)

summary: select a timezone

text:
# tzselect(8)

## NAME
tzselect - select a timezone

## SYNOPSIS
tzselect [ -c coord ] [ -n limit ] [ --help ] [ --version ]

## DESCRIPTION
The tzselect program asks the user for information about the current location, and outputs the resulting timezone to standard output. The output is suitable as a value for the TZ environment variable.

All interaction with the user is done via standard input and standard error.

## OPTIONS
-c coord

Instead of asking for continent and then country and then city, ask for selection from time zones whose largest cities are closest to the location with geographical coordinates coord. Use ISO 6709 notation for coord, that is, a latitude immediately followed by a longitude. The latitude and longitude should be signed integers followed by an optional decimal point and fraction: positive numbers represent north and east, negative south and west. Latitudes with two and longitudes with three integer digits are treated as degrees; latitudes with four or six and longitudes with five or seven integer digits are treated as DDMM, DDDMM, DDMMSS, or DDDMMSS representing DD or DDD degrees, MM minutes, and zero or SS seconds, with any trailing fractions represent fractional minutes or (if SS is present) seconds. The decimal point is that of the current locale. For example, in the (default) C locale, -c +40.689-074.045 specifies 40.689 degrees N, 74.045 degrees W, -c +4041.4-07402.7 specifies 40 degrees 41.4 minutes N, 74 degrees 2.7 minutes W, and -c +404121-0740240 specifies 40 degrees 41 minutes 21 seconds N, 74 degrees 2 minutes 40 seconds W. If coord is not one of the documented forms, the resulting behavior is unspecified.

-n limit

When -c is used, display the closest limit locations (default 10).

--help

Output help information and exit.

--version

Output version information and exit.

## ENVIRONMENT VARIABLES
AWK

Name of a Posix-compliant awk program (default: awk).

TZDIR

Name of the directory containing timezone data files (default: /usr/share/zoneinfo).

## FILES
TZDIR/iso3166.tab

Table of ISO 3166 2-letter country codes and country names.

TZDIR/zone1970.tab

Table of country codes, latitude and longitude, timezones, and descriptive comments.

TZDIR/TZ

Timezone data file for timezone TZ.

## EXIT STATUS
The exit status is zero if a timezone was successfully obtained from the user, nonzero otherwise.

## SEE ALSO
newctime(3), tzfile(5), zdump(8), zic(8)

## NOTES
Applications should not assume that tzselect's output matches the user's political preferences.