** Also affects: cloud-init (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: cloud-init (Ubuntu Xenial)
   Importance: Undecided => Medium

** Changed in: cloud-init (Ubuntu Xenial)
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1619393

Title:
  cloud-init useradd/groupadd fails on ubuntu-core-16 with readonly
  /etc/passwd

Status in cloud-init:
  Fix Committed
Status in cloud-init package in Ubuntu:
  Fix Released
Status in cloud-init source package in Xenial:
  Confirmed

Bug description:
  === Begin SRU Template ===
  [Impact] 
  When running under ubuntu-core 16 images, /etc/passwd is read-only.

  If my user-data includes any non-default username, creation fails due to
  the read-only nature of the image.

  This is addressed by useradd/groupadd including a command line flag, 
--extrausers
  which instructs the command to look for a different user/group database in
  /var/lib/extrausers , which is writable in the ubuntu-core 16 image.

  [Test Case]
  In a snappy image that has cloud-init enabled, launch image with the 
  following user-data:
   #cloud-config
   users:
     - name: bob
       snapuser: b...@bobcom.io

  And also:
   #cloud-config
   snappy:
     email: b...@bobcom.io

  where 'b...@bobcom.io' is your launchpad registered email address.
  Assume you can log in.

  [Regression Potential] 
  The code is intended to be backwards compatible and inert unless 
  cloud-config provided turns it on.  It is also gated by a 'system_is_snappy'
  method that checks if the system is snappy (ubuntu core).

  Unit tests are provided, so regression should be somewhat reduced.

  Some code was moved around to implement this, and a new config module
  was added.

  
  [Other Info]
  The upstream change made here is at [1]

  [1] https://git.launchpad.net/cloud-
  init/commit?id=d8534561ba76db25b6fc0044eb1bfda63686e859

  === End SRU Template ===


  When running under ubuntu-core 16 images, /etc/passwd is read-only.

  If my user-data includes any non-default username, creation fails due to
  the read-only nature of the image.

  This is addressed by useradd/groupadd including a command line flag, 
--extrausers
  which instructs the command to look for a different user/group database in
  /var/lib/extrausers , which is writable in the ubuntu-core 16 image.

  The cc_user_groups module though is not aware of this.

  The Distro base-class could check if the system it's running on is snappy 
(see cc_snappy.py)
  and if so, append the --extrausers parameter to the useradd/groupadd commands.

  1) release is Xenial (ubuntu-core 16)
  2) cloud-init present is: 0.7.7~bzr1256-0ubuntu1~16.04.1
  3) useradd bob -m should create the user bob
  4) useradd fails due to readonly /etc/{passwd,group,shadow}

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1619393/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to