---
name: "ui"
section: "1"
platform: "linux"
package: "userinfo"
version: "2.5-5+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ui"
---

# ui(1)

show information about local users

## NAME

**ui** – show information about local users

## SYNOPSIS

**ui** \[**-hvVL**\] \[**-F** *separator*\] \[**-m** *separator*\] \[**-t** *format*\] \[**-d**\] \[\[**-xXO**\] *module1.so* \[options\] \[**--** \[**-xXO**\] *module2.so* \[options\] \[...\]\]\] \[**-c** *filename*\] \[user\] \| \[**-f** *filename*\] \[...\]

## DESCRIPTION

**ui** uses loadable modules to display various information about a local user. Multiple usernames or filenames (see  **-f**) may be specified. If no arguments are given or a username or filename is ‘-’, then arguments are read via standard input.

- **-d**

  Load the default modules (passwd.so, mail.so and login.so). This can be used anywhere in the module list.

- **-t** *format*

  Specify an alternate time format for modules which have time values. See the [strftime(3)](/strftime/3.md) manual page for  *format* syntax.

- **-c** *filename*

  Load a configuration file. May be used more than once. See below for details.

- **-O** *filename*

  Load a module. The remaining switches are to be options for this module. End options for this module by specifying **--**. This option may by used more than once. Due to the way module chaining is implemented, the same module may be loaded more than once.

- **-x** *filename*

  Like **-O** but chain *module1.so* output to *module2.so* input. This will only work if the module is chainable. You can specify this option more than once for unlimited chaining.

- **-X** *filename*

  The same as **-x** but don't output *module1.so* info, only pass the strings to *module2.so* for processing.

- **-F** *separator*

  Alternate character used to separate fields. Standard escape sequences are supported.

- **-m** *separator*

  Alternate character used to separate multi string values. Standard escape sequences are supported.

- **-f**

  Get information for the owners of the specified files.

- **-L**

  If the **-f** option is specified and the file is a symbolic link, get owner information for the file the link points to and not the link itself.

- **-v**

  Be verbose when possible. Some modules may limit their display. This should show everything available. This is reset for each loaded module unless specified twice.

- **-h**

  Display help text. A module must be specified either with the **-O** command line option or loaded via configuration file **-c** for a modules help text to be displayed.

- **-V**

  Version information.

## RETURN VALUES

Returns 1 on failure and 0 on success. Note that a modules return value affects this exit status.

## FILES

*PREFIX/lib/userinfo* Default location of loadable modules.

## EXAMPLES

The following will load two modules, specify module options and load a configuration file. Module options end when **--** is reached.

**ui** **-O** module.so **-switches** **--** **-O** another.so **--** **-c** *filename* \`users\`

## SEE ALSO

[strftime(3)](/strftime/3.md), [passwd(5)](/passwd/5.md), [aliases(5)](/aliases/5.md), [forward(5)](/forward/5.md), [utmp(5)](/utmp/5.md), lastlog(5), [ld.so(8)](/ld.so/8.md) [dlopen(3)](/dlopen/3.md)

## CONFIGURATION FILE SYNTAX

There is no default configuration file that will be loaded so you'll have to create one and load it with the **-c** command-line option. Empty lines and everything to the right of a '#' are ignored. If you need a '#' in your options, escape it with a '\\'. This file should contain any modules you want loaded and their options separated by one or more whitespace characters on one line per module.

Each module should have a .so filename extension. If a module filename begins with a ~, it will be expanded to your home directory. Some module options may require quoting. Single and double quotes are supported and may also be escaped with a backslash character. Multiple configuration files may be specified and may also be used with the **-O** command-line option. The order of module loading and output is dependent on the order of the module stack and any module options.

If you want module chaining, put a '\>' or '-' at the beginning of the module name before any '~'. This is the same as specifying **-x** or **-X** on the command line, respectively. The following module, which may also be chained, will be chained to this module.

## AUTHORS

Ben Kibbey ⟨bjk@luxsci.net⟩
