Don't set owner/mode on directories that already exist, only on
newly-created ones.
This commit is contained in:
@@ -66,14 +66,7 @@ sudo_mkdir_parents(char *path, uid_t uid, gid_t gid, mode_t mode, bool quiet)
|
|||||||
sudo_warn(U_("unable to stat %s"), path);
|
sudo_warn(U_("unable to stat %s"), path);
|
||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
if (S_ISDIR(sb.st_mode)) {
|
if (!S_ISDIR(sb.st_mode)) {
|
||||||
if (uid != (uid_t)-1 && gid != (gid_t)-1) {
|
|
||||||
if (sb.st_uid != uid || sb.st_gid != uid)
|
|
||||||
ignore_result(chown(path, uid, uid));
|
|
||||||
}
|
|
||||||
if ((sb.st_mode & ALLPERMS) != mode)
|
|
||||||
ignore_result(chmod(path, mode));
|
|
||||||
} else {
|
|
||||||
if (!quiet)
|
if (!quiet)
|
||||||
sudo_warnx(U_("%s exists but is not a directory (0%o)"),
|
sudo_warnx(U_("%s exists but is not a directory (0%o)"),
|
||||||
path, (unsigned int) sb.st_mode);
|
path, (unsigned int) sb.st_mode);
|
||||||
|
Reference in New Issue
Block a user