in reply to Re: Building a web-based system administration interface in Perl
in thread Building a web-based system administration interface in Perl
- be really paranoid about all data coming from the network
That's what "taint mode" is about, right? :)
- survive a perl upgrade, both by an automatic system update and by a "cutting-edge-admin"
Seems reasonable.
- work with old perl versions (think "Debian oldstable", i.e. 5.8.8, or even older)
I still use mainly perl 5.8.8, but I don't plan any compatibility with 5.6 or older. It may works of course, but I won't even try.
- have few external requirements (don't require Oracle 11i just to store sessions, don't require half of CPAN)
That's natural. It will be somewhat self-contained. However It will use CPAN modules and not some strange weirdo version packaged inside like webmin does.
- be pure perl
Mostly. I don't plan using anything but perl, but it will be using XS modules.
- bring its own web server
Sorry, no. I won't buy this one. There are too many fine webservers (even Perl ones). It won't be specific to any, but it won't carry one. For a start we'll work with SSL Apache2... I don't see the point of embedding a webserver, except maybe at a later stage for an easier quick and dirty deployment (but I'm too wary of "quick n' dirty" that lasts forever).
- be able to use PAM for authentication and authorisation
Yes, this is one of the first planned features :)
- work with all, or at least most Linux distributions, the *BSDs, Solaris, and whatever looks roughly like a Unix, even if it was relased five years ago
My main target right now is Linux. I don't see any reason why it wouldn't work on any distribution. For BSDs and Solaris, it will probably work but some modules (file sharing, network configuration, etc) will need an OS specific rewrite. However I'd rather have different modules for different OSes than "webmin style" modules, because it will make the code much simpler and cleaner.
- be modular, allowing to add plugins for my microwave oven and my server room laser defense system
Yes, this one is extremely important. We'll need an easy API to ease the way of anyone wanting to write a module. eBox is extremely good so I'll copy them shamelessly :)
- be fast and lightweight. Webmins image-based headlines just SUCK!
Well I'll do my best :)
- not require Javascript, Java, Flash or other Plugins. Using those features to ENHANCE the interface is ok, but the basic interface should be plain (and valid) HTML or XHTML. Some plugins may be excepted from this rule, like an SSH oder VNC client in a Java-Applet.
Right now it's still a matter of discussion with my team. I'm absolutely with you, but it's clear that making AJAX UIs that works flawlessly in links is a challenge. I still don't know how we'll sort this out; making a good, modern and easy to use interface is also a top priority.
The interface should ALWAYS run as unprivileged user. A small, separate process should do the privileged work, and that process should not communicate with the browser. And that process is not invoked via the shell, but directly (i.e. NO system "command and parameters"), just to avoid nasty shell surprises.
I'm eager to ear more for this one :) Right now I think the easiest thing to do is to use a "sudo" module, like eBox, but limits the unprivileged user (in /etc/sudoers) to execute one particular perl program, which will carry the privileged chores through an API (that limits somewhat what can and can't be done). Any other suggestion welcome...
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Building a web-based system administration interface in Perl
by afoken (Chancellor) on Apr 08, 2009 at 21:49 UTC | |
by wazoox (Prior) on Apr 09, 2009 at 10:14 UTC | |
by afoken (Chancellor) on Apr 09, 2009 at 16:57 UTC | |
by wazoox (Prior) on Apr 10, 2009 at 10:20 UTC |