type=page
status=published
title=list-secure-admin-internal-users
next=list-secure-admin-principals.html
prev=list-resource-refs.html
~~~~~~

= list-secure-admin-internal-users

[[list-secure-admin-internal-users-1]][[GSRFM00199]][[list-secure-admin-internal-users]]

== list-secure-admin-internal-users

Lists the user names that the {productName} DAS and instances use to
authenticate with each other and to authorize admin operations.

[[sthref1787]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-secure-admin-internal-users [--help]
[--long={false|true}]
[--output output]
[--header={false|true}]
[name]
----

[[sthref1788]]

=== Description

The `list-secure-admin-internal-users` subcommand lists the user names
that the {productName} DAS and instances use to authenticate with
each other and to authorize admin operations.

[[sthref1789]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--long`::
`-l`::
  Displays detailed information about each internal user. The default
  value is `false.`
`--output`::
`-o`::
  Displays specific details about each internal user. Use a
  comma-separated list to specify the details you want to display and
  their order. The values are case-insensitive.
  Possible values are as follows:

  `username`;;
    Displays the user name for the internal user.
  `password-alias`;;
    Displays the password alias for the internal user.

`--header`::
`-h`::
  Specifies whether column headings are displayed when the `--long`
  option is used. The default value is `true`. To suppress the headings,
  set the `--header` option to `false`.

[[sthref1790]]

=== Operands

name::
  The user name for the internal user for which you want to display
  details.

[[sthref1791]]

=== Examples

[[GSRFM709]][[sthref1792]]

==== Example 1   Listing the User Name for Secure Admin

This example lists the user names that the {productName} DAS and
instances use to authenticate with each other and to authorize admin
operations.

[source]
----
asadmin> list-secure-admin-internal-users

Command list-secure-admin-internal-users executed successfully.
----

[[sthref1793]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1794]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:enable-secure-admin.html#enable-secure-admin-1[`enable-secure-admin`(1)],
link:enable-secure-admin-internal-user.html#enable-secure-admin-internal-user-1[`enable-secure-admin-internal-user`(1)]


