From d05c5031ad4c528fe6bbfed289519edb9f13180a Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 16 Jul 2012 12:34:54 +0200 Subject: unit: introduce %s specifier for the user shell --- src/shared/util.c | 14 +++++++++++++- src/shared/util.h | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src/shared') diff --git a/src/shared/util.c b/src/shared/util.c index a0755efb14..43ec62eac6 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -4905,7 +4905,12 @@ int socket_from_display(const char *display, char **path) { return 0; } -int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const char **home) { +int get_user_creds( + const char **username, + uid_t *uid, gid_t *gid, + const char **home, + const char **shell) { + struct passwd *p; uid_t u; @@ -4926,6 +4931,10 @@ int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const char **h if (home) *home = "/root"; + + if (shell) + *shell = "/bin/sh"; + return 0; } @@ -4957,6 +4966,9 @@ int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const char **h if (home) *home = p->pw_dir; + if (shell) + *shell = p->pw_shell; + return 0; } diff --git a/src/shared/util.h b/src/shared/util.h index d3546ba1cd..3915904442 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -441,7 +441,7 @@ int fchmod_umask(int fd, mode_t mode); bool display_is_local(const char *display); int socket_from_display(const char *display, char **path); -int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const char **home); +int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const char **home, const char **shell); int get_group_creds(const char **groupname, gid_t *gid); int in_group(const char *name); -- cgit v1.2.3-54-g00ecf