type=page
status=published
title=create-file-user
next=create-http.html
prev=create-domain.html
~~~~~~

create-file-user
================

[[create-file-user-1]][[GSRFM00024]][[create-file-user]]

create-file-user
----------------

Creates a new file user

[[sthref219]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-file-user [--help] 
[--authrealmnameauth_realm_name] 
[--target target 
[--groups user_groups[:user_groups]*] user_name
----

[[sthref220]]

=== Description

The `create-file-user` subcommand creates an entry in the keyfile with
the specified username, password, and groups. Multiple groups can be
created by separating them with a colon (`:`). If auth_realm_name is not
specified, an entry is created in the keyfile for the default realm. If
auth_realm_name is specified, an entry is created in the keyfile using
the `auth_realm_name`.

You can use the `--passwordfile` option of the
link:asadmin.html#asadmin-1m[`asadmin`(1M)] command to specify the
password for the user. The password file entry must be of the form
`AS_ADMIN_USERPASSWORD=`user-password.

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

This subcommand is supported in remote mode only.

[[sthref221]]

=== 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.
`--target`::
  This is the name of the target on which the command operates. The
  valid targets are config, instance, cluster, or server. By default,
  the target is the server.
`--groups`::
  This is the group associated with this file user.
`--authrealmname`::
  The name of the realm in which the new user is created. If you do not
  specify this option, the user is created in the "file" realm.

[[sthref222]]

=== Operands

user_name::
  This is the name of file user to be created.

[[sthref223]]

=== Examples

[[GSRFM475]][[sthref224]]

==== Example 1   Creating a User in the File Realm

This example creates a file realm user named `sample_user`. It is
assumed that an authentication realm has already been created using the
`create-auth-realm` subcommand.

[source]
----
asadmin> create-file-user 
--groups staff:manager 
--authrealmname auth-realm1 sample_user
Command create-file-user executed successfully
----

[[sthref225]]

=== Exit Status

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

[[sthref226]]

=== See Also

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

link:create-auth-realm.html#create-auth-realm-1[`create-auth-realm`(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)],
link:update-file-user.html#update-file-user-1[`update-file-user`(1)]


