unit: introduce %s specifier for the user shell
This commit is contained in:
+13
-1
@@ -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
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user