Mercurial > repos > rliterman > csp2
comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/share/man/man1/ksu.1 @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
67:0e9998148a16 | 68:5028fdace37b |
---|---|
1 .\" Man page generated from reStructuredText. | |
2 . | |
3 .TH "KSU" "1" " " "1.20.1" "MIT Kerberos" | |
4 .SH NAME | |
5 ksu \- Kerberized super-user | |
6 . | |
7 .nr rst2man-indent-level 0 | |
8 . | |
9 .de1 rstReportMargin | |
10 \\$1 \\n[an-margin] | |
11 level \\n[rst2man-indent-level] | |
12 level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] | |
13 - | |
14 \\n[rst2man-indent0] | |
15 \\n[rst2man-indent1] | |
16 \\n[rst2man-indent2] | |
17 .. | |
18 .de1 INDENT | |
19 .\" .rstReportMargin pre: | |
20 . RS \\$1 | |
21 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] | |
22 . nr rst2man-indent-level +1 | |
23 .\" .rstReportMargin post: | |
24 .. | |
25 .de UNINDENT | |
26 . RE | |
27 .\" indent \\n[an-margin] | |
28 .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] | |
29 .nr rst2man-indent-level -1 | |
30 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] | |
31 .in \\n[rst2man-indent\\n[rst2man-indent-level]]u | |
32 .. | |
33 .SH SYNOPSIS | |
34 .sp | |
35 \fBksu\fP | |
36 [ \fItarget_user\fP ] | |
37 [ \fB\-n\fP \fItarget_principal_name\fP ] | |
38 [ \fB\-c\fP \fIsource_cache_name\fP ] | |
39 [ \fB\-k\fP ] | |
40 [ \fB\-r\fP time ] | |
41 [ \fB\-p\fP | \fB\-P\fP] | |
42 [ \fB\-f\fP | \fB\-F\fP] | |
43 [ \fB\-l\fP \fIlifetime\fP ] | |
44 [ \fB\-z | Z\fP ] | |
45 [ \fB\-q\fP ] | |
46 [ \fB\-e\fP \fIcommand\fP [ args ... ] ] [ \fB\-a\fP [ args ... ] ] | |
47 .SH REQUIREMENTS | |
48 .sp | |
49 Must have Kerberos version 5 installed to compile ksu. Must have a | |
50 Kerberos version 5 server running to use ksu. | |
51 .SH DESCRIPTION | |
52 .sp | |
53 ksu is a Kerberized version of the su program that has two missions: | |
54 one is to securely change the real and effective user ID to that of | |
55 the target user, and the other is to create a new security context. | |
56 .sp | |
57 \fBNOTE:\fP | |
58 .INDENT 0.0 | |
59 .INDENT 3.5 | |
60 For the sake of clarity, all references to and attributes of | |
61 the user invoking the program will start with "source" | |
62 (e.g., "source user", "source cache", etc.). | |
63 .sp | |
64 Likewise, all references to and attributes of the target | |
65 account will start with "target". | |
66 .UNINDENT | |
67 .UNINDENT | |
68 .SH AUTHENTICATION | |
69 .sp | |
70 To fulfill the first mission, ksu operates in two phases: | |
71 authentication and authorization. Resolving the target principal name | |
72 is the first step in authentication. The user can either specify his | |
73 principal name with the \fB\-n\fP option (e.g., \fB\-n jqpublic@USC.EDU\fP) | |
74 or a default principal name will be assigned using a heuristic | |
75 described in the OPTIONS section (see \fB\-n\fP option). The target user | |
76 name must be the first argument to ksu; if not specified root is the | |
77 default. If \fB\&.\fP is specified then the target user will be the | |
78 source user (e.g., \fBksu .\fP). If the source user is root or the | |
79 target user is the source user, no authentication or authorization | |
80 takes place. Otherwise, ksu looks for an appropriate Kerberos ticket | |
81 in the source cache. | |
82 .sp | |
83 The ticket can either be for the end\-server or a ticket granting | |
84 ticket (TGT) for the target principal\(aqs realm. If the ticket for the | |
85 end\-server is already in the cache, it\(aqs decrypted and verified. If | |
86 it\(aqs not in the cache but the TGT is, the TGT is used to obtain the | |
87 ticket for the end\-server. The end\-server ticket is then verified. | |
88 If neither ticket is in the cache, but ksu is compiled with the | |
89 \fBGET_TGT_VIA_PASSWD\fP define, the user will be prompted for a | |
90 Kerberos password which will then be used to get a TGT. If the user | |
91 is logged in remotely and does not have a secure channel, the password | |
92 may be exposed. If neither ticket is in the cache and | |
93 \fBGET_TGT_VIA_PASSWD\fP is not defined, authentication fails. | |
94 .SH AUTHORIZATION | |
95 .sp | |
96 This section describes authorization of the source user when ksu is | |
97 invoked without the \fB\-e\fP option. For a description of the \fB\-e\fP | |
98 option, see the OPTIONS section. | |
99 .sp | |
100 Upon successful authentication, ksu checks whether the target | |
101 principal is authorized to access the target account. In the target | |
102 user\(aqs home directory, ksu attempts to access two authorization files: | |
103 \&.k5login(5) and .k5users. In the .k5login file each line | |
104 contains the name of a principal that is authorized to access the | |
105 account. | |
106 .sp | |
107 For example: | |
108 .INDENT 0.0 | |
109 .INDENT 3.5 | |
110 .sp | |
111 .nf | |
112 .ft C | |
113 jqpublic@USC.EDU | |
114 jqpublic/secure@USC.EDU | |
115 jqpublic/admin@USC.EDU | |
116 .ft P | |
117 .fi | |
118 .UNINDENT | |
119 .UNINDENT | |
120 .sp | |
121 The format of .k5users is the same, except the principal name may be | |
122 followed by a list of commands that the principal is authorized to | |
123 execute (see the \fB\-e\fP option in the OPTIONS section for details). | |
124 .sp | |
125 Thus if the target principal name is found in the .k5login file the | |
126 source user is authorized to access the target account. Otherwise ksu | |
127 looks in the .k5users file. If the target principal name is found | |
128 without any trailing commands or followed only by \fB*\fP then the | |
129 source user is authorized. If either .k5login or .k5users exist but | |
130 an appropriate entry for the target principal does not exist then | |
131 access is denied. If neither file exists then the principal will be | |
132 granted access to the account according to the aname\->lname mapping | |
133 rules. Otherwise, authorization fails. | |
134 .SH EXECUTION OF THE TARGET SHELL | |
135 .sp | |
136 Upon successful authentication and authorization, ksu proceeds in a | |
137 similar fashion to su. The environment is unmodified with the | |
138 exception of USER, HOME and SHELL variables. If the target user is | |
139 not root, USER gets set to the target user name. Otherwise USER | |
140 remains unchanged. Both HOME and SHELL are set to the target login\(aqs | |
141 default values. In addition, the environment variable \fBKRB5CCNAME\fP | |
142 gets set to the name of the target cache. The real and effective user | |
143 ID are changed to that of the target user. The target user\(aqs shell is | |
144 then invoked (the shell name is specified in the password file). Upon | |
145 termination of the shell, ksu deletes the target cache (unless ksu is | |
146 invoked with the \fB\-k\fP option). This is implemented by first doing a | |
147 fork and then an exec, instead of just exec, as done by su. | |
148 .SH CREATING A NEW SECURITY CONTEXT | |
149 .sp | |
150 ksu can be used to create a new security context for the target | |
151 program (either the target shell, or command specified via the \fB\-e\fP | |
152 option). The target program inherits a set of credentials from the | |
153 source user. By default, this set includes all of the credentials in | |
154 the source cache plus any additional credentials obtained during | |
155 authentication. The source user is able to limit the credentials in | |
156 this set by using \fB\-z\fP or \fB\-Z\fP option. \fB\-z\fP restricts the copy | |
157 of tickets from the source cache to the target cache to only the | |
158 tickets where client == the target principal name. The \fB\-Z\fP option | |
159 provides the target user with a fresh target cache (no creds in the | |
160 cache). Note that for security reasons, when the source user is root | |
161 and target user is non\-root, \fB\-z\fP option is the default mode of | |
162 operation. | |
163 .sp | |
164 While no authentication takes place if the source user is root or is | |
165 the same as the target user, additional tickets can still be obtained | |
166 for the target cache. If \fB\-n\fP is specified and no credentials can | |
167 be copied to the target cache, the source user is prompted for a | |
168 Kerberos password (unless \fB\-Z\fP specified or \fBGET_TGT_VIA_PASSWD\fP | |
169 is undefined). If successful, a TGT is obtained from the Kerberos | |
170 server and stored in the target cache. Otherwise, if a password is | |
171 not provided (user hit return) ksu continues in a normal mode of | |
172 operation (the target cache will not contain the desired TGT). If the | |
173 wrong password is typed in, ksu fails. | |
174 .sp | |
175 \fBNOTE:\fP | |
176 .INDENT 0.0 | |
177 .INDENT 3.5 | |
178 During authentication, only the tickets that could be | |
179 obtained without providing a password are cached in the | |
180 source cache. | |
181 .UNINDENT | |
182 .UNINDENT | |
183 .SH OPTIONS | |
184 .INDENT 0.0 | |
185 .TP | |
186 \fB\-n\fP \fItarget_principal_name\fP | |
187 Specify a Kerberos target principal name. Used in authentication | |
188 and authorization phases of ksu. | |
189 .sp | |
190 If ksu is invoked without \fB\-n\fP, a default principal name is | |
191 assigned via the following heuristic: | |
192 .INDENT 7.0 | |
193 .IP \(bu 2 | |
194 Case 1: source user is non\-root. | |
195 .sp | |
196 If the target user is the source user the default principal name | |
197 is set to the default principal of the source cache. If the | |
198 cache does not exist then the default principal name is set to | |
199 \fBtarget_user@local_realm\fP\&. If the source and target users are | |
200 different and neither \fB~target_user/.k5users\fP nor | |
201 \fB~target_user/.k5login\fP exist then the default principal name | |
202 is \fBtarget_user_login_name@local_realm\fP\&. Otherwise, starting | |
203 with the first principal listed below, ksu checks if the | |
204 principal is authorized to access the target account and whether | |
205 there is a legitimate ticket for that principal in the source | |
206 cache. If both conditions are met that principal becomes the | |
207 default target principal, otherwise go to the next principal. | |
208 .INDENT 2.0 | |
209 .IP a. 3 | |
210 default principal of the source cache | |
211 .IP b. 3 | |
212 target_user@local_realm | |
213 .IP c. 3 | |
214 source_user@local_realm | |
215 .UNINDENT | |
216 .sp | |
217 If a\-c fails try any principal for which there is a ticket in | |
218 the source cache and that is authorized to access the target | |
219 account. If that fails select the first principal that is | |
220 authorized to access the target account from the above list. If | |
221 none are authorized and ksu is configured with | |
222 \fBPRINC_LOOK_AHEAD\fP turned on, select the default principal as | |
223 follows: | |
224 .sp | |
225 For each candidate in the above list, select an authorized | |
226 principal that has the same realm name and first part of the | |
227 principal name equal to the prefix of the candidate. For | |
228 example if candidate a) is \fBjqpublic@ISI.EDU\fP and | |
229 \fBjqpublic/secure@ISI.EDU\fP is authorized to access the target | |
230 account then the default principal is set to | |
231 \fBjqpublic/secure@ISI.EDU\fP\&. | |
232 .IP \(bu 2 | |
233 Case 2: source user is root. | |
234 .sp | |
235 If the target user is non\-root then the default principal name | |
236 is \fBtarget_user@local_realm\fP\&. Else, if the source cache | |
237 exists the default principal name is set to the default | |
238 principal of the source cache. If the source cache does not | |
239 exist, default principal name is set to \fBroot\e@local_realm\fP\&. | |
240 .UNINDENT | |
241 .UNINDENT | |
242 .sp | |
243 \fB\-c\fP \fIsource_cache_name\fP | |
244 .INDENT 0.0 | |
245 .INDENT 3.5 | |
246 Specify source cache name (e.g., \fB\-c FILE:/tmp/my_cache\fP). If | |
247 \fB\-c\fP option is not used then the name is obtained from | |
248 \fBKRB5CCNAME\fP environment variable. If \fBKRB5CCNAME\fP is not | |
249 defined the source cache name is set to \fBkrb5cc_<source uid>\fP\&. | |
250 The target cache name is automatically set to \fBkrb5cc_<target | |
251 uid>.(gen_sym())\fP, where gen_sym generates a new number such that | |
252 the resulting cache does not already exist. For example: | |
253 .INDENT 0.0 | |
254 .INDENT 3.5 | |
255 .sp | |
256 .nf | |
257 .ft C | |
258 krb5cc_1984.2 | |
259 .ft P | |
260 .fi | |
261 .UNINDENT | |
262 .UNINDENT | |
263 .UNINDENT | |
264 .UNINDENT | |
265 .INDENT 0.0 | |
266 .TP | |
267 \fB\-k\fP | |
268 Do not delete the target cache upon termination of the target | |
269 shell or a command (\fB\-e\fP command). Without \fB\-k\fP, ksu deletes | |
270 the target cache. | |
271 .TP | |
272 \fB\-z\fP | |
273 Restrict the copy of tickets from the source cache to the target | |
274 cache to only the tickets where client == the target principal | |
275 name. Use the \fB\-n\fP option if you want the tickets for other then | |
276 the default principal. Note that the \fB\-z\fP option is mutually | |
277 exclusive with the \fB\-Z\fP option. | |
278 .TP | |
279 \fB\-Z\fP | |
280 Don\(aqt copy any tickets from the source cache to the target cache. | |
281 Just create a fresh target cache, where the default principal name | |
282 of the cache is initialized to the target principal name. Note | |
283 that the \fB\-Z\fP option is mutually exclusive with the \fB\-z\fP | |
284 option. | |
285 .TP | |
286 \fB\-q\fP | |
287 Suppress the printing of status messages. | |
288 .UNINDENT | |
289 .sp | |
290 Ticket granting ticket options: | |
291 .INDENT 0.0 | |
292 .TP | |
293 \fB\-l\fP \fIlifetime\fP \fB\-r\fP \fItime\fP \fB\-p\fP \fB\-P\fP \fB\-f\fP \fB\-F\fP | |
294 The ticket granting ticket options only apply to the case where | |
295 there are no appropriate tickets in the cache to authenticate the | |
296 source user. In this case if ksu is configured to prompt users | |
297 for a Kerberos password (\fBGET_TGT_VIA_PASSWD\fP is defined), the | |
298 ticket granting ticket options that are specified will be used | |
299 when getting a ticket granting ticket from the Kerberos server. | |
300 .TP | |
301 \fB\-l\fP \fIlifetime\fP | |
302 (duration string.) Specifies the lifetime to be requested | |
303 for the ticket; if this option is not specified, the default ticket | |
304 lifetime (12 hours) is used instead. | |
305 .TP | |
306 \fB\-r\fP \fItime\fP | |
307 (duration string.) Specifies that the \fBrenewable\fP option | |
308 should be requested for the ticket, and specifies the desired | |
309 total lifetime of the ticket. | |
310 .TP | |
311 \fB\-p\fP | |
312 specifies that the \fBproxiable\fP option should be requested for | |
313 the ticket. | |
314 .TP | |
315 \fB\-P\fP | |
316 specifies that the \fBproxiable\fP option should not be requested | |
317 for the ticket, even if the default configuration is to ask for | |
318 proxiable tickets. | |
319 .TP | |
320 \fB\-f\fP | |
321 option specifies that the \fBforwardable\fP option should be | |
322 requested for the ticket. | |
323 .TP | |
324 \fB\-F\fP | |
325 option specifies that the \fBforwardable\fP option should not be | |
326 requested for the ticket, even if the default configuration is to | |
327 ask for forwardable tickets. | |
328 .TP | |
329 \fB\-e\fP \fIcommand\fP [\fIargs\fP ...] | |
330 ksu proceeds exactly the same as if it was invoked without the | |
331 \fB\-e\fP option, except instead of executing the target shell, ksu | |
332 executes the specified command. Example of usage: | |
333 .INDENT 7.0 | |
334 .INDENT 3.5 | |
335 .sp | |
336 .nf | |
337 .ft C | |
338 ksu bob \-e ls \-lag | |
339 .ft P | |
340 .fi | |
341 .UNINDENT | |
342 .UNINDENT | |
343 .sp | |
344 The authorization algorithm for \fB\-e\fP is as follows: | |
345 .sp | |
346 If the source user is root or source user == target user, no | |
347 authorization takes place and the command is executed. If source | |
348 user id != 0, and \fB~target_user/.k5users\fP file does not exist, | |
349 authorization fails. Otherwise, \fB~target_user/.k5users\fP file | |
350 must have an appropriate entry for target principal to get | |
351 authorized. | |
352 .sp | |
353 The .k5users file format: | |
354 .sp | |
355 A single principal entry on each line that may be followed by a | |
356 list of commands that the principal is authorized to execute. A | |
357 principal name followed by a \fB*\fP means that the user is | |
358 authorized to execute any command. Thus, in the following | |
359 example: | |
360 .INDENT 7.0 | |
361 .INDENT 3.5 | |
362 .sp | |
363 .nf | |
364 .ft C | |
365 jqpublic@USC.EDU ls mail /local/kerberos/klist | |
366 jqpublic/secure@USC.EDU * | |
367 jqpublic/admin@USC.EDU | |
368 .ft P | |
369 .fi | |
370 .UNINDENT | |
371 .UNINDENT | |
372 .sp | |
373 \fBjqpublic@USC.EDU\fP is only authorized to execute \fBls\fP, | |
374 \fBmail\fP and \fBklist\fP commands. \fBjqpublic/secure@USC.EDU\fP is | |
375 authorized to execute any command. \fBjqpublic/admin@USC.EDU\fP is | |
376 not authorized to execute any command. Note, that | |
377 \fBjqpublic/admin@USC.EDU\fP is authorized to execute the target | |
378 shell (regular ksu, without the \fB\-e\fP option) but | |
379 \fBjqpublic@USC.EDU\fP is not. | |
380 .sp | |
381 The commands listed after the principal name must be either a full | |
382 path names or just the program name. In the second case, | |
383 \fBCMD_PATH\fP specifying the location of authorized programs must | |
384 be defined at the compilation time of ksu. Which command gets | |
385 executed? | |
386 .sp | |
387 If the source user is root or the target user is the source user | |
388 or the user is authorized to execute any command (\fB*\fP entry) | |
389 then command can be either a full or a relative path leading to | |
390 the target program. Otherwise, the user must specify either a | |
391 full path or just the program name. | |
392 .TP | |
393 \fB\-a\fP \fIargs\fP | |
394 Specify arguments to be passed to the target shell. Note that all | |
395 flags and parameters following \-a will be passed to the shell, | |
396 thus all options intended for ksu must precede \fB\-a\fP\&. | |
397 .sp | |
398 The \fB\-a\fP option can be used to simulate the \fB\-e\fP option if | |
399 used as follows: | |
400 .INDENT 7.0 | |
401 .INDENT 3.5 | |
402 .sp | |
403 .nf | |
404 .ft C | |
405 \-a \-c [command [arguments]]. | |
406 .ft P | |
407 .fi | |
408 .UNINDENT | |
409 .UNINDENT | |
410 .sp | |
411 \fB\-c\fP is interpreted by the c\-shell to execute the command. | |
412 .UNINDENT | |
413 .SH INSTALLATION INSTRUCTIONS | |
414 .sp | |
415 ksu can be compiled with the following four flags: | |
416 .INDENT 0.0 | |
417 .TP | |
418 \fBGET_TGT_VIA_PASSWD\fP | |
419 In case no appropriate tickets are found in the source cache, the | |
420 user will be prompted for a Kerberos password. The password is | |
421 then used to get a ticket granting ticket from the Kerberos | |
422 server. The danger of configuring ksu with this macro is if the | |
423 source user is logged in remotely and does not have a secure | |
424 channel, the password may get exposed. | |
425 .TP | |
426 \fBPRINC_LOOK_AHEAD\fP | |
427 During the resolution of the default principal name, | |
428 \fBPRINC_LOOK_AHEAD\fP enables ksu to find principal names in | |
429 the .k5users file as described in the OPTIONS section | |
430 (see \fB\-n\fP option). | |
431 .TP | |
432 \fBCMD_PATH\fP | |
433 Specifies a list of directories containing programs that users are | |
434 authorized to execute (via .k5users file). | |
435 .TP | |
436 \fBHAVE_GETUSERSHELL\fP | |
437 If the source user is non\-root, ksu insists that the target user\(aqs | |
438 shell to be invoked is a "legal shell". \fIgetusershell(3)\fP is | |
439 called to obtain the names of "legal shells". Note that the | |
440 target user\(aqs shell is obtained from the passwd file. | |
441 .UNINDENT | |
442 .sp | |
443 Sample configuration: | |
444 .INDENT 0.0 | |
445 .INDENT 3.5 | |
446 .sp | |
447 .nf | |
448 .ft C | |
449 KSU_OPTS = \-DGET_TGT_VIA_PASSWD \-DPRINC_LOOK_AHEAD \-DCMD_PATH=\(aq"/bin /usr/ucb /local/bin" | |
450 .ft P | |
451 .fi | |
452 .UNINDENT | |
453 .UNINDENT | |
454 .sp | |
455 ksu should be owned by root and have the set user id bit turned on. | |
456 .sp | |
457 ksu attempts to get a ticket for the end server just as Kerberized | |
458 telnet and rlogin. Thus, there must be an entry for the server in the | |
459 Kerberos database (e.g., \fBhost/nii.isi.edu@ISI.EDU\fP). The keytab | |
460 file must be in an appropriate location. | |
461 .SH SIDE EFFECTS | |
462 .sp | |
463 ksu deletes all expired tickets from the source cache. | |
464 .SH AUTHOR OF KSU | |
465 .sp | |
466 GENNADY (ARI) MEDVINSKY | |
467 .SH ENVIRONMENT | |
468 .sp | |
469 See kerberos(7) for a description of Kerberos environment | |
470 variables. | |
471 .SH SEE ALSO | |
472 .sp | |
473 kerberos(7), kinit(1) | |
474 .SH AUTHOR | |
475 MIT | |
476 .SH COPYRIGHT | |
477 1985-2022, MIT | |
478 .\" Generated by docutils manpage writer. | |
479 . |