=head1 NAME

C<razor-admin> - Razor Registering Agent

=head1 SYNOPSIS

    razor-admin [options]  [ -register | -create | -discover ]


=head1 DESCRIPTION

C<razor-admin> is the Razor Agent that performs administrative functions,
most notably registering (-register) 

=head1 USAGE 

C<razor-admin> must have one of the following arguments: 

=over 4 

=item C<-register> 

Registers a new identity, used for authenticating with Razor Nomination Servers.
Identities are a user + password pair stored in 
C<E<lt>razorhomeE<gt>/identity-E<lt>userE<gt>>. 
The first time C<razor-admin -register> 
exits successfully, a symlink C<identity> is created to
point to the active C<identity-E<lt>userE<gt>> file. After that, new
identities can be created, but in order to use them the symlink
C<identity> must be changed to point to them. In general, it should be
called once from the command line. Exits 0 for success, exits 1 on
failure with a human-readable output message. 

Both razor-report(1) and razor-revoke(1) require user authentication to
work, razor-check(1) does not. This allows the Razor Nomination Server
to keep track of how many messages a user reports and revokes. The more
messages a user correctly reports and/or correctly revokes, the more
trust the user earns. Likewise, when messages are incorrectly reported
or revoked, the trust goes down for that user. Highly trusted users will
have the most affect on the Razor database. 



=item C<-discover> 

Force discovery.  This will create C<server.*.lst> files in E<lt>razorhomeE<gt>.

=item C<-create> 

Explicitly creates C<razor-agent.conf> file in E<lt>razorhomeE<gt>, as well
as E<lt>razorhomeE<gt> if it does not exist.
Normally loads C</etc/razor/razor-agent.conf> if it exists, using defaults
for anything not found.  Does not attempt to register with server, but 
will do discovery, see C<-discover>.


=back

=head1 OPTIONS 

C<razor-admin> takes following optional arguments: 

=over 4 

=item C<-h> 

Print a usage message and exit. 

=item C<-v> 

Print the version number and exit. 

=item C<-d | --verbose> 

Print debugging information. 

=item C<-debuglevel=n | -dl=n>

Set debug level to 'n'.  Default is 3 without C<-d> option, 9 with.

=item C<-s> 

Simulate a check. Do everything except talk to the server. 

=item C<-conf=filename> 

Specifies an alternate configuration file.
If not specified, it is computed, see razor-agents(1) manpage for details.
See razor-agent.conf(5) manpage for various configuration options.
The default is C<E<lt>razorhomeE<gt>/razor-agent.conf>.

=item C<-home=directory> 

Specify razorhome directory.  This is where the configuration file, 
logfiles, identities, and server files live.  
If not specified, it is computed, see razor-agents(1) manpage for details.

=item C<-logfile=file>

Specify file to log to instead of what is in the configuration file.
The default is C<E<lt>razorhomeE<gt>/razor-agent.log>.

=item C<-ident=filename> 

Specify an identify file to use for storing a newly registered identity.
If not specified, C<E<lt>razorhomeE<gt>/identity-E<lt>userE<gt>> is used.

=item C<-rs=razor.server.com> 

Use this Razor Nomination Server instead of reading
C<servers.nomination.lst>.

=item C<-user=user@domain.com> 

Request to be known as this username. Must be less than 64 chars and may
contain A-Z, a-z, 0-9, as well printable chars [ex: - _ @ . + / ]. If
not specified, a username will be assigned. Razor users are encouraged
to use their email addresses as their username. 

=item C<-pass=password> 

Request this password.  Valid chars are the same as for -user.
If not specified, it will be assigned.

=item C<-l> 

The identity created during this C<razor-admin> becomes the default.  
Normally, the first identity file created by C<razor-admin> is the 
default one used.

=back

=head1 EXAMPLES

=over 4


=item razor-admin -d -create

With no global razorhome defined (default) in /etc/razor/razor-agents.conf,
creates .razor directory in user's home directory.

With global razorhome defined in /etc/razor/razor-agents.conf,
will try to use that one, will fail if it does not have correct permissions.

=item razor-admin -register

Registers a new identity, storing it in <lt>razorhome<gt>.  
User and pass will be server generated.
An identity is required for razor-report(1) and razor-revoke(1).

=item razor-admin -register -user me@a.com 

Attempts to register a new identity using the user name 'me\@a.com'.
Will fail if user is already taken.

=item razor-admin -d -create -home=/home/me/.razor 

Creates .razor directory in user's home directory, which will then be the 
default home unless specified from cmd-line.  Sends debugging information to 
stdout, and does not talk to any Razor Servers.

=item razor-admin -d -create -home=/etc/razor

Creates global razorhome, /etc/razor.  This is the magic directory that
will be consulted if no razorhome is specified on the cmd-line or found
in user's home directory.



=back

=head1 AUTHORS

Vipul Ved Prakash E<lt>mail@vipul.netE<gt>, and Chad Norwood E<lt>chad@samo.orgE<gt>

=cut

=head1 SEE ALSO

razor-agents(1), razor-agent.conf(5), razor-check(1), 
razor-report(1), razor-revoke(1), razor-whitelist(5)

=head1 LICENSE 

This is free software, distributed under the Artistic License 2.0.