Looking for a way to give certain trusted users the ability to execute certain admin actions on my server (such as stopping containers, shutting down, rebooting, etc...)
I want to allow certain trusted users the ability to take down my lemmy instance or reboot it or x, y, z actions in case things go wrong or there is a security incident.
Ideally I would want to have some sort of admin interface that's secure and tested and allow these users to have some sort of login and from there have the ability to execute certain actions that could correspond to a "break glass in case of emergency" scenario.
I've been pointed at https://www.portainer.io/ but they seem to have a steep price for the limited use-case that I would be giving it.
I know about some admin interfaces like webmin, but I don't know which one allow you to create very restricted users or just give users the ability to execute some limited pre-defined commands.
Cockpit is quite mature and sponsored by Red Hat. Your users can log in with their normal account on the system which you can lockdown however you want.
Slightly off topic, but are there not security concerns about opening up a portainer instance to the internet? I run portainer for all of my intranet hosted containers but I have reservations about running either the agent or portainer itself on something external to my lan. It seems like an easy attack vector but maybe I'm just overly worried?
Ya, I've got a few public services out there and I would love for a better way to manage them. But the fewer ports I open the better. I think there's also portainer edge agent that's more secure for prod environments, but I've yet to look into it much.
I have reservations about running either the agent or portainer itself on something external to my lan.
I don't feel like it's safe enough personally either, so I just have portainer edge-agent nodes connected to the primary on my intranet through through vpn tunnels. I really, really would prefer not to ever open ports on my local firewall, but being able to monitor and control remote docker hosts is also pretty convenient, so my solution has been decent for me.
Possibly, but it would have to be so severely locked down that it makes more sense to have a web interface with a few buttons that do some very basic actions, including making my phone ring or stuff like that.
That seems almost exactly what the sudoers file is meant for.
If several actions have to happen at once (call the phone first), or need parameters, or need a kill switch, that is what a script with the SETUID bit does.