diff --git a/lib/fluent/command/fluentd.rb b/lib/fluent/command/fluentd.rb index 1c37b10e41..ed1ad22123 100644 --- a/lib/fluent/command/fluentd.rb +++ b/lib/fluent/command/fluentd.rb @@ -81,6 +81,11 @@ opts[:chgroup] = s } +opts[:chumask] = 0 +op.on('--umask UMASK', "change umask") {|s| + opts[:chumask] = s +} + op.on('-o', '--log PATH', "log file path") {|s| opts[:log_path] = s } diff --git a/lib/fluent/supervisor.rb b/lib/fluent/supervisor.rb index c03cde3925..819877e3a4 100644 --- a/lib/fluent/supervisor.rb +++ b/lib/fluent/supervisor.rb @@ -397,6 +397,7 @@ def self.load_config(path, params = {}) log_path = params['log_path'] chuser = params['chuser'] chgroup = params['chgroup'] + chumask = params['chumask'] log_rotate_age = params['log_rotate_age'] log_rotate_size = params['log_rotate_size'] @@ -436,7 +437,7 @@ def self.load_config(path, params = {}) logger_initializer: logger_initializer, chuser: chuser, chgroup: chgroup, - chumask: 0, + chumask: chumask, suppress_repeated_stacktrace: suppress_repeated_stacktrace, ignore_repeated_log_interval: ignore_repeated_log_interval, ignore_same_log_interval: ignore_same_log_interval, @@ -603,6 +604,7 @@ def initialize(opt) @plugin_dirs = opt[:plugin_dirs] @chgroup = opt[:chgroup] @chuser = opt[:chuser] + @chumask = opt[:chumask] @log_rotate_age = opt[:log_rotate_age] @log_rotate_size = opt[:log_rotate_size] @@ -709,7 +711,7 @@ def run_worker create_socket_manager if @standalone_worker if @standalone_worker ServerEngine::Privilege.change(@chuser, @chgroup) - File.umask(0) + File.umask(@chumask.to_i(8)) end MessagePackFactory.init(enable_time_support: @system_config.enable_msgpack_time_support) Fluent::Engine.init(@system_config)