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]
----
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`.
+
[CAUTION]
====
Saving the master password on disk is extremely insecure and should be avoided.
====
+
[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]
----
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)]


