You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2022/03/09 21:25:28 UTC
[ranger] branch ranger-2.3 updated: RANGER-3658: Docker setup updated to run Ranger containers with ranger user identity
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch ranger-2.3
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/ranger-2.3 by this push:
new 626b822 RANGER-3658: Docker setup updated to run Ranger containers with ranger user identity
626b822 is described below
commit 626b8222c058fa381b943c16262da8e87ff50098
Author: Madhan Neethiraj <ma...@apache.org>
AuthorDate: Tue Mar 8 08:23:54 2022 -0800
RANGER-3658: Docker setup updated to run Ranger containers with ranger user identity
(cherry picked from commit 63ae590864def7c33d9c2b0b8f8a2faca202abfb)
---
dev-support/ranger-docker/Dockerfile.ranger | 2 ++
.../ranger-docker/Dockerfile.ranger-tagsync | 11 +++++++++-
.../ranger-docker/Dockerfile.ranger-usersync | 11 +++++++++-
.../ranger-docker/scripts/ranger-tagsync.sh | 2 +-
.../ranger-docker/scripts/ranger-usersync.sh | 2 +-
dev-support/ranger-docker/scripts/ranger.sh | 4 ++--
tagsync/scripts/setup.py | 10 ++++-----
unixauthservice/scripts/setup.py | 24 +++++++++++++---------
8 files changed, 44 insertions(+), 22 deletions(-)
diff --git a/dev-support/ranger-docker/Dockerfile.ranger b/dev-support/ranger-docker/Dockerfile.ranger
index 16492d4..b3b75c5 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger
+++ b/dev-support/ranger-docker/Dockerfile.ranger
@@ -36,4 +36,6 @@ RUN tar xvfz /home/ranger/dist/ranger-${RANGER_VERSION}-admin.tar.gz --directory
mkdir -p /usr/share/java/ && \
mv /home/ranger/dist/postgresql-42.2.16.jre7.jar /usr/share/java/postgresql.jar
+USER ranger
+
ENTRYPOINT [ "/home/ranger/scripts/ranger.sh" ]
diff --git a/dev-support/ranger-docker/Dockerfile.ranger-tagsync b/dev-support/ranger-docker/Dockerfile.ranger-tagsync
index 31f8446..28dadd4 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger-tagsync
+++ b/dev-support/ranger-docker/Dockerfile.ranger-tagsync
@@ -34,6 +34,15 @@ RUN tar xvfz /home/ranger/dist/ranger-${RANGER_VERSION}-tagsync.tar.gz --directo
mkdir -p /var/run/ranger && \
mkdir -p /var/log/ranger/tagsync && \
ln -s /usr/bin/python3 /usr/bin/python && \
- chown -R ranger:ranger ${RANGER_HOME}/tagsync/ /var/run/ranger/ /var/log/ranger/
+ mkdir -p /etc/ranger && \
+ touch /etc/init.d/ranger-tagsync && \
+ ln -s /etc/init.d/ranger-tagsync /etc/rc2.d/S99ranger-tagsync && \
+ ln -s /etc/init.d/ranger-tagsync /etc/rc2.d/K00ranger-tagsync && \
+ ln -s /etc/init.d/ranger-tagsync /etc/rc3.d/S99ranger-tagsync && \
+ ln -s /etc/init.d/ranger-tagsync /etc/rc3.d/K00ranger-tagsync && \
+ ln -s ${RANGER_HOME}/tagsync/ranger-tagsync-services.sh /usr/bin/ranger-tagsync-services.sh && \
+ chown -R ranger:ranger ${RANGER_HOME}/tagsync/ /var/run/ranger/ /var/log/ranger/ /etc/ranger /etc/init.d/ranger-tagsync
+
+USER ranger
ENTRYPOINT [ "/home/ranger/scripts/ranger-tagsync.sh" ]
diff --git a/dev-support/ranger-docker/Dockerfile.ranger-usersync b/dev-support/ranger-docker/Dockerfile.ranger-usersync
index b1738f8..ba7859e 100644
--- a/dev-support/ranger-docker/Dockerfile.ranger-usersync
+++ b/dev-support/ranger-docker/Dockerfile.ranger-usersync
@@ -31,6 +31,15 @@ RUN tar xvfz /home/ranger/dist/ranger-${RANGER_VERSION}-usersync.tar.gz --direct
mkdir -p /var/run/ranger && \
mkdir -p /var/log/ranger/usersync && \
ln -s /usr/bin/python3 /usr/bin/python && \
- chown -R ranger:ranger ${RANGER_HOME}/usersync/ /var/run/ranger/ /var/log/ranger/
+ mkdir -p /etc/ranger && \
+ touch /etc/init.d/ranger-usersync && \
+ ln -s /etc/init.d/ranger-usersync /etc/rc2.d/S99ranger-usersync && \
+ ln -s /etc/init.d/ranger-usersync /etc/rc2.d/K00ranger-usersync && \
+ ln -s /etc/init.d/ranger-usersync /etc/rc3.d/S99ranger-usersync && \
+ ln -s /etc/init.d/ranger-usersync /etc/rc3.d/K00ranger-usersync && \
+ ln -s ${RANGER_HOME}/usersync/ranger-usersync-services.sh /usr/bin/ranger-usersync && \
+ chown -R ranger:ranger ${RANGER_HOME}/usersync/ /var/run/ranger/ /var/log/ranger/ /etc/ranger /etc/init.d/ranger-usersync
+
+USER ranger
ENTRYPOINT [ "/home/ranger/scripts/ranger-usersync.sh" ]
diff --git a/dev-support/ranger-docker/scripts/ranger-tagsync.sh b/dev-support/ranger-docker/scripts/ranger-tagsync.sh
index f761394..88fb524 100755
--- a/dev-support/ranger-docker/scripts/ranger-tagsync.sh
+++ b/dev-support/ranger-docker/scripts/ranger-tagsync.sh
@@ -31,7 +31,7 @@ then
touch ${RANGER_HOME}/.setupDone
fi
-su -c "cd ${RANGER_HOME}/tagsync && ./ranger-tagsync-services.sh start" ranger
+cd ${RANGER_HOME}/tagsync && ./ranger-tagsync-services.sh start
RANGER_TAGSYNC_PID=`ps -ef | grep -v grep | grep -i "org.apache.ranger.tagsync.process.TagSynchronizer" | awk '{print $2}'`
diff --git a/dev-support/ranger-docker/scripts/ranger-usersync.sh b/dev-support/ranger-docker/scripts/ranger-usersync.sh
index 48287d2..63f94ad 100755
--- a/dev-support/ranger-docker/scripts/ranger-usersync.sh
+++ b/dev-support/ranger-docker/scripts/ranger-usersync.sh
@@ -31,7 +31,7 @@ then
touch ${RANGER_HOME}/.setupDone
fi
-su -c "cd ${RANGER_HOME}/usersync && ./start.sh" ranger
+cd ${RANGER_HOME}/usersync && ./start.sh
RANGER_USERSYNC_PID=`ps -ef | grep -v grep | grep -i "org.apache.ranger.authentication.UnixAuthenticationService" | awk '{print $2}'`
diff --git a/dev-support/ranger-docker/scripts/ranger.sh b/dev-support/ranger-docker/scripts/ranger.sh
index 46030b1..6648724 100755
--- a/dev-support/ranger-docker/scripts/ranger.sh
+++ b/dev-support/ranger-docker/scripts/ranger.sh
@@ -26,12 +26,12 @@ fi
if [ "${SETUP_RANGER}" == "true" ]
then
- su -c "cd ${RANGER_HOME}/admin && ./setup.sh" ranger
+ cd ${RANGER_HOME}/admin && ./setup.sh
touch ${RANGER_HOME}/.setupDone
fi
-su -c "cd ${RANGER_HOME}/admin && ./ews/ranger-admin-services.sh start" ranger
+cd ${RANGER_HOME}/admin && ./ews/ranger-admin-services.sh start
if [ "${SETUP_RANGER}" == "true" ]
then
diff --git a/tagsync/scripts/setup.py b/tagsync/scripts/setup.py
index 1b88ae2..6ac3056 100755
--- a/tagsync/scripts/setup.py
+++ b/tagsync/scripts/setup.py
@@ -318,16 +318,14 @@ def initializeInitD():
for prefix in initPrefixList:
scriptFn = prefix + initdProgramName
scriptName = join(rcDir, scriptFn)
- if isfile(scriptName):
- os.remove(scriptName)
+ if not (isfile(scriptName) or os.path.islink(scriptName)):
+ os.symlink(initdFn,scriptName)
#print "+ ln -sf %s %s" % (initdFn, scriptName)
- os.symlink(initdFn,scriptName)
tagSyncScriptName = "ranger-tagsync-services.sh"
localScriptName = os.path.abspath(join(installPropDirName,tagSyncScriptName))
ubinScriptName = join("/usr/bin",tagSyncScriptName)
- if isfile(ubinScriptName) or os.path.islink(ubinScriptName):
- os.remove(ubinScriptName)
- os.symlink(localScriptName,ubinScriptName)
+ if not (isfile(ubinScriptName) or os.path.islink(ubinScriptName)):
+ os.symlink(localScriptName,ubinScriptName)
def write_env_files(exp_var_name, log_path, file_name):
final_path = "{0}/{1}".format(confBaseDirName,file_name)
diff --git a/unixauthservice/scripts/setup.py b/unixauthservice/scripts/setup.py
index be64278..be15c59 100755
--- a/unixauthservice/scripts/setup.py
+++ b/unixauthservice/scripts/setup.py
@@ -343,15 +343,13 @@ def initializeInitD(ownerName):
for prefix in initPrefixList:
scriptFn = prefix + initdProgramName
scriptName = join(rcDir, scriptFn)
- if isfile(scriptName) or os.path.islink(scriptName):
- os.remove(scriptName)
- os.symlink(initdFn, scriptName)
+ if not (isfile(scriptName) or os.path.islink(scriptName)):
+ os.symlink(initdFn, scriptName)
userSyncScriptName = "ranger-usersync-services.sh"
localScriptName = os.path.abspath(join(RANGER_USERSYNC_HOME, userSyncScriptName))
ubinScriptName = join("/usr/bin", initdProgramName)
- if isfile(ubinScriptName) or os.path.islink(ubinScriptName):
- os.remove(ubinScriptName)
- os.symlink(localScriptName, ubinScriptName)
+ if not (isfile(ubinScriptName) or os.path.islink(ubinScriptName)):
+ os.symlink(localScriptName, ubinScriptName)
def createJavaKeystoreForSSL(fn, passwd):
@@ -574,15 +572,21 @@ def main():
os.chmod(fn, 0o750)
if isfile(nativeAuthProgramName):
- os.chown(nativeAuthProgramName, rootOwnerId, groupId)
- os.chmod(nativeAuthProgramName, 0o750)
+ try:
+ os.chown(nativeAuthProgramName, rootOwnerId, groupId)
+ os.chmod(nativeAuthProgramName, 0o750)
+ except PermissionError:
+ print("WARNING: chmod(4550), chown(%s:%s) failed for Unix Authentication Program (%s) " % ("root", groupName, nativeAuthProgramName))
else:
print("WARNING: Unix Authentication Program (%s) is not available for setting chmod(4550), chown(%s:%s) " % (
nativeAuthProgramName, "root", groupName))
if isfile(pamAuthProgramName):
- os.chown(pamAuthProgramName, rootOwnerId, groupId)
- os.chmod(pamAuthProgramName, 0o750)
+ try:
+ os.chown(pamAuthProgramName, rootOwnerId, groupId)
+ os.chmod(pamAuthProgramName, 0o750)
+ except PermissionError:
+ print("WARNING: chmod(0o750), chown(%s:%s) failed for Unix Authentication Program (%s) " % ("root", groupName, pamAuthProgramName))
else:
print("WARNING: Unix Authentication Program (%s) is not available for setting chmod(4550), chown(%s:%s) " % (
pamAuthProgramName, "root", groupName))