scrub twiki metadata in the top directory
[openafs-wiki.git] / EnablingAFSLoginonHP-UXSystems.mdwn
1 At this point you incorporate AFS into the operating system's Pluggable Authentication Module (PAM) scheme. PAM integrates all authentication mechanisms on the machine, including login, to provide the security infrastructure for authenticated access to and from the machine.
2
3 Explaining PAM is beyond the scope of this document. It is assumed that you understand the syntax and meanings of settings in the PAM configuration file (for example, how the other entry works, the effect of marking an entry as required, optional, or sufficient, and so on).
4
5 The following instructions explain how to alter the entries in the PAM configuration file for each service for which you wish to use AFS authentication. Other configurations possibly also work, but the instructions specify the recommended and tested configuration. Note: The instructions specify that you mark each entry as optional. However, marking some modules as optional can mean that they grant access to the corresponding service even when the user does not meet all of the module's requirements. In some operating system revisions, for example, if you mark as optional the module that controls login via a dial-up connection, it allows users to login without providing a password. See the IBM AFS Release Notes for a discussion of any limitations that apply to this operating system.
6
7 Also, with some operating system versions you must install patches for PAM to interact correctly with certain authentication programs. For details, see the IBM AFS Release Notes.
8
9 The recommended AFS-related entries in the PAM configuration file make use of one or more of the following three attributes.
10
11     try_first_pass
12
13 This is a standard PAM attribute that can be included on entries after the first one for a service; it directs the module to use the password that was provided to the first module. For the AFS module, it means that AFS authentication succeeds if the password provided to the module listed first is the user's correct AFS password. For further discussion of this attribute and its alternatives, see the operating system's PAM documentation.
14
15     ignore_root
16
17 This attribute, specific to the AFS PAM module, directs it to ignore not only the local superuser root, but also any user with UID 0 (zero).
18
19     setenv_password_expires
20
21 This attribute, specific to the AFS PAM module, sets the environment variable PASSWORD\_EXPIRES to the expiration date of the user's AFS password, which is recorded in the Authentication Database.
22
23 Perform the following steps to enable AFS login.
24
25 1. Mount the AFS CD-ROM for HP-UX on the /cdrom directory, if it is not already. Then change directory as indicated.
26
27        # cd /usr/lib/security
28
29 1. Copy the AFS authentication library file to the /usr/lib/security directory. Then create a symbolic link to it whose name does not mention the version. Omitting the version eliminates the need to edit the PAM configuration file if you later update the library file.
30
31 If you use the AFS Authentication Server (kaserver process) in the cell:
32
33        # cp /cdrom/hp_ux110/lib/pam_afs.so.1  .
34
35        # ln -s  pam_afs.so.1  pam_afs.so
36
37 If you use a Kerberos implementation of AFS authentication:
38
39        # cp /cdrom/hp_ux110/lib/pam_afs.krb.so.1   .
40
41        # ln -s pam_afs.krb.so.1 pam_afs.so
42
43 1. Edit the Authentication management section of the HP-UX PAM configuration file, /etc/pam.conf by convention. The entries in this section have the value auth in their second field.
44
45 First edit the standard entries, which refer to the HP-UX PAM module (usually, the file /usr/lib/security/libpam\_unix.1) in their fourth field. For each service for which you want to use AFS authentication, edit the third field of its entry to read optional. The pam.conf file in the HP-UX distribution usually includes standard entries for the login and ftp services, for instance.
46
47 If there are services for which you want to use AFS authentication, but for which the pam.conf file does not already include a standard entry, you must create that entry and place the value optional in its third field. For instance, the HP-UX pam.conf file does not usually include standard entries for the remsh or telnet services.
48
49 Then create an AFS-related entry for each service, placing it immediately below the standard entry. The following example shows what the Authentication Management section looks like after you have you edited or created entries for the services mentioned previously. Note that the example AFS entries appear on two lines only for legibility.
50
51        login   auth  optional  /usr/lib/security/libpam_unix.1
52        login   auth  optional  /usr/lib/security/pam_afs.so      \
53              try_first_pass  ignore_root  setenv_password_expires
54        ftp     auth  optional  /usr/lib/security/libpam_unix.1
55        ftp     auth  optional  /usr/lib/security/pam_afs.so      \
56              try_first_pass  ignore_root
57        remsh   auth  optional  /usr/lib/security/libpam_unix.1
58        remsh   auth  optional  /usr/lib/security/pam_afs.so      \
59              try_first_pass  ignore_root
60        telnet  auth  optional  /usr/lib/security/libpam_unix.1
61        telnet  auth  optional  /usr/lib/security/pam_afs.so      \
62              try_first_pass  ignore_root  setenv_password_expires
63
64 1. If you use the Common Desktop Environment (CDE) on the machine and want users to obtain an AFS token as they log in, also add or edit the following four entries in the Authentication management section. Note that the AFS-related entries appear on two lines here only for legibility.
65
66        dtlogin   auth  optional  /usr/lib/security/libpam_unix.1
67        dtlogin   auth  optional  /usr/lib/security/pam_afs.so     \
68              try_first_pass  ignore_root
69        dtaction  auth  optional  /usr/lib/security/libpam_unix.1
70        dtaction  auth  optional  /usr/lib/security/pam_afs.so     \
71              try_first_pass  ignore_root