Software /
code /
prosody
Comparison
prosodyctl @ 3471:482275e38224
util.pposix, prosodyctl, mod_posix: Add initgroups() function, and bump module version. prosodyctl inits groups with the groups of prosody_user. (thanks dbb)
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 28 Aug 2010 14:31:48 +0100 |
parent | 3339:7893055e54d1 |
child | 3481:72d3c8029178 |
comparison
equal
deleted
inserted
replaced
3470:0e59b5cdd57b | 3471:482275e38224 |
---|---|
77 require "util.datamanager".set_data_path(data_path); | 77 require "util.datamanager".set_data_path(data_path); |
78 | 78 |
79 -- Switch away from root and into the prosody user -- | 79 -- Switch away from root and into the prosody user -- |
80 local switched_user, current_uid; | 80 local switched_user, current_uid; |
81 | 81 |
82 local want_pposix_version = "0.3.3"; | 82 local want_pposix_version = "0.3.4"; |
83 local ok, pposix = pcall(require, "util.pposix"); | 83 local ok, pposix = pcall(require, "util.pposix"); |
84 | 84 |
85 if ok and pposix then | 85 if ok and pposix then |
86 if pposix._VERSION ~= want_pposix_version then print(string.format("Unknown version (%s) of binary pposix module, expected %s", tostring(pposix._VERSION), want_pposix_version)); return; end | 86 if pposix._VERSION ~= want_pposix_version then print(string.format("Unknown version (%s) of binary pposix module, expected %s", tostring(pposix._VERSION), want_pposix_version)); return; end |
87 current_uid = pposix.getuid(); | 87 current_uid = pposix.getuid(); |
88 if current_uid == 0 then | 88 if current_uid == 0 then |
89 -- We haz root! | 89 -- We haz root! |
90 local desired_user = config.get("*", "core", "prosody_user") or "prosody"; | 90 local desired_user = config.get("*", "core", "prosody_user") or "prosody"; |
91 local desired_group = config.get("*", "core", "prosody_group") or desired_user; | 91 local desired_group = config.get("*", "core", "prosody_group") or desired_user; |
92 local ok, err = pposix.setgid(desired_group); | 92 local ok, err = pposix.setgid(desired_group); |
93 if ok then | |
94 ok, err = pposix.initgroups(desired_user); | |
95 end | |
93 if ok then | 96 if ok then |
94 ok, err = pposix.setuid(desired_user); | 97 ok, err = pposix.setuid(desired_user); |
95 if ok then | 98 if ok then |
96 -- Yay! | 99 -- Yay! |
97 switched_user = true; | 100 switched_user = true; |