Hey Alex! Thanks for looking at it.

Sure, I've added some checks for open/dup2 (and exiting the child).

On execl, I've kept the similar logic than the rest of the code, meaning:
- don't check for execl return value.
- if something bad happen, execl returns.
- we go on the next line which is a perror() + exit.

On the strrstr(), I found it more clear than the offset and future-proof
than hardcoding *pname. I don't have a strong opinion though TBH, so I
have just hardcoded "zsys" directly as you suggested.

I've attached a new version of the patch.

** Patch added: "1015_add_zsys_support.patch"

You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to shadow in Ubuntu.

  FFe: create zfs dataset for each user automatically

Status in shadow package in Ubuntu:
Status in zsys package in Ubuntu:

Bug description:
  Part of the zsys spec is creating/associating one user dataset for
  each HOME user.

  As zsys is an official experimentation for 19.10, we would like to
  include this feature in a safe way, and reachable for any tool
  creating users (adduser, gnome-control-center, ubiquity…). Those are
  using useradd under the scene.

  For this, the proposed implementation:
  - patch useradd trying to execute "zsys useradd create USER HOMEDIR". If zsys 
isn't present or zsys returns a status code != 0 (which will be the case if the 
running system isn't a zsys one: pure zfs or non zfs like / on ext4), it will 
fallback to mkdir. Then the code does the usual chmod()
  - patch usermod, trying as well to execute "zsys useradd rename-home OLDHOME 
NEWHOME". Same failing reason (not a zsys system, not installed, OLDHOME isn't 
a zsys handled datasets) and fallback to rename(). Then the code does the usual 

  Tested with and without zsys installed, the code does what we expect.

  I'm attaching the shadow (useradd/usermod) patches, as you can see it's very 
  A new ZSYS release will be needed (https://github.com/ubuntu/zsys). As you 
can see, there are quite some commits since the last release, but it's all 
baked (as usual) by a huge suite of tests (in ZFS and machine layers) with 
corner cases tested and such. I'm confident on that change.

To manage notifications about this bug go to:

Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to