diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-07-23 12:04:41 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-07-23 12:04:41 +0100 |
commit | 351a37ef5437d631d61975160d2b45d4789d0bd9 (patch) | |
tree | eaa4a33315efefdd22884065b404358e4cb2bc1e /prosodyctl | |
parent | 5870f3b790f875d3350a5c0d423d55d06b3c67bf (diff) | |
parent | 23a10d0390865c0e359e3a2e8faa53bd332a2941 (diff) | |
download | prosody-351a37ef5437d631d61975160d2b45d4789d0bd9.tar.gz prosody-351a37ef5437d631d61975160d2b45d4789d0bd9.zip |
Merge with 0.5
Diffstat (limited to 'prosodyctl')
-rwxr-xr-x | prosodyctl | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -66,19 +66,28 @@ require "util.datamanager".set_data_path(data_path); -- Switch away from root and into the prosody user -- local switched_user, current_uid; + +local want_pposix_version = "0.3.1"; local ok, pposix = pcall(require, "util.pposix"); + if ok and pposix then + 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 current_uid = pposix.getuid(); if current_uid == 0 then -- We haz root! local desired_user = config.get("*", "core", "prosody_user") or "prosody"; - local ok, err = pposix.setuid(desired_user); + local desired_group = config.get("*", "core", "prosody_group") or desired_user; + local ok, err = pposix.setgid(desired_group); if ok then - -- Yay! - switched_user = true; - else + ok, err = pposix.setuid(desired_user); + if ok then + -- Yay! + switched_user = true; + end + end + if not switched_user then -- Boo! - print("Warning: Couldn't switch to Prosody user '"..tostring(desired_user).."': "..tostring(err)); + print("Warning: Couldn't switch to Prosody user/group '"..tostring(desired_user).."'/'"..tostring(desired_group).."': "..tostring(err)); end end else |