type=page
status=published
title=list-auth-realms
next=list-backups.html
prev=list-audit-modules.html
~~~~~~

list-auth-realms
================

[[list-auth-realms-1]][[GSRFM00150]][[list-auth-realms]]

list-auth-realms
----------------

Lists the authentication realms

[[sthref1324]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-auth-realms [--help]
[target]
----

[[sthref1325]]

=== Description

The `list-auth-realms` subcommand lists the authentication realms. This
subcommand is supported in remote mode only.

[[sthref1326]]

=== 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.

[[sthref1327]]

=== Operands

target::
  The name of the target for which you want to list the authentication
  realms.

  `server`;;
    Lists the realms for the default server instance `server` and is the
    default value.
  configuration_name;;
    Lists the realms for the named configuration.
  cluster_name;;
    Lists the realms for every server instance in the cluster.
  instance_name;;
    Lists the realms for a particular server instance.

[[sthref1328]]

=== Examples

[[GSRFM638]][[sthref1329]]

==== Example 1   Listing authentication realms

[source]
----
asadmin> list-auth-realms
file
ldap
certificate
db
Command list-auth-realms executed successfully
----

Where file, ldap, certificate, and db are the available authentication realms.

[[sthref1330]]

=== Exit Status

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

[[sthref1331]]

=== See Also

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

link:create-auth-realm.html#create-auth-realm-1[`create-auth-realm`(1)],
link:delete-auth-realm.html#delete-auth-realm-1[`delete-auth-realm`(1)]


