21 local logger_set = require "util.logger".setwriter; |
21 local logger_set = require "util.logger".setwriter; |
22 |
22 |
23 local prosody = _G.prosody; |
23 local prosody = _G.prosody; |
24 |
24 |
25 module.host = "*"; -- we're a global module |
25 module.host = "*"; -- we're a global module |
|
26 |
|
27 -- Allow switching away from root, some people like strange ports. |
|
28 module:add_event_hook("server-started", function () |
|
29 local uid = config_get("*", "core", "setuid"); |
|
30 local gid = config_get("*", "core", "setgid"); |
|
31 if gid then |
|
32 pposix.setgid(gid); |
|
33 module:log("debug", "Change group to "..gid.."."); |
|
34 end |
|
35 if uid then |
|
36 pposix.setuid(uid); |
|
37 module:log("debug", "Change user to "..uid.."."); |
|
38 end |
|
39 end); |
26 |
40 |
27 -- Don't even think about it! |
41 -- Don't even think about it! |
28 module:add_event_hook("server-starting", function () |
42 module:add_event_hook("server-starting", function () |
29 if pposix.getuid() == 0 and not config_get("*", "core", "run_as_root") then |
43 if pposix.getuid() == 0 and not config_get("*", "core", "run_as_root") then |
30 module:log("error", "Danger, Will Robinson! Prosody doesn't need to be run as root, so don't do it!"); |
44 module:log("error", "Danger, Will Robinson! Prosody doesn't need to be run as root, so don't do it!"); |