It already exists mechanism (scripts) that are run by useradd and
userdel. These scripts are:

/usr/sbin/useradd.local
/usr/sbin/userdel-pre.local
/usr/sbin/userdel-post.local

hooking it is really easy.

Best regards
José

On mer, 2014-03-05 at 15:17 +0200, Jussi Laako wrote:
> Hi,
> 
> On 5.3.2014 2:57, Stéphane Desneux wrote:
> > The basic idea would be to have 2+ hooks directories where some scripts
> > installed by packages could be executed at different times by gumd:
> > - /etc/gumd/useradd.d : hooks to be called when a new user is created
> > - /etc/gumd/userdel.d : hooks to be called when a user is deleted (to
> > remove some resources not stored in user homedir)
> > - ... other hooks (needed?)
> 
> This is good idea and we've discussed about it already before. We will 
> add this functionality...
> 
> > ${prio}_${name}.${when}
> > where:
> > - $prio ranges from 00 to 99,
> > - $name would be anything relevant: [a-zA-Z0-9_-]+ . source package name
> > is a good name !
> > - $when is "pre" or "post"
> >
> > Examples:
> >    /etc/gumd/useradd.d/10_bigbang.pre
> >    /etc/gumd/userdel.d/99_armageddon.post
> 
> OK, we'll do this too. However, I'm thinking that we'll do it in a way 
> that doesn't mandate this format. So you can omit priority and/or the 
> pre/post suffix. In this case scripts are run in alphabetical order, 
> post-add or pre-remove. Makes things simpler for most normal cases. 
> We'll do the matching equivalent for groups too.
> 
> However I'm not sure about usefulness of pre-add and post-remove 
> scripts, because the user doesn't exist yet so things like file 
> permissions cannot be set.
> 
> For the arguments, we've been thinking <username> <userid> <homegroup> 
> <homedir>, is this sufficient?
> 
> > Questions
> > ---------
> >
> > Is gumd the right location to do those things ?
> 
> Yes... :)
> 
> > Do we need to distinguish pre and post scripts ? post-creation and
> > pre-deletion may be sufficient ?
> 
> I believe post-create and pre-delete would be sufficient. Pre-create and 
> post-delete are a bit dangerous, but we can support this if there are 
> valid use cases.
> 
> > Scripts should be executed sequentially (synchronously) because some
> > init scripts could depend on others. What about "long" scripts ? Execute
> > with a kill timeout ?
> 
> Problem with timeouts is that timeouts are hard to define and usually 
> things start to take longer time as the system ages. For example 
> pre-delete script could take a long time if it needs to delete 100k 
> photos consuming 100 gigabytes of space. Killing a script in the middle 
> could leave a system in some really strange state.
> 
> > What happens if a script fails ? (solution 1: ignore. solution 2: abort
> > user creation)
> 
> Maybe that should be reported back to the GUI/app as result to the dbus 
> call. We are now discussing how to do it. Without changing the dbus API 
> we could send script status signals for request id. Doing it even more 
> proper, we could return an operation object and signal status updates 
> and completion on the operation object.
> 
> Practically it needs to be just ignored, but at least from developer 
> point of view it would be good to know and in case something failed such 
> as out of disk space for ordinary user, it would be good to know that 
> user may not be completely successfully setup. In the end, the decision 
> is up to the app/GUI making a user add/remove call.
> 
> > Security concerns ?
> 
> Not really, since the scripts are located in controlled place.
> 
> One interesting aspect is running the scripts as root vs running the 
> script as the user...
> 
> 
> Best regards,
> 
>       - Jussi
> 
> _______________________________________________
> Dev mailing list
> [email protected]
> https://lists.tizen.org/listinfo/dev


_______________________________________________
Dev mailing list
[email protected]
https://lists.tizen.org/listinfo/dev

Reply via email to