summaryrefslogtreecommitdiffstats
path: root/src/clients/ksu/ksu.1
diff options
context:
space:
mode:
Diffstat (limited to 'src/clients/ksu/ksu.1')
-rw-r--r--src/clients/ksu/ksu.1480
1 files changed, 0 insertions, 480 deletions
diff --git a/src/clients/ksu/ksu.1 b/src/clients/ksu/ksu.1
deleted file mode 100644
index eb5e61dc60..0000000000
--- a/src/clients/ksu/ksu.1
+++ /dev/null
@@ -1,480 +0,0 @@
-.\" Copyright (c) 1994 by the University of Southern California
-.\"
-.\" EXPORT OF THIS SOFTWARE from the United States of America may
-.\" require a specific license from the United States Government.
-.\" It is the responsibility of any person or organization contemplating
-.\" export to obtain such a license before exporting.
-.\"
-.\" WITHIN THAT CONSTRAINT, permission to copy, modify, and distribute
-.\" this software and its documentation in source and binary forms is
-.\" hereby granted, provided that any documentation or other materials
-.\" related to such distribution or use acknowledge that the software
-.\" was developed by the University of Southern California.
-.\"
-.\" DISCLAIMER OF WARRANTY. THIS SOFTWARE IS PROVIDED "AS IS". The
-.\" University of Southern California MAKES NO REPRESENTATIONS OR
-.\" WARRANTIES, EXPRESS OR IMPLIED. By way of example, but not
-.\" limitation, the University of Southern California MAKES NO
-.\" REPRESENTATIONS OR WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY
-.\" PARTICULAR PURPOSE. The University of Southern
-.\" California shall not be held liable for any liability nor for any
-.\" direct, indirect, or consequential damages with respect to any
-.\" claim by the user or distributor of the ksu software.
-.\"
-.\" KSU was writen by: Ari Medvinsky, ari@isi.edu
-.TH KSU 1 "Kerberos Version 5.3"
-.SH NAME
-ksu \- Kerberized super-user
-.SH SYNOPSIS
-.B ksu
-[
-.I target_user
-] [
-.B \-n
-.I target_principal_name
-] [
-.B \-c
-.I source_cache_name
-] [
-.B \-C
-.I target_cache_name
-] [
-.B \-k
-] [
-.B \-D
-] [
-.B \-r
-.I time
-] [
-.B \-pf
-] [
-.B \-l
-.I lifetime
-] [
-.B \-zZ
-] [
-.B \-e
-.I command
-[
-.I args ...
-] ] [
-.B \-a
-[
-.I args ...
-] ]
-.br
-.SH REQUIREMENTS
-Must have Kerberos version 5 installed, to compile ksu.
-Must have a Kerberos version 5 server running to use ksu.
-.br
-.SH DESCRIPTION
-.I ksu
-is a Kerberized version of the su program that has two missions:
-one is to securely change the real and effective user ID to that
-of the target user, the other is to create a new security context.
-For the sake of clarity all references to, and attributes of
-the user invoking the program will start with 'source' (e.g.
-source user, source cache, etc.). Likewise all references
-to and attributes of the target account, will start with 'target'.
-.br
-.SH AUTHENTICATION
-To fulfill the first mission, ksu operates in two phases: authentication
-and authorization. Resolving the target principal name is the
-first step in authentication. The user
-can either specify his principal name with the
-.B \-n
-option
-(e.g.
-.B \-n
-jqpublic@USC.EDU) or a default principal name will be assigned
-using a heuristic described in the OPTIONS section (see
-.B \-n
-option).
-The target user name must be the first argument to ksu, if not specified
-root is the default. If the source user is root no authentication
-or authorization takes place. Otherwise, ksu looks for an appropriate
-Kerberos ticket in the source cache.
-.PP
-The ticket can either be for
-the end-server
-or a ticket granting ticket (TGT) for the target principal's realm. If the
-ticket for the end server is already in the cache, it's, decrypted and
-verified. If it's not in the cache but the TGT is, TGT is used to
-obtain the ticket for the end-server. The end-server ticket is then
-verified. If neither ticket is in the cache, but ksu is compiled
-with the GET_TGT_VIA_PASSWD define, the user will be prompted
-for a Kerberos password which will then be used to get a TGT.
-If the user is logged in remotely and
-does not have a secure channel, the password may be exposed.
-If neither ticket is in the cache and GET_TGT_VIA_PASSWD is not defined,
-authentication fails.
-.br
-.SH AUTHORIZATION
-This section describes authorization of the source user when ksu
-is invoked without the
-.B \-e
-option.
-For a description of the
-.B \-e
-option, see the OPTIONS section.
-.PP
-Upon successful authentication, ksu checks whether the target principal
-is authorized to access the target account.
-In the target user's home directory, ksu attempts to access
-two authorization files: .k5login and .k5users. In the .k5login
-file each line contains the name of a
-principal that is authorized to access the account.
-.TP 12
-For example:
-jqpublic@USC.EDU
-.br
-jqpublic/secure@USC.EDU
-.br
-jqpublic/admin@USC.EDU
-.PP
-The format of .k5users is the same, accept the
-principal name may be followed by a list of commands that
-the principal is authorized to execute. (see the
-.B \-e
-option in the OPTIONS section for details).
-.PP
-Thus if the target principal
-name is found in the .k5login file the source user is authorized to access
-the target account. Otherwise ksu looks in the .k5users file.
-If the target principal name is found without any trailing commands
-or followed only by '*' then the source user is authorized.
-If either .k5login or .k5users exist but an appropriate entry for the target
-principal does not exist then access is denied. If neither
-file exists then a database of local principal names is
-consulted.(the name of this database is defined in Kerberos osconf.h
-file by DEFAULT_LNAME_FILENAME macro). If the target principal name is
-found then the source user is authorized to access the account.
-If it's not found, and ksu was compiled with LOCAL_REALM macro undefined,
-authorization fails. If LOCAL_REALM is defined, and it matches
-the target principal's realm and the first component of the
-target principal name translates to the target account name then
-authorization is successful. Otherwise, authorization fails.
-.br
-.SH EXECUTION OF THE TARGET SHELL
-Upon successful authentication and authorization, ksu
-proceeds in a similar fashion to su. The environment
-is unmodified with the exception of USER, HOME and SHELL variables.
-If the target user is not root, USER gets set to the target user
-name. Otherwise USER remains unchanged. Both HOME and SHELL are
-set to the target login's default values.
-In addition, the environment variable KRB5CCNAME gets set to the
-name of the target cache.
-The real and effective user ID are changed to that of the
-target user. The target user's shell is then invoked
-(the shell name is specified in the password file).
-Upon termination of the shell, ksu deletes the target cache (unless
-ksu is invoked with
-.B \-k
- or '
-.B \-C .' options).
-This is implemented by first doing a fork and then an exec, instead
-of just exec, as done by su.
-.br
-.SH CREATING A NEW SECURITY CONTEXT
-.PP
-Ksu can be used to create a new security context for the
-target program (either the target
-shell, or command specified via the -e option).
-The target program inherits a set
-of credentials from the source user.
-By default, this set includes all of the credentials
-in the source cache plus any
-additional credentials obtained during authentication.
-The source user is able to limit the credentials in this set
-by using -z or -Z option.
--z restricts the copy of tickets from the source cache
-to the target cache to only the tickets where client ==
-the target principal name. The -Z option
-provides the target user with a fresh target cache
-(no creds in the cache). Note that for security reasons,
-when the source user is root and target user is non-root,
--z option is the default mode of operation. In this
-case if -n is specified and no credentials can be copied
-to the target cache, the source user is prompted for
-a Kerberos password (unless -Z specified or GET_TGT_VIA_PASSWD is
-undefined). If successful, a TGT is obtained
-from the Kerberos server and stored in the target cache.
-Otherwise, ksu continues in a normal mode of operation, but
-the destination cache will remain empty.
-.PP
-\fISide Note:\fP during authentication, only the tickets that could be
-obtained without providing a password are cached in
-in the source cache.
-.SH OPTIONS
-.TP 10
-\fB\-n \fItarget_principal_name
-Specify a Kerberos target principal name.
-Used in authentication and authorization
-phases of ksu.
-
-If ksu is invoked without
-.B \-n,
-a default principal name is
-assigned via the following heuristic:
-
-\fICase 1:\fP source user is non-root.
-.br
-If neither ~/target_user/.k5users
-nor ~/target_user/.k5login exist then
-the default principal name is
-target_user_login_name@local_realm. Otherwise,
-starting with the first principal listed below,
-ksu checks if the principal is authorized
-to access the target account and whether
-there is a legitimate ticket for that principal
-in the source cache. If both conditions are met
-that principal becomes the default target principal,
-otherwise go to the next principal.
-
-a) default principal of the source cache
-.br
-b) target_user@local_realm
-.br
-c) source_user@local_realm
-
-If a-c fails try any principal for which there is
-a ticket in the source cache and that is
-authorized to access the target account.
-If that fails select the first principal that
-is authorized to access the target account from
-the following list:
-
-a) default principal of the source cache
-.br
-b) if ksu is configured with PRINC_LOOK_AHEAD
-.br
- turned on, the principal with the same
-.br
- realm name as a) and has the first part
-.br
- of the principal name equal to prefix of a).
-.br
-c) target_user@local_realm
-.br
-d) source_user@local_realm
-
-If all fails select the first authorized principal
-(from .k5login, .k5users file).
-
-\fICase 2:\fP source user is root.
-.br
-If the target user is non-root then the
-default principal name is target_user@local_realm.
-Else, if the source cache exists the default
-principal name is set to the default principal
-of the source cache. If the source cache does not
-exist, default principal name is set to
-root@local_realm.
-.TP 10
-\fB\-c \fIsource_cache_name
-Specify source cache name (e.g.
-.B \-c
-FILE:/tmp/my_cache).
-If
-.B \-c
-option is not used then the
-name is obtained from KRB5CCNAME environment variable.
-If KRB5CCNAME is not defined the source cache name
-is set to krb5cc_<source uid>.
-.TP 10
-\fB\-C \fItarget_cache_name
-Specify the target cache name (e.g.
-.B \-C
-FILE:/tmp/target_cache).
-If '.' is specified (e.g. ksu
-\-C .) ksu uses the source
-cache and does not create a new target cache. Note:
-this case requires both source and target user
-to have read and write permissions for the source cache.
-If
-.B \-C
-option is not used, the default target cache name is
-set to krb5cc_<target uid>.(gen_sym()),
-where gen_sim generates a new number such that
-the resulting cache does not already exist.
-.br
-For example: krb5cc_1984.2
-.TP 10
-\fB\-k
-Do not delete the target cache upon termination of the
-target shell or a command (
-.B \-e
-command).
-Without
-.B \-k,
-ksu deletes the target cache upon termination
-of the source cache unless the '-C .' option was used.
-.TP 10
-\fB\-D
-turn on debug mode.
-.TP 10
-\fITicket granting ticket options: -l lifetime -r time -pf\fP
-The ticket granting ticket options only apply to the
-case where there are no appropriate tickets in
-the cache to authenticate the source user. In this case
-if ksu is configured to prompt users for a
-Kerberos password (GET_TGT_VIA_PASSWD is defined),
-the ticket granting
-ticket options that are specified will be used
-when getting a ticket granting ticket from the Kerberos
-server.
-.TP 10
-\fB\-l \fIlifetime
-option specifies the lifetime (in hours) to be
-requested for the ticket; if this option is not
-specified, the default ticket lifetime
-(configured by each site) is used instead.
-.TP 10
-\fB\-r \fItime
-option specifies that the RENEWABLE option
-should be requested for the ticket, and specifies
-(in hours) the desired total lifetime of the ticket.
-.TP 10
-\fB\-p
-option specifies that the PROXIABLE option should be
-requested for the ticket.
-.TP 10
-\fB\-f
-option specifies that the FORWARDABLE option should
-be requested for the ticket.
-.TP 10
-\fB\-z
-restrict the copy of tickets from the source cache
-to the target cache to only the tickets where client ==
-the target principal name. Use the
-.B \-n
-option
-if you want the tickets for other then the default
-principal. Note that the
-.B \-z
-option is mutually
-exclusive with '-C .' and -Z options.
-.TP 10
-\fB\-Z
-Don't copy any tickets from the source cache to the
-target cache. Just create a fresh target cache,
-where the default principal name of the cache is
-initialized to the target principal name. Note that
-.B \-Z
-option is mutually
-exclusive with '-C .' and -z options.
-.TP 10
-\fB\-e \fIcommand [args ...]
-ksu proceeds exactly the same as if it was invoked without the
-.B \-e
-option,
-except instead of executing the target shell, ksu executes the
-specified command (Example of usage: ksu bob
-.B \-e
-ls
-.B \-lag).
-
-\fIThe authorization algorithm for -e is as follows:\fP
-
-If the source user is root, no authorization takes place and
-the command is executed. If source user id != 0, and .k5users
-file does not exist, authorization fails.
-Otherwise, .k5users file must have an
-appropriate entry for target principal
-to get authorized.
-
-\fIThe .k5users file format:\fP
-
-A single principal entry on each line
-that may be followed by a list of commands that
-the principal is authorized to execute.
-A principal name followed by a '*' means
-that the user is authorized to execute
-any command. Thus, in the following example:
-
-jqpublic@USC.EDU ls mail /local/kerberos/klist
-.br
-jqpublic/secure@USC.EDU *
-.br
-jqpublic/admin@USC.EDU
-
-jqpublic@USC.EDU is only authorized to execute ls, mail
-and klist commands. jqpublic/secure@USC.EDU is authorized
-to execute any command. jqpublic/admin@USC.EDU is not
-authorized to execute any command. Note, that
-jqpublic/admin@USC.EDU is authorized to execute
-the target shell (regular ksu, without the
-.B \-e
-option) but jqpublic@USC.EDU is not.
-
-The commands listed after the principal name must
-be either a full path names or just the program name.
-In the second case, CMD_PATH specifying the location
-of authorized programs, must be defined at the
-compilation time of ksu.
-
-\fIWhich command gets executed ?\fP
-
-If the source user is root or the user
-is authorized to execute any command ('*' entry)
-then command can be either a full or a relative
-path leading to the target program.
-Otherwise, the user must specify either a full
-path or just the program name.
-.TP 10
-\fB\-a \fIargs
-specify arguments to be passed to the target shell.
-Note: that all flags and parameters following -a
-will be passed to the shell, thus all options
-intended for ksu must precede
-.B \-a.
-.B \-a
-option can be used to simulate the
-.B \-e
-option if used as follows:
-.B \-a
-.B \-c
-[command [arguments]].
-.B \-c
-is interpreted by the c-shell to execute the command.
-.PP
-.SH INSTALLATION INSTRUCTIONS
-ksu can be compiled with the following flags (see the makefile):
-.TP 10
-\fILOCAL_REALM\fP
-possible values: the name of the local realm
-or '.' in which case krb.conf is used to get
-up the local realm name.
-.TP 10
-\fIGET_TGT_VIA_PASSWD\fP
-in case no appropriate tickets are found in the source
-cache, the user will be prompted for a Kerberos
-password. The password is then used to get a
-ticket granting ticket from the Kerberos server.
-The danger of configuring ksu with this macro is
-if the source user is loged in remotely and does not
-have a secure channel, the password may get exposed.
-.TP 10
-\fIPRINC_LOOK_AHEAD\fP
-during the resolution of the default principal name,
-PRINC_LOOK_AHEAD enables ksu to find principal names
-in the .k5users file that have a common prefix with
-the default principal of the source cache.
-.TP 10
-\fICMD_PATH\fP
-specifies a list of directories containing programs
-that users are authorized to execute (via .k5users file).
-.TP 10
-SAMPLE CONFIGURATION:
-KSU_OPTS = -DLOCAL_REALM='"ISI.EDU"' -DGET_TGT_VIA_PASSWD
--DPRINC_LOOK_AHEAD -DCMD_PATH='"/bin /usr/ucb /local/bin"
-.TP 10
-PERMISSIONS FOR KSU
-ksu should be owned by root and have the set user id bit turned on.
-.TP 10
-END-SERVER ENTRY
-ksu attempts to get a ticket for the end server just as
-Kerberized telnet and rlogin. Thus, there must be
-an entry for the server in the Kerberos database
-(e.g. host/nii.isi.edu@ISI.EDU). k5srvtab must be in
-an appropriate location.