Merge pull request #5223 from keszybz/root-workdir
Fix WorkDir=~ with empty User=
This commit is contained in:
@@ -1694,9 +1694,7 @@
|
||||
<term><varname>$SHELL</varname></term>
|
||||
|
||||
<listitem><para>User name (twice), home directory, and the
|
||||
login shell. The variables are set for the units that have
|
||||
<varname>User=</varname> set, which includes user
|
||||
<command>systemd</command> instances. See
|
||||
login shell. See
|
||||
<citerefentry project='die-net'><refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
+4
-6
@@ -815,13 +815,10 @@ static int get_fixed_user(const ExecContext *c, const char **user,
|
||||
|
||||
assert(c);
|
||||
|
||||
if (!c->user)
|
||||
return 0;
|
||||
|
||||
/* Note that we don't set $HOME or $SHELL if they are not particularly enlightening anyway
|
||||
* (i.e. are "/" or "/bin/nologin"). */
|
||||
|
||||
name = c->user;
|
||||
name = c->user ?: "root";
|
||||
r = get_user_creds_clean(&name, uid, gid, home, shell);
|
||||
if (r < 0)
|
||||
return r;
|
||||
@@ -2439,11 +2436,12 @@ static int exec_child(
|
||||
}
|
||||
|
||||
if (context->utmp_id)
|
||||
utmp_put_init_process(context->utmp_id, getpid(), getsid(0), context->tty_path,
|
||||
utmp_put_init_process(context->utmp_id, getpid(), getsid(0),
|
||||
context->tty_path,
|
||||
context->utmp_mode == EXEC_UTMP_INIT ? INIT_PROCESS :
|
||||
context->utmp_mode == EXEC_UTMP_LOGIN ? LOGIN_PROCESS :
|
||||
USER_PROCESS,
|
||||
username ? "root" : context->user);
|
||||
username);
|
||||
|
||||
if (context->user) {
|
||||
r = chown_terminal(STDIN_FILENO, uid);
|
||||
|
||||
Reference in New Issue
Block a user