type=page
status=published
title=update-file-user
next=update-node-config.html
prev=update-connector-work-security-map.html
~~~~~~

= update-file-user

[[update-file-user-1]][[GSRFM00254]][[update-file-user]]

== update-file-user

Updates a current file user as specified

[[sthref2274]]

=== Synopsis

[source]
----
asadmin [asadmin-options] update-file-user [--help]
[--groups user_groups[:user_groups]*]
[--target target
[--authrealmname authrealm_name]
username
----

[[sthref2275]]

=== Description

Th `update-file-user` subcommand updates an existing entry in the
keyfile using the specified user name, password and groups. Multiple
groups can be entered by separating them, with a colon (:).

If a new password is not provided, this subcommand fails if secure
administration is enabled and the user being updated is an
administrative user.

[[sthref2276]]

=== 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.
`--groups`::
  This is the name of the group to which the file user belongs.
`--authrealmname`::
  Name of the authentication realm where the user to be updated can be
  found.
`--target`::
  This option helps specify the target on which you are updating a file
  user. Valid values are:

  `server`;;
    Updates the file user in the default server instance. This is the
    default value.
  cluster_name;;
    Updates the file user on every server instance in the cluster.
  instance_name;;
    Updates the file user on a specified sever instance.

[[sthref2277]]

=== Operands

username::
  This is the name of the file user to be updated.

[[sthref2278]]

=== Examples

[[GSRFM787]][[sthref2279]]

==== Example 1   Updating a User's Information in a File Realm

The following example updates information for a file realm user named
`sample_user`.

[source]
----
asadmin> update-file-user
--groups staff:manager:engineer sample_user
Command update-file-user executed successfully
----

[[sthref2280]]

=== Exit Status

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

[[sthref2281]]

=== 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-groups.html#list-file-groups-1[`list-file-groups`(1)],
link:list-file-users.html#list-file-users-1[`list-file-users`(1)]


