Software /
code /
prosody
Changeset
1114:c463e30da312
prosodyctl: Switch to Prosody user before attempting to do anything
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 05 May 2009 13:23:46 +0100 |
parents | 1113:89ac8e9e1426 |
children | 1115:8a7bc1a5eae6 |
files | prosodyctl |
diffstat | 1 files changed, 23 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/prosodyctl Mon May 04 20:35:44 2009 +0100 +++ b/prosodyctl Tue May 05 13:23:46 2009 +0100 @@ -61,6 +61,29 @@ end end +-- Switch away from root and into the prosody user -- +local switched_user, current_uid; +local ok, pposix = pcall(require, "util.pposix"); +if ok and pposix then + 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); + if ok then + -- Yay! + switched_user = true; + else + -- Boo! + print("Warning: Couldn't switch to Prosody user '"..tostring(desired_user).."': "..tostring(err)); + end + end +else + print("Error: Unable to load pposix module. Check that Prosody is installed correctly.") + print("For more help send the below error to us through http://prosody.im/discuss"); + print(tostring(pposix)) +end + local error_messages = setmetatable({ ["invalid-username"] = "The given username is invalid in a Jabber ID"; ["invalid-hostname"] = "The given hostname is invalid";