diff options
author | Darren Tucker <dtucker@zip.com.au> | 2003-09-16 11:52:19 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2003-09-16 11:52:19 +1000 |
commit | e1a790d0d165ff70acb502fbfc72bd55cd2b8fb1 (patch) | |
tree | 8d946f4cc2d9b550dfae1543dbc3b817f041e03a /configure.ac | |
parent | 7b6cb5c5ef9ddd12e7cb695357209f1c08a57fc5 (diff) |
- (dtucker) [acconfig.h configure.ac defines.h session.c] Bug #252: Retrieve
PATH (or SUPATH) and UMASK from /etc/default/login on platforms that have it
(eg Solaris, Reliant Unix). Patch from Robert.Dahlem at siemens.com. ok djm@
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 45 |
1 files changed, 35 insertions, 10 deletions
diff --git a/configure.ac b/configure.ac index 3d5389cce..ab630115b 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -1,4 +1,4 @@ | |||
1 | # $Id: configure.ac,v 1.153 2003/09/13 01:15:15 tim Exp $ | 1 | # $Id: configure.ac,v 1.154 2003/09/16 01:52:19 dtucker Exp $ |
2 | 2 | ||
3 | AC_INIT | 3 | AC_INIT |
4 | AC_CONFIG_SRCDIR([ssh.c]) | 4 | AC_CONFIG_SRCDIR([ssh.c]) |
@@ -250,6 +250,7 @@ mips-sony-bsd|mips-sony-newsos4) | |||
250 | AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") | 250 | AC_DEFINE(LOCKED_PASSWD_STRING, "*LK*") |
251 | # Pushing STREAMS modules will cause sshd to acquire a controlling tty. | 251 | # Pushing STREAMS modules will cause sshd to acquire a controlling tty. |
252 | AC_DEFINE(SSHD_ACQUIRES_CTTY) | 252 | AC_DEFINE(SSHD_ACQUIRES_CTTY) |
253 | external_path_file=/etc/default/login | ||
253 | # hardwire lastlog location (can't detect it on some versions) | 254 | # hardwire lastlog location (can't detect it on some versions) |
254 | conf_lastlog_location="/var/adm/lastlog" | 255 | conf_lastlog_location="/var/adm/lastlog" |
255 | AC_MSG_CHECKING(for obsolete utmp and wtmp in solaris2.x) | 256 | AC_MSG_CHECKING(for obsolete utmp and wtmp in solaris2.x) |
@@ -286,6 +287,7 @@ mips-sony-bsd|mips-sony-newsos4) | |||
286 | AC_DEFINE(USE_PIPES) | 287 | AC_DEFINE(USE_PIPES) |
287 | AC_DEFINE(IP_TOS_IS_BROKEN) | 288 | AC_DEFINE(IP_TOS_IS_BROKEN) |
288 | AC_DEFINE(SSHD_ACQUIRES_CTTY) | 289 | AC_DEFINE(SSHD_ACQUIRES_CTTY) |
290 | external_path_file=/etc/default/login | ||
289 | # /usr/ucblib/libucb.a no longer needed on ReliantUNIX | 291 | # /usr/ucblib/libucb.a no longer needed on ReliantUNIX |
290 | # Attention: always take care to bind libsocket and libnsl before libc, | 292 | # Attention: always take care to bind libsocket and libnsl before libc, |
291 | # otherwise you will find lots of "SIOCGPGRP errno 22" on syslog | 293 | # otherwise you will find lots of "SIOCGPGRP errno 22" on syslog |
@@ -2180,30 +2182,48 @@ else | |||
2180 | ) | 2182 | ) |
2181 | fi | 2183 | fi |
2182 | 2184 | ||
2185 | # check for /etc/default/login and use it if present. | ||
2186 | AC_CHECK_FILE("/etc/default/login", [ external_path_file=/etc/default/login ]) | ||
2187 | |||
2188 | if test "x$external_path_file" = "x/etc/default/login"; then | ||
2189 | AC_DEFINE(HAVE_ETC_DEFAULT_LOGIN) | ||
2190 | fi | ||
2191 | |||
2183 | dnl BSD systems use /etc/login.conf so --with-default-path= has no effect | 2192 | dnl BSD systems use /etc/login.conf so --with-default-path= has no effect |
2184 | if test $ac_cv_func_login_getcapbool = "yes" -a \ | 2193 | if test $ac_cv_func_login_getcapbool = "yes" -a \ |
2185 | $ac_cv_header_login_cap_h = "yes" ; then | 2194 | $ac_cv_header_login_cap_h = "yes" ; then |
2186 | USES_LOGIN_CONF=yes | 2195 | external_path_file=/etc/login.conf |
2187 | fi | 2196 | fi |
2197 | |||
2188 | # Whether to mess with the default path | 2198 | # Whether to mess with the default path |
2189 | SERVER_PATH_MSG="(default)" | 2199 | SERVER_PATH_MSG="(default)" |
2190 | AC_ARG_WITH(default-path, | 2200 | AC_ARG_WITH(default-path, |
2191 | [ --with-default-path= Specify default \$PATH environment for server], | 2201 | [ --with-default-path= Specify default \$PATH environment for server], |
2192 | [ | 2202 | [ |
2193 | if test "$USES_LOGIN_CONF" = "yes" ; then | 2203 | if test "x$external_path_file" = "x/etc/login.conf" ; then |
2194 | AC_MSG_WARN([ | 2204 | AC_MSG_WARN([ |
2195 | --with-default-path=PATH has no effect on this system. | 2205 | --with-default-path=PATH has no effect on this system. |
2196 | Edit /etc/login.conf instead.]) | 2206 | Edit /etc/login.conf instead.]) |
2197 | elif test "x$withval" != "xno" ; then | 2207 | elif test "x$withval" != "xno" ; then |
2208 | if ! test -z "$external_path_file" ; then | ||
2209 | AC_MSG_WARN([ | ||
2210 | --with-default-path=PATH will only be used if PATH is not defined in | ||
2211 | $external_path_file .]) | ||
2212 | fi | ||
2198 | user_path="$withval" | 2213 | user_path="$withval" |
2199 | SERVER_PATH_MSG="$withval" | 2214 | SERVER_PATH_MSG="$withval" |
2200 | fi | 2215 | fi |
2201 | ], | 2216 | ], |
2202 | [ if test "$USES_LOGIN_CONF" = "yes" ; then | 2217 | [ if test "x$external_path_file" = "x/etc/login.conf" ; then |
2203 | AC_MSG_WARN([Make sure the path to scp is in /etc/login.conf]) | 2218 | AC_MSG_WARN([Make sure the path to scp is in /etc/login.conf]) |
2204 | else | 2219 | else |
2205 | AC_TRY_RUN( | 2220 | if ! test -z "$external_path_file" ; then |
2206 | [ | 2221 | AC_MSG_WARN([ |
2222 | If PATH is defined in $external_path_file, ensure the path to scp is included, | ||
2223 | otherwise scp will not work.]) | ||
2224 | fi | ||
2225 | AC_TRY_RUN( | ||
2226 | [ | ||
2207 | /* find out what STDPATH is */ | 2227 | /* find out what STDPATH is */ |
2208 | #include <stdio.h> | 2228 | #include <stdio.h> |
2209 | #ifdef HAVE_PATHS_H | 2229 | #ifdef HAVE_PATHS_H |
@@ -2257,7 +2277,7 @@ main() | |||
2257 | fi | 2277 | fi |
2258 | fi ] | 2278 | fi ] |
2259 | ) | 2279 | ) |
2260 | if test "$USES_LOGIN_CONF" != "yes" ; then | 2280 | if test "x$external_path_file" != "x/etc/login.conf" ; then |
2261 | AC_DEFINE_UNQUOTED(USER_PATH, "$user_path") | 2281 | AC_DEFINE_UNQUOTED(USER_PATH, "$user_path") |
2262 | AC_SUBST(user_path) | 2282 | AC_SUBST(user_path) |
2263 | fi | 2283 | fi |
@@ -2627,10 +2647,15 @@ echo " Askpass program: $E" | |||
2627 | echo " Manual pages: $F" | 2647 | echo " Manual pages: $F" |
2628 | echo " PID file: $G" | 2648 | echo " PID file: $G" |
2629 | echo " Privilege separation chroot path: $H" | 2649 | echo " Privilege separation chroot path: $H" |
2630 | if test "$USES_LOGIN_CONF" = "yes" ; then | 2650 | if test "x$external_path_file" = "x/etc/login.conf" ; then |
2631 | echo " At runtime, sshd will use the path defined in /etc/login.conf" | 2651 | echo " At runtime, sshd will use the path defined in $external_path_file" |
2652 | echo " Make sure the path to scp is present, otherwise scp will not work" | ||
2632 | else | 2653 | else |
2633 | echo " sshd default user PATH: $I" | 2654 | echo " sshd default user PATH: $I" |
2655 | if ! test -z "$external_path_file"; then | ||
2656 | echo " (If PATH is set in $external_path_file it will be used instead. If" | ||
2657 | echo " used, ensure the path to scp is present, otherwise scp will not work.)" | ||
2658 | fi | ||
2634 | fi | 2659 | fi |
2635 | if test ! -z "$superuser_path" ; then | 2660 | if test ! -z "$superuser_path" ; then |
2636 | echo " sshd superuser user PATH: $J" | 2661 | echo " sshd superuser user PATH: $J" |