unit: introduce %s specifier for the user shell

This commit is contained in:
Lennart Poettering
2012-07-16 12:34:54 +02:00
parent b2896c905b
commit d05c5031ad
9 changed files with 54 additions and 12 deletions
+13 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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);