version 1.101, 2013/02/06 00:22:21 |
version 1.102, 2013/05/17 00:13:13 |
|
|
if (stat(shell, &st) != 0) { |
if (stat(shell, &st) != 0) { |
logit("User %.100s not allowed because shell %.100s " |
logit("User %.100s not allowed because shell %.100s " |
"does not exist", pw->pw_name, shell); |
"does not exist", pw->pw_name, shell); |
xfree(shell); |
free(shell); |
return 0; |
return 0; |
} |
} |
if (S_ISREG(st.st_mode) == 0 || |
if (S_ISREG(st.st_mode) == 0 || |
(st.st_mode & (S_IXOTH|S_IXUSR|S_IXGRP)) == 0) { |
(st.st_mode & (S_IXOTH|S_IXUSR|S_IXGRP)) == 0) { |
logit("User %.100s not allowed because shell %.100s " |
logit("User %.100s not allowed because shell %.100s " |
"is not executable", pw->pw_name, shell); |
"is not executable", pw->pw_name, shell); |
xfree(shell); |
free(shell); |
return 0; |
return 0; |
} |
} |
xfree(shell); |
free(shell); |
} |
} |
|
|
if (options.num_deny_users > 0 || options.num_allow_users > 0 || |
if (options.num_deny_users > 0 || options.num_allow_users > 0 || |
|
|
i = snprintf(ret, sizeof(ret), "%s/%s", pw->pw_dir, file); |
i = snprintf(ret, sizeof(ret), "%s/%s", pw->pw_dir, file); |
if (i < 0 || (size_t)i >= sizeof(ret)) |
if (i < 0 || (size_t)i >= sizeof(ret)) |
fatal("expand_authorized_keys: path too long"); |
fatal("expand_authorized_keys: path too long"); |
xfree(file); |
free(file); |
return (xstrdup(ret)); |
return (xstrdup(ret)); |
} |
} |
|
|
|
|
load_hostkeys(hostkeys, host, user_hostfile); |
load_hostkeys(hostkeys, host, user_hostfile); |
restore_uid(); |
restore_uid(); |
} |
} |
xfree(user_hostfile); |
free(user_hostfile); |
} |
} |
host_status = check_key_in_hostkeys(hostkeys, key, &found); |
host_status = check_key_in_hostkeys(hostkeys, key, &found); |
if (host_status == HOST_REVOKED) |
if (host_status == HOST_REVOKED) |
|
|
key_fp = key_fingerprint(key, SSH_FP_MD5, SSH_FP_HEX); |
key_fp = key_fingerprint(key, SSH_FP_MD5, SSH_FP_HEX); |
error("WARNING: authentication attempt with a revoked " |
error("WARNING: authentication attempt with a revoked " |
"%s key %s ", key_type(key), key_fp); |
"%s key %s ", key_type(key), key_fp); |
xfree(key_fp); |
free(key_fp); |
return 1; |
return 1; |
} |
} |
fatal("key_in_file returned junk"); |
fatal("key_in_file returned junk"); |
|
|
while (buffer_len(&auth_debug)) { |
while (buffer_len(&auth_debug)) { |
msg = buffer_get_string(&auth_debug, NULL); |
msg = buffer_get_string(&auth_debug, NULL); |
packet_send_debug("%s", msg); |
packet_send_debug("%s", msg); |
xfree(msg); |
free(msg); |
} |
} |
} |
} |
|
|