summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--auth.c10
-rw-r--r--session.c1
3 files changed, 12 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 0c7bfaca0..890b16210 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,8 @@
10 on one by peak@argo.troja.mff.cuni.cz 10 on one by peak@argo.troja.mff.cuni.cz
11 - (djm) Bug #111: Run syslog and stderr logging through strnvis to eliminate 11 - (djm) Bug #111: Run syslog and stderr logging through strnvis to eliminate
12 nasties. Report from peak@argo.troja.mff.cuni.cz 12 nasties. Report from peak@argo.troja.mff.cuni.cz
13 - (djm) Bug #178: On AIX /etc/nologin wasnt't shown to users. Fix from
14 Ralf.Wenk@fh-karlsruhe.de and dtucker@zip.com.au
13 15
1420030103 1620030103
15 - (djm) Bug #461: ssh-copy-id fails with no arguments. Patch from 17 - (djm) Bug #461: ssh-copy-id fails with no arguments. Patch from
@@ -938,4 +940,4 @@
938 save auth method before monitor_reset_key_state(); bugzilla bug #284; 940 save auth method before monitor_reset_key_state(); bugzilla bug #284;
939 ok provos@ 941 ok provos@
940 942
941$Id: ChangeLog,v 1.2546 2003/01/07 06:04:18 djm Exp $ 943$Id: ChangeLog,v 1.2547 2003/01/07 06:38:58 djm Exp $
diff --git a/auth.c b/auth.c
index ee21149df..7deded205 100644
--- a/auth.c
+++ b/auth.c
@@ -218,6 +218,8 @@ allowed_user(struct passwd * pw)
218 */ 218 */
219 if ( (pw->pw_uid != 0) && (geteuid() == 0) && 219 if ( (pw->pw_uid != 0) && (geteuid() == 0) &&
220 loginrestrictions(pw->pw_name, S_RLOGIN, NULL, &loginmsg) != 0) { 220 loginrestrictions(pw->pw_name, S_RLOGIN, NULL, &loginmsg) != 0) {
221 int loginrestrict_errno = errno;
222
221 if (loginmsg && *loginmsg) { 223 if (loginmsg && *loginmsg) {
222 /* Remove embedded newlines (if any) */ 224 /* Remove embedded newlines (if any) */
223 char *p; 225 char *p;
@@ -227,9 +229,13 @@ allowed_user(struct passwd * pw)
227 } 229 }
228 /* Remove trailing newline */ 230 /* Remove trailing newline */
229 *--p = '\0'; 231 *--p = '\0';
230 log("Login restricted for %s: %.100s", pw->pw_name, loginmsg); 232 log("Login restricted for %s: %.100s", pw->pw_name,
233 loginmsg);
231 } 234 }
232 return 0; 235 /* Don't fail if /etc/nologin set */
236 if (!(loginrestrict_errno == EPERM &&
237 stat(_PATH_NOLOGIN, &st) == 0))
238 return 0;
233 } 239 }
234#endif /* WITH_AIXAUTHENTICATE */ 240#endif /* WITH_AIXAUTHENTICATE */
235 241
diff --git a/session.c b/session.c
index 9832d7a83..c16cdcc13 100644
--- a/session.c
+++ b/session.c
@@ -1194,6 +1194,7 @@ do_nologin(struct passwd *pw)
1194 while (fgets(buf, sizeof(buf), f)) 1194 while (fgets(buf, sizeof(buf), f))
1195 fputs(buf, stderr); 1195 fputs(buf, stderr);
1196 fclose(f); 1196 fclose(f);
1197 fflush(NULL);
1197 exit(254); 1198 exit(254);
1198 } 1199 }
1199} 1200}