*/
#include "includes.h"
-RCSID("$OpenBSD: auth2.c,v 1.93 2002/05/31 11:35:15 markus Exp $");
+RCSID("$OpenBSD: auth2.c,v 1.95 2002/08/22 21:33:58 markus Exp $");
#include "ssh2.h"
#include "ssh1.h"
{
Authctxt *authctxt = ctxt;
u_int len;
- int accept = 0;
+ int acceptit = 0;
char *service = packet_get_string(&len);
packet_check_eom();
if (strcmp(service, "ssh-userauth") == 0) {
if (!authctxt->success) {
- accept = 1;
+ acceptit = 1;
/* now we can handle user-auth requests */
dispatch_set(SSH2_MSG_USERAUTH_REQUEST, &input_userauth_request);
}
}
/* XXX all other service requests are denied */
- if (accept) {
+ if (acceptit) {
packet_start(SSH2_MSG_SERVICE_ACCEPT);
packet_put_cstring(service);
packet_send();
authctxt->user);
/* Special handling for root */
- if (authenticated && authctxt->pw->pw_uid == 0 &&
+ if (!use_privsep &&
+ authenticated && authctxt->pw->pw_uid == 0 &&
!auth_root_allowed(method))
authenticated = 0;
authenticated = 0;
#endif /* USE_PAM */
+#ifdef _UNICOS
+ if (authenticated && cray_access_denied(authctxt->user)) {
+ authenticated = 0;
+ fatal("Access denied for user %s.",authctxt->user);
+ }
+#endif /* _UNICOS */
+
/* Log before sending the reply */
if (!compat20)
auth_log(authctxt, authenticated, method, " ssh1");
authctxt->success = 1;
} else {
if (authctxt->failures++ > AUTH_FAIL_MAX) {
-#ifdef WITH_AIXAUTHENTICATE
- /* XXX: privsep */
- loginfailed(authctxt->user,
- get_canonical_hostname(options.verify_reverse_mapping),
- "ssh");
-#endif /* WITH_AIXAUTHENTICATE */
packet_disconnect(AUTH_FAIL_MSG, authctxt->user);
}
if (!compat20) {
*/
authctxt->success = authctxt->postponed = 1;
} else {
+#ifdef _UNICOS
+ if (strcmp(method, "password") == 0)
+ cray_login_failure(authctxt->user, IA_UDBERR);
+#endif /* _UNICOS */
methods = authmethods_get();
if (!compat20)
packet_disconnect("GSSAPI authentication failed");