Files
terraria-server-manager/config/polkit/terractl.rules
T
2026-09-30 17:11:22 +00:00

24 lines
1000 B
Plaintext

// Members of the 'terraria' group may start, stop and restart Terraria servers
// (terraria@<name>.service) without sudo. Nothing else: enable/disable and all
// other units still need root.
//
// Starting a name that has no instance yet creates a vanilla instance with
// default settings, as it does for root.
//
// Needs polkit 0.106 or newer (JavaScript rules); Ubuntu 22.04's 0.105 ignores it.
polkit.addRule(function(action, subject) {
if (action.id != "org.freedesktop.systemd1.manage-units" ||
!subject.isInGroup("terraria")) {
return polkit.Result.NOT_HANDLED;
}
// Same names terractl accepts (valid_name)
var unit = action.lookup("unit") || "";
var verb = action.lookup("verb") || "";
var verbs = ["start", "stop", "restart", "try-restart", "reset-failed"];
if (/^terraria@[A-Za-z0-9_][A-Za-z0-9_.-]*\.service$/.test(unit) &&
verbs.indexOf(verb) >= 0) {
return polkit.Result.YES;
}
return polkit.Result.NOT_HANDLED;
});