From fc72be36ad41cddab485e7f045f0391c397a1b81 Mon Sep 17 00:00:00 2001 From: Richard Darst Date: Wed, 1 Aug 2018 23:42:06 +0300 Subject: [PATCH] Update group handling: set primary gid, leave suplemental with group users - If NB_GID is set, it is likely that files created should have NB_GID as their gid (if it doesn't matter, then this change is irrelevant. If it does matter, the liklihood that 100 matches with what the user wants is low). - When NB_GID is set, create a new group with that gid. Then, set this as the primary gid of the user. Set the user's supplemental gids to NB_GID,100. --- base-notebook/start.sh | 7 ++++--- base-notebook/test/test_container_options.py | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/base-notebook/start.sh b/base-notebook/start.sh index 3cde6105..02e3f071 100755 --- a/base-notebook/start.sh +++ b/base-notebook/start.sh @@ -70,11 +70,12 @@ if [ $(id -u) == 0 ] ; then usermod -u $NB_UID $NB_USER fi - # Add NB_USER to NB_GID if it's not the default group + # Set NB_USER primary gid to NB_GID (after making the group). Set + # supplementary gids to NB_GID and 100. if [ "$NB_GID" != $(id -g $NB_USER) ] ; then echo "Add $NB_USER to group: $NB_GID" - groupadd -g $NB_GID -o $NB_USER - usermod -a -G $NB_GID $NB_USER + groupadd -g $NB_GID -o ${NB_GROUP:-${NB_USER}} + usermod -g $NB_GID -a -G $NB_GID,100 $NB_USER fi # Enable sudo if requested diff --git a/base-notebook/test/test_container_options.py b/base-notebook/test/test_container_options.py index 5ec04f61..451074c8 100644 --- a/base-notebook/test/test_container_options.py +++ b/base-notebook/test/test_container_options.py @@ -57,8 +57,8 @@ def test_gid_change(container): ) c.wait(timeout=10) logs = c.logs(stdout=True).decode('utf-8') - assert 'gid=100(users)' in logs - assert 'groups=100(users),110(jovyan)' in logs + assert 'gid=110(jovyan)' in logs + assert 'groups=110(jovyan),100(users)' in logs def test_sudo(container):