createTempDir(): Don't do a chown on Linux
It's not needed and can cause problems in a user namespace.
This commit is contained in:
parent
a24f2c9b84
commit
a424ab0444
1 changed files with 2 additions and 0 deletions
|
@ -384,6 +384,7 @@ Path createTempDir(const Path & tmpRoot, const Path & prefix,
|
|||
checkInterrupt();
|
||||
Path tmpDir = tempName(tmpRoot, prefix, includePid, counter);
|
||||
if (mkdir(tmpDir.c_str(), mode) == 0) {
|
||||
#if __FreeBSD__
|
||||
/* Explicitly set the group of the directory. This is to
|
||||
work around around problems caused by BSD's group
|
||||
ownership semantics (directories inherit the group of
|
||||
|
@ -394,6 +395,7 @@ Path createTempDir(const Path & tmpRoot, const Path & prefix,
|
|||
have the setgid bit set on directories. */
|
||||
if (chown(tmpDir.c_str(), (uid_t) -1, getegid()) != 0)
|
||||
throw SysError(format("setting group of directory ‘%1%’") % tmpDir);
|
||||
#endif
|
||||
return tmpDir;
|
||||
}
|
||||
if (errno != EEXIST)
|
||||
|
|
Loading…
Reference in a new issue