55 lines
1.9 KiB
Plaintext
55 lines
1.9 KiB
Plaintext
// Allow kiosk user to run apt update, apt install for radiantwave packages,
|
|
// and restart getty for application reloading
|
|
polkit.addRule(function(action, subject) {
|
|
if (action.id == "org.freedesktop.policykit.exec" &&
|
|
subject.user == "kiosk") {
|
|
|
|
var program = action.lookup("program");
|
|
var cmdline = action.lookup("command_line");
|
|
|
|
// Allow dpkg --configure -a
|
|
if (program == "/usr/bin/dpkg") {
|
|
if (cmdline && cmdline.indexOf("--configure") >= 0) {
|
|
return polkit.Result.YES;
|
|
}
|
|
}
|
|
|
|
// Allow apt update
|
|
if (program == "/usr/bin/apt") {
|
|
if (cmdline && cmdline.indexOf("update") >= 0) {
|
|
return polkit.Result.YES;
|
|
}
|
|
|
|
// Allow: apt install --only-upgrade radiantwave[-dev]
|
|
if (cmdline &&
|
|
cmdline.indexOf("install") >= 0 &&
|
|
cmdline.indexOf("--only-upgrade") >= 0 &&
|
|
cmdline.indexOf("radiantwave") >= 0) {
|
|
return polkit.Result.YES;
|
|
}
|
|
}
|
|
|
|
// Allow systemctl restart getty@tty1.service
|
|
if (program == "/usr/bin/systemctl") {
|
|
if (cmdline &&
|
|
cmdline.indexOf("restart") >= 0 &&
|
|
cmdline.indexOf("getty@tty1.service") >= 0) {
|
|
return polkit.Result.YES;
|
|
}
|
|
}
|
|
|
|
// Allow sh for Tailscale install script
|
|
if (program == "/usr/bin/sh" || program == "/bin/sh") {
|
|
if (cmdline && cmdline.indexOf("tailscale.com/install.sh") >= 0) {
|
|
return polkit.Result.YES;
|
|
}
|
|
}
|
|
|
|
// Allow tailscale set --operator
|
|
if (program == "/usr/bin/tailscale") {
|
|
if (cmdline && cmdline.indexOf("set") >= 0 && cmdline.indexOf("--operator") >= 0) {
|
|
return polkit.Result.YES;
|
|
}
|
|
}
|
|
}
|
|
}); |