diff options
author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2002-10-10 03:55:09 +0000 |
---|---|---|
committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2002-10-10 03:55:09 +0000 |
commit | cf47f486398a8e391e22ee2497846e51c3297f2b (patch) | |
tree | bbba20b8aeb730194fe47b35bea6deea8d752a37 /loginutils/login.c | |
parent | 78de58fff56e40b31a18649c7f3fcd1e808d4b0a (diff) | |
download | busybox-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.c | 8 |
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 |
22 | static void checkutmp(int picky); | 23 | static void checkutmp(int picky); |
23 | static void setutmp(const char *name, const char *line); | 24 | static void setutmp(const char *name, const char *line); |
25 | #endif | ||
24 | 26 | ||
25 | // import from encrypt.c | 27 | // import from encrypt.c |
26 | extern char *pw_encrypt(const char *clear, const char *salt); | 28 | extern 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 */ | ||