diff options
author | Dave Reisner | 2012-02-28 17:45:18 +0100 |
---|---|---|
committer | Karel Zak | 2012-03-12 11:17:41 +0100 |
commit | 97e04909edc836525a66b8bb4ce705e6c56c2d37 (patch) | |
tree | 6872e49bbeb4b2627ef96fb58fc3d300053e14f0 /login-utils/sulogin.c | |
parent | sulogin: get rid of calls to /bin/sash (diff) | |
download | kernel-qcow2-util-linux-97e04909edc836525a66b8bb4ce705e6c56c2d37.tar.gz kernel-qcow2-util-linux-97e04909edc836525a66b8bb4ce705e6c56c2d37.tar.xz kernel-qcow2-util-linux-97e04909edc836525a66b8bb4ce705e6c56c2d37.zip |
sulogin: use pathnames.h for file locations
This covers /etc/shadow and /etc/passwd. We don't have a define for
/bin/sh -- just replace the macro with the hardcoded string as done
elsewhere.
Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Diffstat (limited to 'login-utils/sulogin.c')
-rw-r--r-- | login-utils/sulogin.c | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/login-utils/sulogin.c b/login-utils/sulogin.c index f672e7531..98caa2dbb 100644 --- a/login-utils/sulogin.c +++ b/login-utils/sulogin.c @@ -51,9 +51,7 @@ # include <selinux/get_context_list.h> #endif -#define F_PASSWD "/etc/passwd" -#define F_SHADOW "/etc/shadow" -#define BINSH "/bin/sh" +#include "pathnames.h" static int timeout; static int profile; @@ -214,8 +212,8 @@ static struct passwd *getrootpwent(int try_manually) pwd.pw_uid = 0; pwd.pw_gid = 0; - if ((fp = fopen(F_PASSWD, "r")) == NULL) { - perror(F_PASSWD); + if ((fp = fopen(_PATH_PASSWD, "r")) == NULL) { + perror(_PATH_PASSWD); return &pwd; } @@ -242,7 +240,7 @@ static struct passwd *getrootpwent(int try_manually) * or not found, return. */ if (p == NULL) { - fprintf(stderr, "%s: no entry for root\n", F_PASSWD); + fprintf(stderr, "%s: no entry for root\n", _PATH_PASSWD); return &pwd; } if (valid(pwd.pw_passwd)) @@ -253,8 +251,8 @@ static struct passwd *getrootpwent(int try_manually) * shadow password, try it. */ strcpy(pwd.pw_passwd, ""); - if ((fp = fopen(F_SHADOW, "r")) == NULL) { - fprintf(stderr, "%s: root password garbled\n", F_PASSWD); + if ((fp = fopen(_PATH_SHADOW_PASSWD, "r")) == NULL) { + fprintf(stderr, "%s: root password garbled\n", _PATH_PASSWD); return &pwd; } while ((p = fgets(sline, 256, fp)) != NULL) { @@ -271,11 +269,11 @@ static struct passwd *getrootpwent(int try_manually) * NULL it, and return. */ if (p == NULL) { - fprintf(stderr, "%s: no entry for root\n", F_SHADOW); + fprintf(stderr, "%s: no entry for root\n", _PATH_SHADOW_PASSWD); strcpy(pwd.pw_passwd, ""); } if (!valid(pwd.pw_passwd)) { - fprintf(stderr, "%s: root password garbled\n", F_SHADOW); + fprintf(stderr, "%s: root password garbled\n", _PATH_SHADOW_PASSWD); strcpy(pwd.pw_passwd, ""); } return &pwd; @@ -352,7 +350,7 @@ static void sushell(struct passwd *pwd) if (pwd->pw_shell[0]) sushell = pwd->pw_shell; else - sushell = BINSH; + sushell = "/bin/sh"; } if ((p = strrchr(sushell, '/')) == NULL) p = sushell; @@ -396,9 +394,9 @@ static void sushell(struct passwd *pwd) execl(sushell, shell, NULL); perror(sushell); - setenv("SHELL", BINSH, 1); - execl(BINSH, profile ? "-sh" : "sh", NULL); - perror(BINSH); + setenv("SHELL", "/bin/sh", 1); + execl("/bin/sh", profile ? "-sh" : "sh", NULL); + perror("/bin/sh"); } static void usage(void) |