]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Revert "core/execute: set HOME, USER also for root users"
authorLennart Poettering <lennart@poettering.net>
Thu, 9 Feb 2017 10:43:44 +0000 (11:43 +0100)
committerLennart Poettering <lennart@poettering.net>
Thu, 9 Feb 2017 10:43:44 +0000 (11:43 +0100)
This reverts commit 8b89628a10af3863bfc97872912e9da4076a5929.

This broke #5246

man/systemd.exec.xml
src/core/execute.c

index 2ce0c7d2464c94ac1b11c6c16f91a8e61760a61b..c3c3630154da76cc07b9fea31e1be27d8a22c502 100644 (file)
         <term><varname>$SHELL</varname></term>
 
         <listitem><para>User name (twice), home directory, and the
-        login shell. See
+        login shell. The variables are set for the units that have
+        <varname>User=</varname> set, which includes user
+        <command>systemd</command> instances. See
         <citerefentry project='die-net'><refentrytitle>passwd</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
         </para></listitem>
       </varlistentry>
index f57eb26388718280aa87155b8aa0c3d34b933932..1e326977233bc10f694ab5e9188ba8b3557d4400 100644 (file)
@@ -815,10 +815,13 @@ 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 ?: "root";
+        name = c->user;
         r = get_user_creds_clean(&name, uid, gid, home, shell);
         if (r < 0)
                 return r;