Hello to all! I have problem with OpenSSH 1.2.1pre18 on Linux (kernel 2.2.13, distribution Slackware 4.0). When someone login using ssh, there is no way to see his presentance with some 'standard' tools (finger, who, w, users...). Of course, his proccesses are in ps, and so. I've tried to see /etc/utmp using vi, and there is some entry, but maybe invalid, or something. When I enable option 'UseLogin', login correctly records logins and logouts, but, user has to enter password twice. In attachement is config.h (created after configure --sysconfdir=/etc/ssh). If you need any additional information, please tell me. Sincerely, Bole -------------- next part -------------- /* config.h. Generated automatically by configure. */ /* config.h.in. Generated automatically from configure.in by autoheader. */ /* Define as __inline if that's what the C compiler calls it. */ /* #undef inline */ /* SSL directory. */ #define ssldir "/usr/local/ssl" /* Location of lastlog file */ #define LASTLOG_LOCATION "/var/log/lastlog" /* If lastlog is a directory */ /* #undef LASTLOG_IS_DIR */ /* Location of random number pool */ #define RANDOM_POOL "/dev/urandom" /* Are we using the Entropy gathering daemon */ /* #undef HAVE_EGD */ /* Define if your ssl headers are included with #include <ssl/header.h> */ /* #undef HAVE_SSL */ /* Define if your ssl headers are included with #include <openssl/header.h> */ #define HAVE_OPENSSL 1 /* Define is utmp.h has a ut_host field */ #define HAVE_HOST_IN_UTMP 1 /* Define is utmpx.h has a ut_host field */ /* #undef HAVE_HOST_IN_UTMPX */ /* Define is libutil has login() function */ /* #undef HAVE_LIBUTIL_LOGIN */ /* Define if libc defines __progname */ #define HAVE___PROGNAME 1 /* Define if you want Kerberos 4 support */ /* #undef KRB4 */ /* Define if you want AFS support */ /* #undef AFS */ /* Define if you want S/Key support */ /* #undef SKEY */ /* Define if you want TCP Wrappers support */ /* #undef LIBWRAP */ /* Define if your libraries define login() */ #define HAVE_LOGIN 1 /* Define if your libraries define daemon() */ #define HAVE_DAEMON 1 /* Define if you want to allow MD5 passwords */ /* #undef HAVE_MD5_PASSWORDS */ /* Define if you have an old version of PAM which takes only one argument */ /* to pam_strerror */ #define HAVE_OLD_PAM 1 /* Data types */ /* #undef HAVE_QUAD_T */ #define HAVE_INTXX_T 1 #define HAVE_U_INTXX_T 1 #define HAVE_UINTXX_T 1 /* Define if you have /dev/ptmx */ /* #undef HAVE_DEV_PTMX */ /* Define if you have /dev/ptc */ /* #undef HAVE_DEV_PTS_AND_PTC */ /* Path to xauth binary */ #define XAUTH_PATH "/usr/X11R6/bin/xauth" /* The number of bytes in a int. */ #define SIZEOF_INT 4 /* The number of bytes in a long int. */ #define SIZEOF_LONG_INT 4 /* The number of bytes in a long long int. */ #define SIZEOF_LONG_LONG_INT 8 /* The number of bytes in a short int. */ #define SIZEOF_SHORT_INT 2 /* Define if you have the _getpty function. */ /* #undef HAVE__GETPTY */ /* Define if you have the arc4random function. */ /* #undef HAVE_ARC4RANDOM */ /* Define if you have the mkdtemp function. */ /* #undef HAVE_MKDTEMP */ /* Define if you have the openpty function. */ /* #undef HAVE_OPENPTY */ /* Define if you have the setenv function. */ #define HAVE_SETENV 1 /* Define if you have the setlogin function. */ /* #undef HAVE_SETLOGIN */ /* Define if you have the setproctitle function. */ /* #undef HAVE_SETPROCTITLE */ /* Define if you have the snprintf function. */ #define HAVE_SNPRINTF 1 /* Define if you have the strlcat function. */ /* #undef HAVE_STRLCAT */ /* Define if you have the strlcpy function. */ /* #undef HAVE_STRLCPY */ /* Define if you have the vsnprintf function. */ #define HAVE_VSNPRINTF 1 /* Define if you have the <endian.h> header file. */ #define HAVE_ENDIAN_H 1 /* Define if you have the <lastlog.h> header file. */ #define HAVE_LASTLOG_H 1 /* Define if you have the <login.h> header file. */ /* #undef HAVE_LOGIN_H */ /* Define if you have the <maillock.h> header file. */ /* #undef HAVE_MAILLOCK_H */ /* Define if you have the <netgroup.h> header file. */ /* #undef HAVE_NETGROUP_H */ /* Define if you have the <paths.h> header file. */ #define HAVE_PATHS_H 1 /* Define if you have the <poll.h> header file. */ /* #undef HAVE_POLL_H */ /* Define if you have the <pty.h> header file. */ /* #undef HAVE_PTY_H */ /* Define if you have the <shadow.h> header file. */ #define HAVE_SHADOW_H 1 /* Define if you have the <sys/poll.h> header file. */ #define HAVE_SYS_POLL_H 1 /* Define if you have the <sys/select.h> header file. */ /* #undef HAVE_SYS_SELECT_H */ /* Define if you have the <sys/stropts.h> header file. */ /* #undef HAVE_SYS_STROPTS_H */ /* Define if you have the <sys/time.h> header file. */ #define HAVE_SYS_TIME_H 1 /* Define if you have the <util.h> header file. */ /* #undef HAVE_UTIL_H */ /* Define if you have the <utmp.h> header file. */ #define HAVE_UTMP_H 1 /* Define if you have the <utmpx.h> header file. */ /* #undef HAVE_UTMPX_H */ /* Define if you have the crypto library (-lcrypto). */ #define HAVE_LIBCRYPTO 1 /* Define if you have the dl library (-ldl). */ #define HAVE_LIBDL 1 /* Define if you have the nsl library (-lnsl). */ /* #undef HAVE_LIBNSL */ /* Define if you have the pam library (-lpam). */ /* #undef HAVE_LIBPAM */ /* Define if you have the socket library (-lsocket). */ /* #undef HAVE_LIBSOCKET */ /* Define if you have the z library (-lz). */ #define HAVE_LIBZ 1 /* ******************* Shouldn't need to edit below this line ************** */ #include <sys/types.h> /* For u_intXX_t */ #include <sys/socket.h> /* For SHUT_XXXX */ #ifdef HAVE_PATHS_H # include <paths.h> /* For _PATH_XXX */ #endif #ifdef HAVE_UTMP_H # include <utmp.h> /* For _PATH_XXX */ #endif #ifdef HAVE_UTMPX_H # include <utmpx.h> /* For _PATH_XXX */ #endif #ifdef HAVE_SYS_TIME_H # include <sys/time.h> /* For timersub */ #endif #ifdef HAVE_MAILLOCK_H #include <maillock.h> #endif #ifndef SHUT_RDWR enum { SHUT_RD = 0, /* No more receptions. */ SHUT_WR, /* No more transmissions. */ SHUT_RDWR /* No more receptions or transmissions. */ }; # define SHUT_RD SHUT_RD # define SHUT_WR SHUT_WR # define SHUT_RDWR SHUT_RDWR #endif /* If sys/types.h does not supply intXX_t, supply them ourselves */ /* (or die trying) */ #ifndef HAVE_INTXX_T # if (SIZEOF_SHORT_INT == 2) # define int16_t short int # else # error "16 bit int type not found." # endif # if (SIZEOF_INT == 4) # define int32_t int # else # error "32 bit int type not found." # endif # if (SIZEOF_LONG_INT == 8) # define int64_t long int # else # if (SIZEOF_LONG_LONG_INT == 8) # define int64_t long long int # else # error "64 bit int type not found." # endif # endif #endif /* If sys/types.h does not supply u_intXX_t, supply them ourselves */ #ifndef HAVE_U_INTXX_T # ifdef HAVE_UINTXX_T # define u_int16_t uint16_t # define u_int32_t uint32_t # define u_int64_t uint64_t # else # if (SIZEOF_SHORT_INT == 2) # define u_int16_t unsigned short int # else # error "16 bit int type not found." # endif # if (SIZEOF_INT == 4) # define u_int32_t unsigned int # else # error "32 bit int type not found." # endif # if (SIZEOF_LONG_INT == 8) # define u_int64_t unsigned long int # else # if (SIZEOF_LONG_LONG_INT == 8) # define u_int64_t unsigned long long int # else # error "64 bit int type not found." # endif # endif # endif #endif /* If quad_t is not supplied, then supply it now. We can rely on int64_t */ /* being defined by the above */ #ifndef HAVE_QUAD_T # define quad_t int64_t #endif /* If _PATH_LASTLOG is not defined by system headers, set it to the */ /* lastlog file detected by autoconf */ #ifndef _PATH_LASTLOG # ifdef LASTLOG_LOCATION # define _PATH_LASTLOG LASTLOG_LOCATION # endif #endif /* Use utmpx if supported */ #ifdef HAVE_UTMPX_H # define UTMP_STR utmpx #else # ifdef HAVE_UTMP_H # define UTMP_STR utmp # endif #endif #ifndef _PATH_UTMP # ifdef UTMPX_FILE # define _PATH_UTMP UTMPX_FILE # else # ifdef UTMP_FILE # define _PATH_UTMP UTMP_FILE # else # define _PATH_UTMP "/var/adm/utmp" # endif # endif #endif #ifndef _PATH_WTMP # ifdef WTMPX_FILE # define _PATH_WTMP WTMPX_FILE # else # ifdef WTMP_FILE # define _PATH_WTMP WTMP_FILE # else # define _PATH_WTMP "/var/adm/wtmp" # endif # endif #endif #ifndef _PATH_BSHELL # define _PATH_BSHELL "/bin/sh" #endif #ifndef _PATH_STDPATH # define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin:" #endif #ifndef _PATH_DEVNULL # define _PATH_DEVNULL "/dev/null" #endif #ifndef _PATH_MAILDIR # ifdef MAILDIR # define _PATH_MAILDIR MAILDIR # endif #endif #ifndef MAX # define MAX(a,b) (((a)>(b))?(a):(b)) # define MIN(a,b) (((a)<(b))?(a):(b)) #endif #ifndef timersub #define timersub(a, b, result) \ do { \ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \ if ((result)->tv_usec < 0) { \ --(result)->tv_sec; \ (result)->tv_usec += 1000000; \ } \ } while (0) #endif /* In older versions of libpam, pam_strerror takes a single argument */ #ifdef HAVE_OLD_PAM # define PAM_STRERROR(a,b) pam_strerror((b)) #else # define PAM_STRERROR(a,b) pam_strerror((a),(b)) #endif #ifndef __P # define __P(x) x #endif #if !defined(__GNUC__) || (__GNUC__ < 2) # define __attribute__(x) #endif /* !defined(__GNUC__) || (__GNUC__ < 2) */