diff --git a/src/slurmd/slurmd/req.c b/src/slurmd/slurmd/req.c index 15775f0729bf702b6279492d213bb456e6cac37e..6afdcc9c9415548a1305c4b65058349789b65a51 100644 --- a/src/slurmd/slurmd/req.c +++ b/src/slurmd/slurmd/req.c @@ -2068,7 +2068,10 @@ init_gids_cache(int cache) if (_gids_cache_lookup(pwd->pw_name, pwd->pw_gid)) continue; if (initgroups(pwd->pw_name, pwd->pw_gid)) { - error("initgroups:init_gids_cache: %m"); + if ((errno == EPERM) && (getuid() != (uid_t) 0)) + debug("initgroups:init_gids_cache: %m"); + else + error("initgroups:init_gids_cache: %m"); continue; } if ((gids = _getgroups()) == NULL) diff --git a/src/slurmd/slurmstepd/mgr.c b/src/slurmd/slurmstepd/mgr.c index 72f2062062a887b5dd3a56159c348f5588847181..bd7a61ca35e1639c20015dffc07d6ee2cef6d046 100644 --- a/src/slurmd/slurmstepd/mgr.c +++ b/src/slurmd/slurmstepd/mgr.c @@ -1252,8 +1252,13 @@ _initgroups(slurmd_job_t *job) gid = job->pwd->pw_gid; debug2("Uncached user/gid: %s/%ld", username, (long)gid); if (rc = initgroups(username, gid)) { - error("Error in initgroups(%s, %ld): %m", - username, (long)gid); + if ((errno == EPERM) && (getuid != (uid_t) 0)) { + debug("Error in initgroups(%s, %ld): %m", + username, (long)gid); + } else { + error("Error in initgroups(%s, %ld): %m", + username, (long)gid); + } return -1; } return 0;