]> granicus.if.org Git - linux-pam/blob - modules/pam_env/README
Relevant BUGIDs:
[linux-pam] / modules / pam_env / README
1 # $Date$
2 # $Author$
3 # $Id$
4 #
5 # This is the configuration file for pam_env, a PAM module to load in 
6 # a configurable list of environment variables for a 
7
8 # The original idea for this came from Andrew G. Morgan ...
9 #<quote>
10 #   Mmm. Perhaps you might like to write a pam_env module that reads a
11 #   default environment from a file? I can see that as REALLY
12 #   useful... Note it would be an "auth" module that returns PAM_IGNORE
13 #   for the auth part and sets the environment returning PAM_SUCCESS in
14 #   the setcred function...
15 #</quote>
16 #
17 # What I wanted was the REMOTEHOST variable set, purely for selfish
18 # reasons, and AGM didn't want it added to the SimpleApps login
19 # program (which is where I added the patch). So, my first concern is
20 # that variable, from there there are numerous others that might/would
21 # be useful to be set: NNTPSERVER, LESS, PATH, PAGER, MANPAGER .....
22 #
23 # Of course, these are a different kind of variable than REMOTEHOST in
24 # that they are things that are likely to be configured by
25 # administrators rather than set by logging in, how to treat them both
26 # in the same config file?
27 #
28 # Here is my idea: 
29 #
30 # Each line starts with the variable name, there are then two possible
31 # options for each variable DEFAULT and OVERRIDE. 
32 # DEFAULT allows and administrator to set the value of the
33 # variable  to some default value, if none is supplied then the empty
34 # string is assumed. The OVERRIDE option tells pam_env that it should
35 # enter in its value (overriding the default value) if there is one
36 # to use. OVERRIDE is not used, "" is assumed and no override will be
37 # done. 
38 #
39 # VARIABLE   [DEFAULT=[value]]  [OVERRIDE=[value]]
40 #
41 # (Possibly non-existent) environment variables may be used in values
42 # using the ${string} syntax and (possibly non-existent) PAM_ITEMs may
43 # be used in values using the @{string} syntax. Both the $ and @
44 # characters can be backslash escaped to be used as literal values
45 # values can be delimited with "", escaped " not supported.
46 #
47 #
48 # First, some special variables
49 #
50 # Set the REMOTEHOST variable for any hosts that are remote, default
51 # to "localhost" rather than not being set at all
52 REMOTEHOST      DEFAULT=localhost OVERRIDE=@{PAM_RHOST}
53 #
54 # Set the DISPLAY variable if it seems reasonable 
55 DISPLAY         DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}
56 #
57 #
58 #  Now some simple variables
59 #
60 PAGER           DEFAULT=less
61 MANPAGER        DEFAULT=less
62 LESS            DEFAULT="M q e h15 z23 b80"
63 NNTPSERVER      DEFAULT=localhost
64 PATH            DEFAULT=${HOME}/bin:/usr/local/bin:/bin\
65 :/usr/bin:/usr/local/bin/X11:/usr/bin/X11
66 #
67 # silly examples of escaped variables, just to show how they work.
68 #
69 DOLLAR          DEFAULT=\$
70 DOLLARDOLLAR    DEFAULT=        OVERRIDE=\$${DOLLAR}
71 DOLLARPLUS      DEFAULT=\${REMOTEHOST}${REMOTEHOST}
72 ATSIGN          DEFAULT=""      OVERRIDE=\@