-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
GRP-2782: grouper running with nonroot and non supervisor
- Loading branch information
mchyzer
committed
May 11, 2020
1 parent
7c0eefd
commit 47e7171
Showing
12 changed files
with
330 additions
and
67 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
108 changes: 108 additions & 0 deletions
108
container_files/tier-support/test/grouperContainerUnitTestUiSubimage.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,108 @@ | ||
| #!/bin/bash | ||
|
|
||
| testContainerUiSubimage() { | ||
|
|
||
| if [ "$#" -ne 0 ]; then | ||
| echo "You must enter exactly 0 command line arguments" | ||
| exit 1 | ||
| fi | ||
|
|
||
| dockerRemoveContainer | ||
| dockerRemoveSubimage | ||
|
|
||
| subimageId="my_$containerName" | ||
| subimageName="$subimageId:latest" | ||
|
|
||
| echo "" > Dockerfile | ||
| echo "FROM $imageName" >> Dockerfile | ||
| echo "ENV GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES 1.1.1.1/32" >> Dockerfile | ||
| echo "" >> Dockerfile | ||
|
|
||
| echo | ||
| echo '################' | ||
| echo Running container with subimage as ui | ||
| echo cat DockerFile | ||
| cat Dockerfile | ||
| echo "docker build -t $subimageId ." | ||
| echo "docker run --detach --name $containerName --publish 443:443 $subimageId ui" | ||
| echo '################' | ||
| echo | ||
|
|
||
| docker build -t "$subimageId" . | ||
|
|
||
| docker run --detach --name $containerName --publish 443:443 $subimageId ui | ||
| sleep $globalSleepSecondsAfterRun | ||
|
|
||
| assertFileExists /opt/grouper/grouperWebapp/WEB-INF/libWs/axis2-kernel-1.6.4.jar | ||
| assertFileNotExists /opt/grouper/grouperWebapp/WEB-INF/lib/axis2-kernel-1.6.4.jar | ||
| assertFileExists /opt/grouper/grouperWebapp/WEB-INF/libScim/stax-api-1.0-2.jar | ||
| assertFileNotExists /opt/grouper/grouperWebapp/WEB-INF/lib/stax-api-1.0-2.jar | ||
| assertFileExists /opt/grouper/grouperWebapp/WEB-INF/lib/grouper-messaging-activemq-2.5.27.jar | ||
| assertFileExists /opt/grouper/grouperWebapp/WEB-INF/libUiAndDaemon/grouper-messaging-activemq-2.5.27.jar | ||
|
|
||
| assertFileContains /etc/httpd/conf.d/ssl-enabled.conf "Listen 443 https" | ||
| assertFileNotContains /etc/httpd/conf.d/ssl-enabled.conf "__" | ||
| assertFileContains /etc/httpd/conf/httpd.conf "Listen 80" | ||
| assertFileContains /opt/tier-support/supervisord.conf "program:shibbolethsp" | ||
| assertFileContains /opt/tier-support/supervisord.conf "program:tomee" | ||
| assertFileContains /opt/tier-support/supervisord.conf "program:httpd" | ||
| assertFileContains /opt/tier-support/supervisord.conf "user=shibd" | ||
| assertFileNotContains /opt/tier-support/supervisord.conf "program:hsqldb" | ||
| assertFileNotContains /opt/tier-support/supervisord.conf "__" | ||
| assertFileContains /etc/httpd/conf.d/ssl-enabled.conf cachain.pem | ||
| assertFileNotContains /etc/httpd/conf.d/ssl-enabled.conf /etc/pki/tls/certs/localhost.crt | ||
|
|
||
| assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "/tmp/logpipe" | ||
| assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-ui;" | ||
|
|
||
| assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties grouperPasswordConfigOverride_UI_GrouperSystem_pass.elConfig | ||
| assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties thisPassIsCopyrightedDontUse | ||
|
|
||
| assertFileContains /etc/httpd/conf.d/grouper-www.conf "3600" | ||
| assertFileNotContains /etc/httpd/conf.d/grouper-www.conf "__" | ||
|
|
||
| assertEnvVar GROUPERSCIM_PROXY_PASS "#" | ||
| assertEnvVar GROUPERSCIM_URL_CONTEXT "grouper-ws-scim" | ||
| assertEnvVar GROUPERWS_PROXY_PASS "#" | ||
| assertEnvVar GROUPERWS_URL_CONTEXT "grouper-ws" | ||
| assertEnvVar GROUPER_APACHE_AJP_TIMEOUT_SECONDS "3600" | ||
| assertEnvVar GROUPER_APACHE_NONSSL_PORT "80" | ||
| assertEnvVar GROUPER_APACHE_SSL_PORT "443" | ||
| assertEnvVar GROUPER_CHOWN_DIRS "true" | ||
| assertEnvVar GROUPER_CONTAINER_VERSION "$containerVersion" | ||
| assertEnvVar GROUPER_DAEMON "false" | ||
| assertEnvVar GROUPER_GSH_CHECK_USER "true" | ||
| assertEnvVar GROUPER_GSH_USER "tomcat" | ||
| assertEnvVar GROUPER_HOME "/opt/grouper/grouperWebapp/WEB-INF" | ||
| assertEnvVar GROUPER_LOG_PREFIX "grouper-ui" | ||
| assertEnvVar GROUPER_MAX_MEMORY "1500m" | ||
| assertEnvVar GROUPER_PROXY_PASS "" | ||
| assertEnvVar GROUPER_RUN_APACHE "true" | ||
| assertEnvVar GROUPER_RUN_PROCESSES_AS_USERS "true" | ||
| assertEnvVar GROUPER_RUN_SHIB_SP "true" | ||
| assertEnvVar GROUPER_RUN_TOMEE "true" | ||
| assertEnvVar GROUPER_SCIM "false" | ||
| assertEnvVar GROUPER_SCIM_GROUPER_AUTH "false" | ||
| assertEnvVar GROUPER_TOMCAT_CONTEXT "grouper" | ||
| assertEnvVar GROUPER_UI "true" | ||
| assertEnvVar GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES "1.1.1.1/32" | ||
| assertEnvVar GROUPER_UI_GROUPER_AUTH "false" | ||
| assertEnvVar GROUPER_UI_ONLY "true" | ||
| assertEnvVar GROUPER_URL_CONTEXT "grouper" | ||
| assertEnvVar GROUPER_USE_SSL "true" | ||
| assertEnvVar GROUPER_WS "false" | ||
| assertEnvVar GROUPER_WS_GROUPER_AUTH "false" | ||
|
|
||
| assertNumberOfTomcatProcesses 1 | ||
| # bad cert apache wont start | ||
| assertNumberOfApacheProcesses 0 | ||
| assertNumberOfShibProcesses 1 | ||
|
|
||
| assertNotListeningOnPort 443 | ||
| assertNotListeningOnPort 80 | ||
| assertListeningOnPort 8009 | ||
| assertNotListeningOnPort 9001 | ||
|
|
||
|
|
||
| } | ||
| export -f testContainerUiSubimage |
93 changes: 93 additions & 0 deletions
93
container_files/tier-support/test/grouperContainerUnitTestUiSubimageNonroot.sh
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,93 @@ | ||
| #!/bin/bash | ||
|
|
||
| testContainerUiSubimageNonroot() { | ||
|
|
||
| if [ "$#" -ne 0 ]; then | ||
| echo "You must enter exactly 0 command line arguments" | ||
| exit 1 | ||
| fi | ||
|
|
||
| dockerRemoveContainer | ||
| dockerRemoveSubimage | ||
|
|
||
| subimageId="my_$containerName" | ||
| subimageName="$subimageId:latest" | ||
| myId="$(id -u)" | ||
|
|
||
| echo "" > Dockerfile | ||
| echo "FROM $imageName" >> Dockerfile | ||
| echo "RUN /usr/local/bin/changeUid.sh tomcat $myId" >> Dockerfile | ||
| echo "" >> Dockerfile | ||
|
|
||
| echo | ||
| echo '################' | ||
| echo Running container with subimage as ui without root | ||
| echo cat DockerFile | ||
| cat Dockerfile | ||
| echo "docker build -t $subimageId ." | ||
| echo "docker run --detach --name $containerName -u $myId -e GROUPER_RUN_TOMCAT_NOT_SUPERVISOR=true --publish 8080:8080 $subimageId ui" | ||
| echo '################' | ||
| echo | ||
|
|
||
| docker build -t "$subimageId" . | ||
|
|
||
| docker run --detach --name $containerName -u $myId -e GROUPER_RUN_TOMCAT_NOT_SUPERVISOR=true --publish 8080:8080 $subimageId ui | ||
| sleep $globalSleepSecondsAfterRun | ||
|
|
||
| assertFileExists /opt/grouper/grouperWebapp/WEB-INF/libWs/axis2-kernel-1.6.4.jar | ||
| assertFileNotExists /opt/grouper/grouperWebapp/WEB-INF/lib/axis2-kernel-1.6.4.jar | ||
| assertFileExists /opt/grouper/grouperWebapp/WEB-INF/libScim/stax-api-1.0-2.jar | ||
| assertFileNotExists /opt/grouper/grouperWebapp/WEB-INF/lib/stax-api-1.0-2.jar | ||
| assertFileExists /opt/grouper/grouperWebapp/WEB-INF/lib/grouper-messaging-activemq-2.5.27.jar | ||
| assertFileExists /opt/grouper/grouperWebapp/WEB-INF/libUiAndDaemon/grouper-messaging-activemq-2.5.27.jar | ||
|
|
||
| assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "/tmp/logpipe" | ||
| assertFileContains /opt/grouper/grouperWebapp/WEB-INF/classes/log4j.properties "grouper-ui;" | ||
|
|
||
| assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties grouperPasswordConfigOverride_UI_GrouperSystem_pass.elConfig | ||
| assertFileNotContains /opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties thisPassIsCopyrightedDontUse | ||
|
|
||
| assertEnvVar GROUPERSCIM_PROXY_PASS "#" | ||
| assertEnvVar GROUPERSCIM_URL_CONTEXT "grouper-ws-scim" | ||
| assertEnvVar GROUPERWS_PROXY_PASS "#" | ||
| assertEnvVar GROUPERWS_URL_CONTEXT "grouper-ws" | ||
| assertEnvVar GROUPER_APACHE_AJP_TIMEOUT_SECONDS "3600" | ||
| assertEnvVar GROUPER_APACHE_NONSSL_PORT "80" | ||
| assertEnvVar GROUPER_APACHE_SSL_PORT "443" | ||
| assertEnvVar GROUPER_CHOWN_DIRS "true" | ||
| assertEnvVar GROUPER_CONTAINER_VERSION "$containerVersion" | ||
| assertEnvVar GROUPER_DAEMON "false" | ||
| assertEnvVar GROUPER_GSH_CHECK_USER "true" | ||
| assertEnvVar GROUPER_GSH_USER "tomcat" | ||
| assertEnvVar GROUPER_HOME "/opt/grouper/grouperWebapp/WEB-INF" | ||
| assertEnvVar GROUPER_LOG_PREFIX "grouper-ui" | ||
| assertEnvVar GROUPER_MAX_MEMORY "1500m" | ||
| assertEnvVar GROUPER_PROXY_PASS "" | ||
| assertEnvVarNot GROUPER_RUN_APACHE "true" | ||
| assertEnvVar GROUPER_RUN_PROCESSES_AS_USERS "true" | ||
| assertEnvVarNot GROUPER_RUN_SHIB_SP "true" | ||
| assertEnvVar GROUPER_RUN_TOMEE "true" | ||
| assertEnvVar GROUPER_SCIM "false" | ||
| assertEnvVar GROUPER_SCIM_GROUPER_AUTH "false" | ||
| assertEnvVar GROUPER_TOMCAT_CONTEXT "grouper" | ||
| assertEnvVar GROUPER_UI "true" | ||
| assertEnvVar GROUPER_UI_CONFIGURATION_EDITOR_SOURCEIPADDRESSES "127.0.0.1/32" | ||
| assertEnvVar GROUPER_UI_GROUPER_AUTH "false" | ||
| assertEnvVar GROUPER_UI_ONLY "true" | ||
| assertEnvVar GROUPER_URL_CONTEXT "grouper" | ||
| assertEnvVar GROUPER_USE_SSL "true" | ||
| assertEnvVar GROUPER_WS "false" | ||
| assertEnvVar GROUPER_WS_GROUPER_AUTH "false" | ||
|
|
||
| assertNumberOfTomcatProcesses 13 | ||
| # bad cert apache wont start | ||
| assertNumberOfApacheProcesses 0 | ||
| assertNumberOfShibProcesses 0 | ||
|
|
||
| assertNotListeningOnPort 443 | ||
| assertNotListeningOnPort 80 | ||
| assertListeningOnPort 8009 | ||
| assertNotListeningOnPort 9001 | ||
|
|
||
| } | ||
| export -f testContainerUiSubimageNonroot |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| #!/bin/bash | ||
|
|
||
| if [[ $EUID -ne 0 ]]; then | ||
| echo "This script must be run as root" | ||
| exit 1 | ||
| fi | ||
| if [ "$#" -ne 2 ]; then | ||
| echo "You must enter exactly 2 command line arguments: groupname, and gid to change to" | ||
| exit 1 | ||
| fi | ||
| groupname=$1 | ||
| newGid=$2 | ||
| getentOutput="$(getent group "$groupname")" | ||
| oldGid="$( echo "$getentOutput" |cut -d\: -f3 )" | ||
| groupmod -g "$newGid" "$groupname" | ||
| find / -xdev -type d -group "$oldGid" -exec chgrp -h "$groupname" {} \; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| #!/bin/bash | ||
|
|
||
| if [[ $EUID -ne 0 ]]; then | ||
| echo "This script must be run as root" | ||
| exit 1 | ||
| fi | ||
| if [ "$#" -ne 2 ]; then | ||
| echo "You must enter exactly 2 command line arguments: username, and uid to change to" | ||
| exit 1 | ||
| fi | ||
| username=$1 | ||
| newUid=$2 | ||
| oldUid="$(id -u "$username")" | ||
| usermod -u "$newUid" "$username" | ||
| find / -xdev -type d -user "$oldUid" -exec chown -h "$username" {} \; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.