type=page
status=published
title=list-file-groups
next=list-file-users.html
prev=list-domains.html
~~~~~~

= list-file-groups

[[list-file-groups-1]][[GSRFM00164]][[list-file-groups]]

== list-file-groups

Lists file groups

[[sthref1469]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-file-groups [--help]
[--name username] [--authrealmname auth_realm_name]
[--target target]
----

[[sthref1470]]

=== Description

The `list-file-groups` subcommand lists the file users and groups
supported by the file realm authentication. This subcommand lists
available groups in the file user. If the `--name` option is not
specified, all groups are listed.

This subcommand is supported in remote mode only.

[[sthref1471]]

=== 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.
`--name`::
  Identifies the name of the file user for whom the groups will be
  listed.
`--authrealmname`::
  The name of the authentication realm for which to list available
  groups.
`--target`::
  This option specifies which configurations you can list. Valid targets
  are:

  `server`;;
    Lists the file groups in the current server. This is the default
    value.
  cluster_name;;
    Lists the file groups in a cluster.
  instance_name;;
    Lists the file groups for a particular instance.

[[sthref1472]]

=== Examples

[[GSRFM657]][[sthref1473]]

==== Example 1   Listing Groups in all File Realms

This example list all file realm groups defined for the server.

[source]
----
asadmin> list-file-groups
staff
manager
Command list-file-groups executed successfully
----

[[sthref1474]]

=== Exit Status

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

[[sthref1475]]

=== See Also

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

link:create-file-user.html#create-file-user-1[`create-file-user`(1)],
link:delete-file-user.html#delete-file-user-1[`delete-file-user`(1)],
link:list-file-users.html#list-file-users-1[`list-file-users`(1)],
link:update-file-user.html#update-file-user-1[`update-file-user`(1)]


