From: Taro Yamada Date: Sun, 27 Jan 2019 04:50:04 +0000 (+0900) Subject: Add a warning about the difference in permissions between existing directories and... X-Git-Tag: v241~51^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6cff72eb0a18d8547f005a481cd0622d3bc78483;p=platform%2Fupstream%2Fsystemd.git Add a warning about the difference in permissions between existing directories and unit settings. To follows the intent of 30c81ce, this change does not execute chmod() and just add warnings. --- diff --git a/src/core/execute.c b/src/core/execute.c index 07c5a72..a708231 100644 --- a/src/core/execute.c +++ b/src/core/execute.c @@ -2160,8 +2160,21 @@ static int setup_exec_directory( r = mkdir_label(p, context->directories[type].mode); if (r < 0 && r != -EEXIST) goto fail; - if (r == -EEXIST && !context->dynamic_user) - continue; + if (r == -EEXIST) { + struct stat st; + + if (stat(p, &st) < 0) { + r = -errno; + goto fail; + } + if (((st.st_mode ^ context->directories[type].mode) & 07777) != 0) + log_warning("%s \'%s\' already exists but the mode is different. " + "(filesystem: %o %sMode: %o)", + exec_directory_type_to_string(type), *rt, + st.st_mode & 07777, exec_directory_type_to_string(type), context->directories[type].mode & 07777); + if (!context->dynamic_user) + continue; + } } /* Don't change the owner of the configuration directory, as in the common case it is not written to by