On Thu, 22 Jun 2006 08:57:21 +0200 Stephan Wezel <[EMAIL PROTECTED]> babbled:
> Am Thu, 22 Jun 2006 08:11:54 +0900
> schrieb Carsten Haitzler (The Rasterman) <[EMAIL PROTECTED]>:
>
> > On Wed, 21 Jun 2006 23:00:30 +0200 Stephan Wezel <[EMAIL PROTECTED]>
> > babbled:
> >
> > > Hi,
> > > i have written a patch with which the battery-module can run an
> > > command on alarm.
> > > E.g when the battery drops under 10 min remaining time then you
> > > can initiate the shutdown of the system.
> > >
> > > the command is currently executet via the system-fn call. If it is
> > > there a better methode to do it then let me know it.
> > >
> > > Regards
> > >
> > > Stephan Wezel
> >
> > i actually didn't want to do this. running a command is powerful- but
> > not very user friendly. the fact is that this feature appeared for a
> > reason - to shut down, suspend or such given a condition. being able
> > to shut down, suspend etc. from e directly is already a desired thing
> > - but this requires punching holes into root access, and i haven't
> > done that yet. but the proper solution (imho) is to do this (provide
> > e calls in e itself to exit e, restart e, logout, shutdown, reboot,
> > suspend, hibernate etc.) then provide a simple config dialog of "at
> > X% battery do: nothing, warning dialog, shutdown, suspend, ... etc.".
> > as a user should not have to know some obscure incantation to have
> > something like this work. it should be a simple choice. then e will
> > take care of doing that specific action. (as doing it your way a user
> > needs to figure out how to give themselevs root access - sudoers, or
> > whatever) and do it in a non-interactive way for these specific
> > commands, then actually know these commands etc. i'd rather push that
> > off int an abstracted api and a system config that defines what these
> > special suid root helper commands do (the system, admin or
> > distribution would define it in a system config or at compile time so
> > it works with the way their system works - this is specially needed
> > for suspend and hibernate at the moment as there are many different
> > ways to do that currently unlike shutdown and reboot which are
> > standard)
> yeah you are right in this case to simplify the choice for the user.
> And to gain security so that the user can only do things with
> root-rights, for these he has the rights to do it.
> I have done this in similar way as gkrellm it does.
> I would say everyone who knows how to get root access only(e.g. via
> sudo) for the needed command can use this patch :)
>
> Now is the question how would looks like the helper to to the e.g.
> shutdown, reboot, suspend, hibernate:
>
> 1. They could be standalone helper-programs which gets called from e.
> 2. Or they could be modules.
actually they HAVE to be helper-programs. modules are loadable .so's - and thus
run within the wm as the user of the wm - they have no privileges. cpufreq has
such a helper utility as part of being a module. if e does this it needs to
compile its own helper utils. the api would need to be a core part of e - like
e_syscontrol for example:
typedef enum _E_Syscontrol_Action
{
E_SYSCONTROL_ACTION_RESTART,
E_SYSCONTROL_ACTION_EXIT,
E_SYSCONTROL_ACTION_LOGOUT,
E_SYSCONTROL_ACTION_SHUTDOWN,
E_SYSCONTROL_ACTION_REBOOT,
E_SYSCONTROL_ACTION_SUSPEND,
E_SYSCONTROL_ACTION_HIBERNATE
} E_Syscontrol_Action;
int e_syscontrol_do(E_Syscontrol_Action action);
int e_syscontrol_can_do(E_Syscontrol_Action action);
and as a core part of e these can be called by any part of e or modules. the
api calls here would take care of checking if the suid-root util exists and it
has the suid bit set and is owned by root, and if so - tell you that you can do
that action (return 1 from can_do()). the util is only needed for the last 4
actions. the first 3 i put in for completeness (the first 2 will replace the
existing restart and exit code) and adding a logout (that would possibly do
things like shut down all apps and wait for them to go away or a timeout to
expire before an exit. shutdown and reboot would do the same internally).
> The module-way has the capabilities that we can define a API which
> doesn't need a call of an external programm to run the helper.
>
> A API could be look like this:
>
> hasRights() // ro check if the user has the rights to do the command
> doShutdown() // to initiate the shutdown
> doReboot() // reboot the machine
> etc.
>
> the hasRights could either have an parameter for the command to check
> or we have for each command a seperate hasRights<command>-function
>
> >
> > > --
> > > Ein Ring, sie zu knechten, sie alle zu finden,
> > > Ins Dunkel zu treiben und ewig zu binden
> > > Im Lande Mordor, wo die Schatten drohn.
> >
> >
>
>
> --
> Ein Ring, sie zu knechten, sie alle zu finden,
> Ins Dunkel zu treiben und ewig zu binden
> Im Lande Mordor, wo die Schatten drohn.
>
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) [EMAIL PROTECTED]
裸好多
Tokyo, Japan (東京 日本)
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel