type=page
status=published
title=change-master-password
next=collect-log-files.html
prev=change-master-broker.html
~~~~~~
change-master-password
======================

[[change-master-password-1]][[GSRFM00006]][[change-master-password]]

change-master-password
----------------------

changes the master password

[[sthref61]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] change-master-password [--help] 
[--nodedir node-dir] [--domaindir domain-dir]
[--savemasterpassword={false|true}] [domain-name|node-name]
----

[[sthref62]]

Description

The `change-master-password` subcommand is used to modify the master
password. The `change-master-password` subcommand is interactive in that
the user is prompted for the old master password, as well as the new
master password. This subcommand will not work unless the server is
stopped. In a distributed environment, this command must run on each
machine in the domain.

[[sthref63]]

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.
`--nodedir`::
  The name of the directory containing the node instance for which the
  password will be changed. If this option is omitted, the change is
  applied to the entire domain.
`--domaindir`::
  The name of the domain directory used for this operation. By default,
  the `--domaindir` option is `$AS_DEF_DOMAINS_PATH`, which is an
  environment variable defined in the file `asenv.bat` or `asenv.conf`.
`--savemasterpassword`::
  This option indicates whether the master password should be written to
  the file system. This is necessary so that the
  link:start-domain.html#start-domain-1[`start-domain`(1)] command can
  start the server without having to prompt the user. +
  The default is `false`. +

[width="100%",cols="100%",]
|=======================================================================
a|
Caution:

Saving the master password on disk is extremely insecure and should be
avoided.

|=======================================================================


[width="100%",cols="100%",]
|=======================================================================
a|
Note:

If the `--savemasterpassword` option is not set, the master password
file, if it exists, will be deleted.

|=======================================================================


[[sthref64]]

Operands

domain-name|node-name::
  This name of the domain or node for which the password will be
  changed. If there is only a single domain, this is optional.

[[sthref65]]

Examples

[[GSRFM450]][[sthref66]]

Example 1   Changing the Master Password

This example shows how to changed the master password for the
`domain44ps` domain.

[source,oac_no_warn]
----
asadmin>change-master-password domain44ps
Please enter the new master password>
Please enter the new master password again>
Master password changed for domain44ps
----

[[sthref67]]

Exit Status

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

[[sthref68]]

See Also

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

link:delete-password-alias.html#delete-password-alias-1[`delete-password-alias`(1)],
link:list-password-aliases.html#list-password-aliases-1[`list-password-aliases`(1)],
link:start-domain.html#start-domain-1[`start-domain`(1)],
link:update-password-alias.html#update-password-alias-1[`update-password-alias`(1)]


