type=page
status=published
title=login
next=migrate-timers.html
prev=list-web-env-entry.html
~~~~~~

login
=====

[[login-1]][[GSRFM00210]][[login]]

login
-----

Logs you into a domain

[[sthref1874]]

=== Synopsis

[source]
----
asadmin [asadmin-options] login [--help]
----

[[sthref1875]]

=== Description

The purpose of the `login` subcommand is to ease domain administration
by letting you log into a particular domain. If \{product---name}
domains are created on various machines (locally), you can run the
`asadmin` utility from any of these machines and manage domains located
elsewhere (remotely). This is especially useful when a particular
machine is chosen as an administration client that manages multiple
domains and servers.

The `login` subcommand prompts you for the administrator user name and
password. After successful login, the `.asadminpass` file is created in
your home directory. (This is the same file that is modified when you
run the `create-domain` subcommand with the `--savelogin` option.) The
literal host name is stored, and no resolution with the DNS is
attempted. If a domain is being administered from other machines, it is
sufficient to run the `login` subcommand once. You do not need to
specify the `asadmin` utility options `--user` and `--passwordfile` when
you run additional remote subcommands on that domain. After you have
logged into a domain, you still need to provide the host and port for
any subsequent remote subcommands unless you chose the default values
for `--host` (localhost) and `--port` (4848) options.

Subsequent use of same subcommand with the same parameters will result
in overwriting the contents of the `.asadminpass` file for the given
administration host and port. You can decide to overwrite the file or to
reject such a login.

Login information is saved permanently and can be used across multiple
domain restarts.

There is no `logout` subcommand. If you want to log in to another
domain, run the `login` subcommand and specify new values for the
`asadmin` utility options `--host` and `--port`.

[[sthref1876]]

=== 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.

[[sthref1877]]

=== Examples

[[GSRFM720]][[sthref1878]]

==== Example 1   Logging Into a Domain on a Remote Machine

This example logs into a domain located on another machine. Options are
specified before the `login` subcommand.

[source]
----
asadmin --host foo --port 8282 login 
Please enter the admin user name>admin
Please enter the admin password>

Trying to authenticate for administration of server at host [foo] 
and port [8282] ...
Login information relevant to admin user name [admin] for host [foo] 
and admin port [8282] stored at [/.asadminpass] successfully.
Make sure that this file remains protected. Information stored in this 
file will be used by asadmin commands to manage associated domain.
----

[[GSRFM721]][[sthref1879]]

==== Example 2   Logging Into a Domain on the Default Port of Localhost

This example logs into a domain on `mylhost` on the default port.
Options are specified before the `login` subcommand.

[source]
----
asadmin --host myhost login 
Please enter the admin user name>admin
Please enter the admin password>
Trying to authenticate for administration of server 
at host [myhost] and port [4848] ...
An entry for login exists for host [myhost] and port [4848], probably 
from an earlier login operation.
Do you want to overwrite this entry (y/n)?y
Login information relevant to admin user name [admin] for host [myhost] 
and admin port [4848] stored at [/home/joe/.asadminpass] successfully.
Make sure that this file remains protected. Information stored in this 
file will be used by asadmin commands to manage associated domain.
----

[[sthref1880]]

=== Exit Status

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

[[sthref1881]]

=== See Also

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

link:create-domain.html#create-domain-1[`create-domain`(1)],
link:delete-domain.html#delete-domain-1[`delete-domain`(1)]


