diff --git a/python/LbDocker/__data/bin-lb-su b/python/LbDocker/__data/bin-lb-su index 0e3ce1e4efade0facfeaf6fcd66ab408e4b19725..830d8c57771e1482e8f8f97fe24d1021fb5c7992 100755 --- a/python/LbDocker/__data/bin-lb-su +++ b/python/LbDocker/__data/bin-lb-su @@ -10,6 +10,16 @@ then export WORKSPACE_GROUP=`echo $WORK_USER | cut -d ":" -f 2` export WORKSPACE_USER=`echo $WORK_USER | cut -d ":" -f 1` + if [-z $WORK_USER_ID ] + then + + export WORKSPACE_GROUP_ID=`stat -c %g $PWD` + export WORKSPACE_USER_ID=`stat -c %u $PWD` + else + export WORKSPACE_GROUP_ID=`echo $WORK_USER_ID | cut -d ":" -f 2` + export WORKSPACE_USER_ID=`echo $WORK_USER_ID | cut -d ":" -f 1` + fi + dockerCP=false if [ -z $dockerHome ] then @@ -26,10 +36,10 @@ then fi set -e - getent group $(stat -c %g $PWD) > /dev/null || groupadd -g $(stat -c %g $PWD) $WORKSPACE_GROUP + getent group $WORKSPACE_GROUP_ID > /dev/null || groupadd -g $WORKSPACE_GROUP_ID $WORKSPACE_GROUP if ! getent passwd $(stat -c %u $PWD) > /dev/null then - adduser -g $(stat -c %g $PWD) -u $(stat -c %u $PWD) -s /bin/bash -G wheel $WORKSPACE_USER 2> /dev/null + adduser -g $(stat -c %g $PWD) -u $WORKSPACE_USER_ID -s /bin/bash -G wheel $WORKSPACE_USER 2> /dev/null set +e if [ `ls -A "$dockerHome" | wc -c` -eq 0 -o ! -f "${dockerHome}/.bashrc" ] diff --git a/python/LbDocker/__data/bin-lb-su_slc5 b/python/LbDocker/__data/bin-lb-su_slc5 index 5aedfc5d8187e785546b65c664550e1af7485aa9..6abc6acc6eed18f192b9228c114434b9aa63662d 100755 --- a/python/LbDocker/__data/bin-lb-su_slc5 +++ b/python/LbDocker/__data/bin-lb-su_slc5 @@ -10,6 +10,16 @@ then export WORKSPACE_GROUP=`echo $WORK_USER | cut -d ":" -f 2` export WORKSPACE_USER=`echo $WORK_USER | cut -d ":" -f 1` + if [-z $WORK_USER_ID ] + then + + export WORKSPACE_GROUP_ID=`stat -c %g $PWD` + export WORKSPACE_USER_ID=`stat -c %u $PWD` + else + export WORKSPACE_GROUP_ID=`echo $WORK_USER_ID | cut -d ":" -f 2` + export WORKSPACE_USER_ID=`echo $WORK_USER_ID | cut -d ":" -f 1` + fi + dockerCP=false if [ -z $dockerHome ] then @@ -26,10 +36,10 @@ then fi set -e - getent group $(stat -c %g $PWD) > /dev/null || groupadd -g $(stat -c %g $PWD) $WORKSPACE_GROUP + getent group $WORKSPACE_GROUP_ID > /dev/null || groupadd -g $WORKSPACE_GROUP_ID $WORKSPACE_GROUP if ! getent passwd $(stat -c %u $PWD) > /dev/null then - adduser -g $(stat -c %g $PWD) -u $(stat -c %u $PWD) -s /bin/bash -G wheel $WORKSPACE_USER 2> /dev/null + adduser -g $(stat -c %g $PWD) -u $WORKSPACE_USER_ID -s /bin/bash -G wheel $WORKSPACE_USER 2> /dev/null set +e if [ `ls -A "$dockerHome" | wc -c` -eq 0 -o ! -f "${dockerHome}/.bashrc" ] diff --git a/scripts/lb-docker-run b/scripts/lb-docker-run index 64d21d74117894fb81894a7c3d8f8f7c209aff1a..247860b0f607f8a6fd048fa1c2287fc574154413 100755 --- a/scripts/lb-docker-run +++ b/scripts/lb-docker-run @@ -33,6 +33,7 @@ def stop_threads(): cwd = os.getcwd() cwd_stat = os.stat(cwd) +userId = cwd_stat.st_uid userName = pwd.getpwuid(cwd_stat.st_uid).pw_name grpId = cwd_stat.st_gid grpName = grp.getgrgid(cwd_stat.st_gid).gr_name @@ -174,6 +175,7 @@ if options.user: cmd.extend(['-u', options.user]) else: options.envVar.extend(['WORK_USER=' + userName + ':' + grpName]) + options.envVar.extend(['WORK_USER_ID={0}:{1}'.format(userId, grpId)]) for env in options.envVar: cmd.extend(['-e', env])