summaryrefslogtreecommitdiffstats
path: root/third_party/heimdal/kuser/kinit.1
blob: f374a7c0628910de16bb6712ee7d6c87e35db963 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
.\" Copyright (c) 1998 - 2003, 2006 Kungliga Tekniska Högskolan
.\" (Royal Institute of Technology, Stockholm, Sweden).
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" 3. Neither the name of the Institute nor the names of its contributors
.\"    may be used to endorse or promote products derived from this software
.\"    without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $Id$
.\"
.Dd April 25, 2006
.Dt KINIT 1
.Os HEIMDAL
.Sh NAME
.Nm kinit
.Nd acquire initial tickets
.Sh SYNOPSIS
.Nm kinit
.Op Fl Fl no-change-default
.Op Fl Fl default-for-principal
.Op Fl Fl afslog
.Oo Fl c Ar cachename \*(Ba Xo
.Fl Fl cache= Ns Ar cachename
.Xc
.Oc
.Op Fl f | Fl Fl forwardable
.Op Fl F | Fl Fl no-forwardable
.Oo Fl t Ar keytabname \*(Ba Xo
.Fl Fl keytab= Ns Ar keytabname
.Xc
.Oc
.Oo Fl l Ar time \*(Ba Xo
.Fl Fl lifetime= Ns Ar time
.Xc
.Oc
.Op Fl p | Fl Fl proxiable
.Op Fl R | Fl Fl renew
.Op Fl Fl renewable
.Oo Fl r Ar time \*(Ba Xo
.Fl Fl renewable-life= Ns Ar time
.Xc
.Oc
.Oo Fl S Ar principal \*(Ba Xo
.Fl Fl server= Ns Ar principal
.Xc
.Oc
.Oo Fl s Ar time \*(Ba Xo
.Fl Fl start-time= Ns Ar time
.Xc
.Oc
.Op Fl k | Fl Fl use-keytab
.Op Fl v | Fl Fl validate
.Oo Fl e Ar enctypes \*(Ba Xo
.Fl Fl enctypes= Ns Ar enctypes
.Xc
.Oc
.Oo Fl a Ar addresses \*(Ba Xo
.Fl Fl extra-addresses= Ns Ar addresses
.Xc
.Oc
.Op Fl Fl password-file= Ns Ar filename
.Op Fl Fl fcache-version= Ns Ar version-number
.Op Fl A | Fl Fl no-addresses
.Op Fl n | Fl Fl anonymous
.Op Fl Fl enterprise
.Op Fl Fl version
.Op Fl Fl help
.Op Ar principal Op Ar command
.Sh DESCRIPTION
.Nm
is used to authenticate to the Kerberos server as
.Ar principal ,
or if none is given, a system generated default (typically your login
name at the default realm), and acquire a ticket granting ticket that
can later be used to obtain tickets for other services.
.Pp
Supported options:
.Bl -tag -width Ds
.It Fl c Ar cachename | Fl Fl cache= Ns Ar cachename
The credentials cache to put the acquired ticket in, if other than
default.
.It Fl Fl no-change-default
By default the principal's credentials will be stored in the default
credential cache.  This option will cause them to instead be stored
only in a cache whose name is derived from the principal's name.  Note
that
.Xr klist 1
with the
.Fl l
option will list all the credential caches the user has, along with
the name of the principal whose credentials are stored therein.  This
option is ignored if the
.Fl c Ar cachename | Fl Fl cache= Ns Ar cachename
option is given.
See also
.Xr kswitch 1 .
.It Fl Fl default-for-principal
If this option is given and
.Fl c Ar cachename | Fl Fl cache= Ns Ar cachename
is not given, then the cache that will be used will be one that
is appropriate for the client principal.  For example, if the
default cache type is
.Ar FILE
then the default cache may be either
.Ar FILE:/tmp/krb5cc_%{uid}+%{principal_name}
or
.Ar FILE:/tmp/krb5cc_%{uid}
if the principal is the default principal for the user, meaning
that it is of the form
.Ar ${USER}@${user_realm}
or
.Ar ${USER}@${default_realm} .
This option implies
.Fl Fl no-change-default
unless
.Fl Fl change-default
is given.  Caches for the user can be listed with the
.Fl l
option to
.Xr klist 1 .
.It Fl f Fl Fl forwardable
Obtain a ticket than can be forwarded to another host.
.It Fl F Fl Fl no-forwardable
Do not obtain a forwardable ticket.
.It Fl t Ar keytabname , Fl Fl keytab= Ns Ar keytabname
Don't ask for a password, but instead get the key from the specified
keytab.
.It Fl l Ar time , Fl Fl lifetime= Ns Ar time
Specifies the lifetime of the ticket.
The argument can either be in seconds, or a more human readable string
like
.Sq 1h .
.It Fl p , Fl Fl proxiable
Request tickets with the proxiable flag set.
.It Fl R , Fl Fl renew
Try to renew a ticket.
The ticket must have the
.Sq renewable
flag set, and must not be expired. If the
.Oo Fl S Ar principal Oc
option is specified, the ticket for the indicated service is renewed.
If no service is explicitly specified, an attempt is made to renew the
TGT for the client realm.  If no TGT for the client realm is found in the
credential cache, an attempt is made to renew the TGT for the defaualt
realm (if that is found in the credential cache), or else the first
TGT found.  This makes it easier for users to renew forwarded tickets
that are not issued by the origin realm.
.It Fl Fl renewable
The same as
.Fl Fl renewable-life ,
with an infinite time.
.It Fl r Ar time , Fl Fl renewable-life= Ns Ar time
The max renewable ticket life.
.It Fl S Ar principal , Fl Fl server= Ns Ar principal
Get a ticket for a service other than krbtgt/LOCAL.REALM.
.It Fl s Ar time , Fl Fl start-time= Ns Ar time
Obtain a ticket that starts to be valid
.Ar time
(which can really be a generic time specification, like
.Sq 1h )
seconds into the future.
.It Fl k , Fl Fl use-keytab
The same as
.Fl Fl keytab ,
but with the default keytab name (normally
.Ar FILE:/etc/krb5.keytab ) .
.It Fl v , Fl Fl validate
Try to validate an invalid ticket.
.It Fl e , Fl Fl enctypes= Ns Ar enctypes
Request tickets with this particular enctype.
.It Fl Fl password-file= Ns Ar filename
read the password from the first line of
.Ar filename .
If the
.Ar filename
is
.Ar STDIN ,
the password will be read from the standard input.
.It Fl Fl fcache-version= Ns Ar version-number
Create a credentials cache of version
.Ar version-number .
.It Fl a , Fl Fl extra-addresses= Ns Ar enctypes
Adds a set of addresses that will, in addition to the systems local
addresses, be put in the ticket.
This can be useful if all addresses a client can use can't be
automatically figured out.
One such example is if the client is behind a firewall.
Also settable via
.Li libdefaults/extra_addresses
in
.Xr krb5.conf 5 .
.It Fl A , Fl Fl no-addresses
Request a ticket with no addresses.
.It Fl n , Fl Fl anonymous
Request an anonymous ticket.
With the default (false) setting of the
.Ar historical_anon_pkinit
configuration parameter, if the principal is specified as @REALM, then
anonymous PKINIT will be used to acquire an unauthenticated anonymous ticket
and both the client name and (with fully RFC-comformant KDCs) realm in the
returned ticket will be anonymized.
Otherwise, authentication proceeds as normal and the anonymous ticket will have
only the client name anonymized.
With
.Ar historical_anon_pkinit
set to
.Li true ,
the principal is interpreted as a realm even without an at-sign prefix, and it
is not possible to obtain authenticated anonymized tickets.
.It Fl Fl enterprise
Parse principal as a enterprise (KRB5-NT-ENTERPRISE) name. Enterprise
names are email like principals that are stored in the name part of
the principal, and since there are two @ characters the parser needs
to know that the first is not a realm.
An example of an enterprise name is
.Dq lha@e.kth.se@KTH.SE ,
and this option is usually used with canonicalize so that the
principal returned from the KDC will typically be the real principal
name.
.It Fl Fl gss-mech
Enable GSS-API pre-authentication using the specified mechanism OID. Unless
.Ar gss-name
is also set, then the specified principal name will be used as the GSS-API
initiator name. If the principal is specified as @REALM or left unspecified,
then the default GSS-API credential will be used.
.It Fl Fl gss-name
Attempt GSS-API pre-authentication using an initiator name distinct from the
Kerberos client principal,
.It Fl Fl afslog
Gets AFS tickets, converts them to version 4 format, and stores them
in the kernel.
Only useful if you have AFS.
.El
.Pp
The
.Ar forwardable ,
.Ar proxiable ,
.Ar ticket_life ,
and
.Ar renewable_life
options can be set to a default value from the
.Dv appdefaults
section in krb5.conf, see
.Xr krb5_appdefault 3 .
.Pp
If  a
.Ar command
is given,
.Nm
will set up new credentials caches, and AFS PAG, and then run the given
command.
When it finishes the credentials will be removed.
.Sh CREDENTIALS CACHE TYPES
Heimdal supports a number of credentials cache types:
.Bl -tag -width Ds
.It FILE
Uses a file per-cache with a binary format common to other Kerberos
implementations.
.It DIR
Uses a directory with multiple files, one per-cache in a collection.
.It SCC
Uses a SQLite3 database with multiple caches in the database.
.It KEYRING
Uses a Linux keyring.
.It KCM
Uses a inter-process communications (IPC) to talk to a daemon typically named
.Nm kcm .
.It API
Uses KCM or else a shared object that implements the "CCAPI".
.It MEMORY
Uses in-process memory (which disappears on process exit, so this if of little
use in this program,
.Nm
).
.El
.Sh CREDENTIALS CACHE COLLECTIONS
Every credentials cache's name consists of its cache type (e.g.,
FILE), a possibly-optional collection name, and a possibly
optional "subsidiary" name naming a single cache in the
collection.
.Pp
The convention in Heimdal is that a cache's subsidiary cache name
is the name of the client principal whose credentials are
expected to be stored and found in that cache, with the following
characters replaced with a hyphen: slash, backslash, colon, and
plus.
.Pp
The caches in a credentials cache collection can be listed by the
.Xr klist 1
command.
The
.Sq FILE
credentials cache type supports listing of caches in the
collection only when the
.Ql enable_file_cache_iteration
is set to
.Ql yes
in the
.Ql [libdefaults]
section of
.Xr krb5.conf 5 .
.Sh CREDENTIALS CACHE NAMES
The general syntax for credentials cache names is
.Dl TYPE:[collection-name][:subsidiary]
except that for the FILE type it is
.Dl FILE:collection-name[+subsidiary]
and for the KEYRING type it is:
.Dl KEYRING:[anchor:][collection[:subsidiary]]
where the collection name is free-form and the anchor is one of
.Sq process ,
.Sq thread ,
or
.Sq legacy .
.Pp
The collection name is always absent for the
.Ql MEMORY
credentials cache type.
.Pp
When the collection name is absent then the default collection
for the given credentials cache type is used, which are:
.Bl -tag -compact
.It Ql /tmp/krb5cc_{UID}
for FILE caches, where {UID} is a numeric user ID
.It Ql /tmp/krb5cc_{UID}_dir
for DIR caches, where {UID} is a numeric user ID
.It Ql /tmp/krb5scc_{UID}
for SCC caches, where {UID} is a numeric user ID, and where the
named file is a SQLite3 database file
.It Ql {UID}
for KCM caches, where {UID} is the user's numeric user ID
.It <implementation-specific>
for API (CCAPI) credentials caches
.El
.Pp
The collection name is only optional for:
.Ql DIR ,
.Ql SCC ,
.Ql KCM ,
.Ql KEYRING
and
.Ql API
credentials cache types.
.Sh EXAMPLE CREDENTIALS CACHE NAMES
.Bl -tag -width Ds
.It Ql FILE:/tmp/cc
this is a FILE cache in a file named
.Ql /tmp/cc
(the default would be
.Ql /tmp/krb5cc_{UID} )
.It Ql FILE:/tmp/cc+jane@TEST.H5L.SE
.It Ql DIR:/tmp/ccdir
this is a FILE cache named by
.Ql /tmp/krb5cc_{UID}_dir/primary
which will be of the form
.Ql /tmp/ccdir/tkt.XXXXXX 
.It Ql DIR:/tmp/ccdir:jane@TEST.H5L.SE
this is a FILE ccache named
.Ql /tmp/ccdir/tkt.jane@TEST.H5L.SE 
.It Ql DIR::jane@TEST.H5L.SE
this is a FILE ccache named
.Ql /tmp/krb5cc_{UID}_dir/tkt.jane@TEST.H5L.SE
where {UID} is the user's numeric identifier
.It Ql SCC:
this is the current primary cache in the SQLite3 database named
.Ql /tmp/krb5scc_{UID}
.It Ql SCC:/tmp/ccdb
this is the current primary cache in the SQLite3 database named
.Ql /tmp/ccdb
.It Ql SCC:/tmp/ccdb:jane@TEST.H5L.SE
this is the cache
.Dq named jane@TEST.H5L.SE
in the SQLite3 database
named
.Ql /tmp/ccdb
.It Ql SCC::jane@TEST.H5L.SE
this is the cache named
.Dq jane@TEST.H5L.SE
in the SQLite3 database named
.Ql /tmp/krb5scc_{UID}
.It Ql KEYRING:
this is the primary cache in the default KEYRING collection for
the running user
.It Ql KEYRING:foo
this is the primary cache in the KEYRING collection named
.Dq foo
.It Ql KEYRING:foo:jane@TEST.H5L.SE
this is the cache named
.Dq jane@TEST.H5L.SE
in the KEYRING collection named
.Dq foo
.It Ql KCM:
this is the primary cache in the default KCM collection for the
running user
.It Ql KCM:12345
this is the primary cache in the default KCM collection for the
user whose numeric identifier is 12345
.It Ql KCM:jane@TEST.H5L.SE
this is the cache named
.Dq jane@TEST.H5L.SE
in the default KCM collection for the running user
.It Ql KCM:12345:jane@TEST.H5L.SE
this is the cache named
.Dq jane@TEST.H5L.SE
in the default KCM collection for the given user
.It Ql API:
this is the primary cache in the default API collection for the
running user
.It Ql API:foo
this is the primary cache in the API collection named
.Dq foo
.It Ql API:foo:jane@TEST.H5L.SE
this is the cache named
.Dq jane@TEST.H5L.SE
in the KEYRING collection named
.Dq foo
.El
.Sh ENVIRONMENT
.Bl -tag -width Ds
.It Ev KRB5CCNAME
Specifies the default credentials cache.
.It Ev KRB5_CONFIG
The file name of
.Pa krb5.conf ,
the default being
.Pa /etc/krb5.conf .
.El
.\".Sh FILES
.\".Sh EXAMPLES
.\".Sh DIAGNOSTICS
.Sh SEE ALSO
.Xr kdestroy 1 ,
.Xr klist 1 ,
.Xr kswitch 1 ,
.Xr kcm 8 ,
.Xr krb5_appdefault 3 ,
.Xr krb5.conf 5
.\".Sh STANDARDS
.\".Sh HISTORY
.\".Sh AUTHORS
.\".Sh BUGS