summaryrefslogtreecommitdiff
path: root/tools/krb5-sync.8
diff options
context:
space:
mode:
Diffstat (limited to 'tools/krb5-sync.8')
-rw-r--r--tools/krb5-sync.8311
1 files changed, 311 insertions, 0 deletions
diff --git a/tools/krb5-sync.8 b/tools/krb5-sync.8
new file mode 100644
index 0000000..5d5b271
--- /dev/null
+++ b/tools/krb5-sync.8
@@ -0,0 +1,311 @@
+.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{
+. if \nF \{
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "KRB5-SYNC 8"
+.TH KRB5-SYNC 8 "2015-08-19" "3.1" "krb5-sync"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+krb5\-sync \- Synchronize passwords and status with Active Directory
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+\&\fBkrb5\-sync\fR [\fB\-d\fR | \fB\-e\fR] [\fB\-p\fR \fIpassword\fR] \fIuser\fR
+.PP
+\&\fBkrb5\-sync\fR \fB\-f\fR \fIfile\fR
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBkrb5\-sync\fR provides a command-line interface to the same functions
+provided by the password and status synchronization plugin. It can push a
+new password to Active Directory (actually, to any password store that
+supports the Kerberos set-password protocol) or activate or deactivate an
+account in Active Directory.
+.PP
+To synchronize passwords, provide the \fB\-p\fR option and specify the
+password. Note that the password is given on the command line and must be
+quoted if it contains special characters, and the password will be exposed
+to any other users on the system where this command is run. This is
+useful primarily for testing and should not be used with production
+passwords. Synchronization to Active Directory will be attempted based on
+the configuration in \fIkrb5.conf\fR (see below).
+.PP
+To enable or disable an account, provide the \fB\-e\fR or \fB\-d\fR option
+respectively. These options can also be provided in conjunction with the
+\&\fB\-p\fR option to take both actions at once.
+.PP
+In either case, \fIuser\fR should be the principal name for which these
+actions should be taken. \fIuser\fR may be either unqualified or in the
+local realm; either way, the Active Directory realm in which to make
+changes will be taken from the \fIkrb5.conf\fR configuration.
+.PP
+Alternately, \fBkrb5\-sync\fR also supports processing actions from a file.
+To do this, use the \fB\-f\fR flag and give the file on the command line. The
+format of the file should be as follows:
+.PP
+.Vb 4
+\& <account>
+\& ad
+\& password | enable | disable
+\& <password>
+.Ve
+.PP
+where the fourth line is present only if the <action> is \f(CW\*(C`password\*(C'\fR.
+<account> should be the unqualified name of the account. The second line
+should be the string \f(CW\*(C`ad\*(C'\fR to push the change to Windows Active Directory.
+The third line should be one of \f(CW\*(C`password\*(C'\fR, \f(CW\*(C`enable\*(C'\fR, or \f(CW\*(C`disable\*(C'\fR,
+corresponding to the \fB\-p\fR, \fB\-e\fR, and \fB\-d\fR options respectively. The
+\&\f(CW\*(C`enable\*(C'\fR and \f(CW\*(C`disable\*(C'\fR actions are only supported for \s-1AD.\s0
+.PP
+The file format is not particularly forgiving. In particular, all of the
+keywords are case-sensitive and there must not be any whitespace at the
+beginning or end of the lines (except in the password, and only if that
+whitespace is part of the password), just a single newline terminating
+each line.
+.PP
+When the \fB\-f\fR option is given, the file will be deleted if the action was
+successful but left alone if the action failed.
+.PP
+The configuration block in \fIkrb5.conf\fR should look something like this:
+.PP
+.Vb 7
+\& krb5\-sync = {
+\& ad_keytab = /etc/krb5kdc/ad\-keytab
+\& ad_principal = service/sync@WINDOWS.EXAMPLE.COM
+\& ad_realm = WINDOWS.EXAMPLE.COM
+\& ad_admin_server = dc1.windows.example.com
+\& ad_ldap_base = ou=People
+\& }
+.Ve
+.PP
+If the configuration required for an action is not given, that action will
+not be performed but will apparently succeed from the perspective of the
+\&\fBkrb5\-sync\fR utility. Therefore, if this utility reports success but no
+change is happening, double-check the configuration to ensure that all
+required options are present.
+.PP
+The \f(CW\*(C`ad_keytab\*(C'\fR option specifies the location of a keytab for
+authenticating to the other realm, the \f(CW\*(C`ad_principal\*(C'\fR option specifies
+the principal to authenticate as (using the key in the keytab), and the
+\&\f(CW\*(C`ad_realm\*(C'\fR option specifies the foreign realm. \f(CW\*(C`ad_admin_server\*(C'\fR is the
+host to contact via \s-1LDAP\s0 to push account status changes. \f(CW\*(C`ad_ldap_base\*(C'\fR
+specifies the base tree inside Active Directory where account information
+is stored. Omit the trailing \f(CW\*(C`dc=\*(C'\fR part; it will be added automatically
+from \f(CW\*(C`ad_realm\*(C'\fR.
+.PP
+Be aware that the \f(CW\*(C`ad_instances\*(C'\fR, \f(CW\*(C`ad_base_instance\*(C'\fR, and
+\&\f(CW\*(C`ad_queue_only\*(C'\fR configuration options that are used by the krb5\-sync
+plugin are ignored by \fBkrb5\-sync\fR. The \fBkrb5\-sync\fR command will push
+changes to whatever principal it was given, regardless of the normal
+limits on instances, and does not do any of the principal remapping
+configured with \f(CW\*(C`ad_base_instance\*(C'\fR.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-d\fR" 4
+.IX Item "-d"
+Disable the specified user in Active Directory. Requires that all of the
+ad_* options be set in \fIkrb5.conf\fR. This option may not be specified at
+the same time as \fB\-e\fR.
+.IP "\fB\-e\fR" 4
+.IX Item "-e"
+Enable the specified user in Active Directory. Requires that all of the
+ad_* options be set in \fIkrb5.conf\fR. This option may not be specified at
+the same time as \fB\-e\fR.
+.IP "\fB\-f\fR \fIfile\fR" 4
+.IX Item "-f file"
+Rather than perform a particular action based on a username given on the
+command line, read a queue file and take action based on it. The format
+of the queue file is described above. If the action fails, the file will
+be left alone. If the action succeeds, the file will be deleted.
+.IP "\fB\-p\fR \fIpassword\fR" 4
+.IX Item "-p password"
+Change the user's password to \fIpassword\fR in Active Directory.
+.SH "EXAMPLES"
+.IX Header "EXAMPLES"
+Disable the account \*(L"jdoe\*(R" in Active Directory (using the \s-1AD\s0 configuration
+found in \fIkrb5.conf\fR):
+.PP
+.Vb 1
+\& krb5\-sync \-d jdoe
+.Ve
+.PP
+Change the password of the account \f(CW\*(C`testuser\*(C'\fR in Active Directory to
+\&\f(CW\*(C`changeme\*(C'\fR:
+.PP
+.Vb 1
+\& krb5\-sync \-p changeme testuser@EXAMPLE.COM
+.Ve
+.PP
+The same, except also enable the account in Active Directory:
+.PP
+.Vb 1
+\& krb5\-sync \-e \-p changeme testuser
+.Ve
+.PP
+Note that the realm for the user given on the command line is optional and
+ignored.
+.PP
+Given a file named \fIjdoe\-ad\-1168560492\fR containing:
+.PP
+.Vb 4
+\& jdoe
+\& ad
+\& password
+\& changeme
+.Ve
+.PP
+the command:
+.PP
+.Vb 1
+\& krb5\-sync \-f jdoe\-ad\-1168560492
+.Ve
+.PP
+will change jdoe's password to \f(CW\*(C`changeme\*(C'\fR in Active Directory and then
+delete the file.
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+The current version of this program is available from its web page at
+<http://www.eyrie.org/~eagle/software/krb5\-sync/>.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Russ Allbery <eagle@eyrie.org>
+.SH "COPYRIGHT AND LICENSE"
+.IX Header "COPYRIGHT AND LICENSE"
+Copyright 2007, 2008, 2010, 2012 The Board of Trustees of the Leland
+Stanford Junior University
+.PP
+Copying and distribution of this file, with or without modification, are
+permitted in any medium without royalty provided the copyright notice and
+this notice are preserved. This file is offered as-is, without any
+warranty.