aboutsummaryrefslogtreecommitdiff
path: root/loginutils/login.c
diff options
context:
space:
mode:
authorandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2002-10-10 03:55:09 +0000
committerandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2002-10-10 03:55:09 +0000
commitcf47f486398a8e391e22ee2497846e51c3297f2b (patch)
treebbba20b8aeb730194fe47b35bea6deea8d752a37 /loginutils/login.c
parent78de58fff56e40b31a18649c7f3fcd1e808d4b0a (diff)
downloadbusybox-w32-cf47f486398a8e391e22ee2497846e51c3297f2b.tar.gz
busybox-w32-cf47f486398a8e391e22ee2497846e51c3297f2b.tar.bz2
busybox-w32-cf47f486398a8e391e22ee2497846e51c3297f2b.zip
last_patch60 from vodz:
login and getty applets writes utmp/wtmp but init do clearing not. I think, in current time deny wtmp/utmp writes as undefault features. git-svn-id: svn://busybox.net/trunk/busybox@5639 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'loginutils/login.c')
-rw-r--r--loginutils/login.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/loginutils/login.c b/loginutils/login.c
index 7687556ba..714829db1 100644
--- a/loginutils/login.c
+++ b/loginutils/login.c
@@ -18,9 +18,11 @@
18#include "busybox.h" 18#include "busybox.h"
19 19
20 20
21#ifdef CONFIG_FEATURE_U_W_TMP
21// import from utmp.c 22// import from utmp.c
22static void checkutmp(int picky); 23static void checkutmp(int picky);
23static void setutmp(const char *name, const char *line); 24static void setutmp(const char *name, const char *line);
25#endif
24 26
25// import from encrypt.c 27// import from encrypt.c
26extern char *pw_encrypt(const char *clear, const char *salt); 28extern char *pw_encrypt(const char *clear, const char *salt);
@@ -119,7 +121,9 @@ extern int login_main(int argc, char **argv)
119 if ( !isatty ( 0 ) || !isatty ( 1 ) || !isatty ( 2 )) 121 if ( !isatty ( 0 ) || !isatty ( 1 ) || !isatty ( 2 ))
120 return EXIT_FAILURE; /* Must be a terminal */ 122 return EXIT_FAILURE; /* Must be a terminal */
121 123
124#ifdef CONFIG_FEATURE_U_W_TMP
122 checkutmp ( !amroot ); 125 checkutmp ( !amroot );
126#endif
123 127
124 tmp = ttyname ( 0 ); 128 tmp = ttyname ( 0 );
125 if ( tmp && ( strncmp ( tmp, "/dev/", 5 ) == 0 )) 129 if ( tmp && ( strncmp ( tmp, "/dev/", 5 ) == 0 ))
@@ -212,7 +216,9 @@ auth_ok:
212 if ( check_nologin ( pw-> pw_uid == 0 )) 216 if ( check_nologin ( pw-> pw_uid == 0 ))
213 return EXIT_FAILURE; 217 return EXIT_FAILURE;
214 218
219#ifdef CONFIG_FEATURE_U_W_TMP
215 setutmp ( username, tty ); 220 setutmp ( username, tty );
221#endif
216 if ( *tty != '/' ) 222 if ( *tty != '/' )
217 snprintf ( full_tty, sizeof( full_tty ) - 1, "/dev/%s", tty); 223 snprintf ( full_tty, sizeof( full_tty ) - 1, "/dev/%s", tty);
218 else 224 else
@@ -356,6 +362,7 @@ static void motd ( )
356} 362}
357 363
358 364
365#ifdef CONFIG_FEATURE_U_W_TMP
359// vv Taken from tinylogin utmp.c vv 366// vv Taken from tinylogin utmp.c vv
360 367
361#define _WTMP_FILE "/var/log/wtmp" 368#define _WTMP_FILE "/var/log/wtmp"
@@ -437,3 +444,4 @@ static void setutmp(const char *name, const char *line)
437 endutent(); 444 endutent();
438 updwtmp(_WTMP_FILE, &utent); 445 updwtmp(_WTMP_FILE, &utent);
439} 446}
447#endif /* CONFIG_FEATURE_U_W_TMP */