Close #709: Improve user creation (#725)

* Allow to specify a custom username in "pmbootstrap init"
* Build chroots have "pmos" instead of "user" as username now
* Installation user UID is 1000 now (as in all other Linux distributions)
* Adjust autologins
* postmarketos-base: enable wheel group for sudo, removed previous sudoers file
* Implement safe upgrade path:
We save the version of the work folder format now, in $WORK/version.
When this file does not exist, it defaults to 0.
In case it does not match the currently required version
(pmb.config.work_version), then ask the user if it should
automatically be upgraded.
This commit is contained in:
Pablo Castellano 2017-10-12 22:08:10 +02:00 committed by Oliver Smith
parent 75210b5cb5
commit b4dd7a89d2
45 changed files with 229 additions and 106 deletions

View file

@ -113,9 +113,16 @@ def init(args, suffix="native"):
pmb.chroot.root(args, ["apk", "fix"], suffix,
auto_init=False)
# Add user (-D: don't assign password)
logging.debug("Add user")
pmb.chroot.root(args, ["adduser", "-D", "user", "-u", pmb.config.chroot_uid_user],
suffix, auto_init=False)
pmb.chroot.root(args, ["chown", "-R", "user:user", "/home/user"],
suffix)
# Building chroots: create "pmos" user, add symlinks to /home/pmos
if not suffix.startswith("rootfs_"):
pmb.chroot.root(args, ["adduser", "-D", "pmos", "-u",
pmb.config.chroot_uid_user], suffix, auto_init=False)
# Create the links (with subfolders if necessary)
for target, link_name in pmb.config.chroot_home_symlinks.items():
link_dir = os.path.dirname(link_name)
if not os.path.exists(chroot + link_dir):
pmb.chroot.user(args, ["mkdir", "-p", link_dir], suffix)
pmb.chroot.user(args, ["ln", "-s", target, link_name], suffix)
pmb.chroot.root(args, ["chown", "pmos:pmos", target],
suffix)