Skip to content

Commit 2ce6955

Browse files
authored
Merge pull request #11547 from poikilotherm/10998-ct-fix-password-script
Fix password script in base container image
2 parents 54af71e + 955c760 commit 2ce6955

File tree

5 files changed

+97
-3
lines changed

5 files changed

+97
-3
lines changed

doc/sphinx-guides/source/container/base-image.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ provides. These are mostly based on environment variables (very common with cont
289289
- ``payara``
290290
- String
291291
- Set to secret string to change the Payara Linux User ("payara", default UID=1000) password.
292+
*Note: changes /etc/shadow, usually incompatible with a read-only rootfs!*
292293
* - ``DOMAIN_PASSWORD``
293294
- ``changeit``
294295
- String
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
diff --git a/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh b/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
2+
index 0bf9d0b80f..b640e4d1fc 100644
3+
--- a/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
4+
+++ b/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
5+
@@ -8,7 +8,7 @@ set -euo pipefail
6+
# Someone set the env var for passwords - get the new password in. Otherwise print warning.
7+
# https://docs.openshift.com/container-platform/4.14/openshift_images/create-images.html#avoid-default-passwords
8+
if [ "$LINUX_PASSWORD" != "payara" ]; then
9+
- echo -e "$LINUX_USER\n$LINUX_PASSWORD\n$LINUX_PASSWORD" | passwd
10+
+ echo -e "$LINUX_USER\n$LINUX_PASSWORD\n$LINUX_PASSWORD" | passwd || { echo "Linux password unchanged!"; }
11+
else
12+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT PASSWORD FOR USER \"${LINUX_USER}\"! ('payara')"
13+
echo " To change the password, set the LINUX_PASSWORD env var."
14+
@@ -19,7 +19,7 @@ if [ "$PAYARA_ADMIN_PASSWORD" != "admin" ]; then
15+
PASSWORD_FILE=$(mktemp)
16+
echo "AS_ADMIN_PASSWORD=admin" > "$PASSWORD_FILE"
17+
echo "AS_ADMIN_NEWPASSWORD=${PAYARA_ADMIN_PASSWORD}" >> "$PASSWORD_FILE"
18+
- asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-admin-password --domain_name="${DOMAIN_NAME}"
19+
+ asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-admin-password --domain_name="${DOMAIN_NAME}" || { echo "Payara password unchanged!"; }
20+
rm "$PASSWORD_FILE"
21+
else
22+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT PASSWORD FOR PAYARA ADMIN \"${PAYARA_ADMIN_USER}\"! ('admin')"
23+
@@ -35,7 +35,7 @@ if [ "$DOMAIN_PASSWORD" != "changeit" ]; then
24+
PASSWORD_FILE=$(mktemp)
25+
echo "AS_ADMIN_MASTERPASSWORD=changeit" >> "$PASSWORD_FILE"
26+
echo "AS_ADMIN_NEWMASTERPASSWORD=${DOMAIN_PASSWORD}" >> "$PASSWORD_FILE"
27+
- asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-master-password --savemasterpassword false "${DOMAIN_NAME}"
28+
+ asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-master-password --savemasterpassword false "${DOMAIN_NAME}" || { echo "Domain password unchanged!"; }
29+
rm "$PASSWORD_FILE"
30+
else
31+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT DOMAIN \"MASTER\" PASSWORD! ('changeit')"
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
diff --git a/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh b/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
2+
index 0bf9d0b80f..b640e4d1fc 100644
3+
--- a/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
4+
+++ b/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
5+
@@ -8,7 +8,7 @@ set -euo pipefail
6+
# Someone set the env var for passwords - get the new password in. Otherwise print warning.
7+
# https://docs.openshift.com/container-platform/4.14/openshift_images/create-images.html#avoid-default-passwords
8+
if [ "$LINUX_PASSWORD" != "payara" ]; then
9+
- echo -e "$LINUX_USER\n$LINUX_PASSWORD\n$LINUX_PASSWORD" | passwd
10+
+ echo -e "$LINUX_USER\n$LINUX_PASSWORD\n$LINUX_PASSWORD" | passwd || { echo "Linux password unchanged!"; }
11+
else
12+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT PASSWORD FOR USER \"${LINUX_USER}\"! ('payara')"
13+
echo " To change the password, set the LINUX_PASSWORD env var."
14+
@@ -19,7 +19,7 @@ if [ "$PAYARA_ADMIN_PASSWORD" != "admin" ]; then
15+
PASSWORD_FILE=$(mktemp)
16+
echo "AS_ADMIN_PASSWORD=admin" > "$PASSWORD_FILE"
17+
echo "AS_ADMIN_NEWPASSWORD=${PAYARA_ADMIN_PASSWORD}" >> "$PASSWORD_FILE"
18+
- asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-admin-password --domain_name="${DOMAIN_NAME}"
19+
+ asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-admin-password --domain_name="${DOMAIN_NAME}" || { echo "Payara password unchanged!"; }
20+
rm "$PASSWORD_FILE"
21+
else
22+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT PASSWORD FOR PAYARA ADMIN \"${PAYARA_ADMIN_USER}\"! ('admin')"
23+
@@ -35,7 +35,7 @@ if [ "$DOMAIN_PASSWORD" != "changeit" ]; then
24+
PASSWORD_FILE=$(mktemp)
25+
echo "AS_ADMIN_MASTERPASSWORD=changeit" >> "$PASSWORD_FILE"
26+
echo "AS_ADMIN_NEWMASTERPASSWORD=${DOMAIN_PASSWORD}" >> "$PASSWORD_FILE"
27+
- asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-master-password --savemasterpassword false "${DOMAIN_NAME}"
28+
+ asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-master-password --savemasterpassword false "${DOMAIN_NAME}" || { echo "Domain password unchanged!"; }
29+
rm "$PASSWORD_FILE"
30+
else
31+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT DOMAIN \"MASTER\" PASSWORD! ('changeit')"
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
diff --git a/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh b/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
2+
index 0bf9d0b80f..b640e4d1fc 100644
3+
--- a/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
4+
+++ b/modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh
5+
@@ -8,7 +8,7 @@ set -euo pipefail
6+
# Someone set the env var for passwords - get the new password in. Otherwise print warning.
7+
# https://docs.openshift.com/container-platform/4.14/openshift_images/create-images.html#avoid-default-passwords
8+
if [ "$LINUX_PASSWORD" != "payara" ]; then
9+
- echo -e "$LINUX_USER\n$LINUX_PASSWORD\n$LINUX_PASSWORD" | passwd
10+
+ echo -e "$LINUX_USER\n$LINUX_PASSWORD\n$LINUX_PASSWORD" | passwd || { echo "Linux password unchanged!"; }
11+
else
12+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT PASSWORD FOR USER \"${LINUX_USER}\"! ('payara')"
13+
echo " To change the password, set the LINUX_PASSWORD env var."
14+
@@ -19,7 +19,7 @@ if [ "$PAYARA_ADMIN_PASSWORD" != "admin" ]; then
15+
PASSWORD_FILE=$(mktemp)
16+
echo "AS_ADMIN_PASSWORD=admin" > "$PASSWORD_FILE"
17+
echo "AS_ADMIN_NEWPASSWORD=${PAYARA_ADMIN_PASSWORD}" >> "$PASSWORD_FILE"
18+
- asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-admin-password --domain_name="${DOMAIN_NAME}"
19+
+ asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-admin-password --domain_name="${DOMAIN_NAME}" || { echo "Payara password unchanged!"; }
20+
rm "$PASSWORD_FILE"
21+
else
22+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT PASSWORD FOR PAYARA ADMIN \"${PAYARA_ADMIN_USER}\"! ('admin')"
23+
@@ -35,7 +35,7 @@ if [ "$DOMAIN_PASSWORD" != "changeit" ]; then
24+
PASSWORD_FILE=$(mktemp)
25+
echo "AS_ADMIN_MASTERPASSWORD=changeit" >> "$PASSWORD_FILE"
26+
echo "AS_ADMIN_NEWMASTERPASSWORD=${DOMAIN_PASSWORD}" >> "$PASSWORD_FILE"
27+
- asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-master-password --savemasterpassword false "${DOMAIN_NAME}"
28+
+ asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-master-password --savemasterpassword false "${DOMAIN_NAME}" || { echo "Domain password unchanged!"; }
29+
rm "$PASSWORD_FILE"
30+
else
31+
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT DOMAIN \"MASTER\" PASSWORD! ('changeit')"

modules/container-base/src/main/docker/scripts/init_1_change_passwords.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ set -euo pipefail
88
# Someone set the env var for passwords - get the new password in. Otherwise print warning.
99
# https://docs.openshift.com/container-platform/4.14/openshift_images/create-images.html#avoid-default-passwords
1010
if [ "$LINUX_PASSWORD" != "payara" ]; then
11-
echo -e "$LINUX_USER\n$LINUX_PASSWORD\n$LINUX_PASSWORD" | passwd
11+
echo -e "$LINUX_USER\n$LINUX_PASSWORD\n$LINUX_PASSWORD" | passwd || { echo "Linux password unchanged!"; }
1212
else
1313
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT PASSWORD FOR USER \"${LINUX_USER}\"! ('payara')"
1414
echo " To change the password, set the LINUX_PASSWORD env var."
@@ -19,7 +19,7 @@ if [ "$PAYARA_ADMIN_PASSWORD" != "admin" ]; then
1919
PASSWORD_FILE=$(mktemp)
2020
echo "AS_ADMIN_PASSWORD=admin" > "$PASSWORD_FILE"
2121
echo "AS_ADMIN_NEWPASSWORD=${PAYARA_ADMIN_PASSWORD}" >> "$PASSWORD_FILE"
22-
asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-admin-password --domain_name="${DOMAIN_NAME}"
22+
asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-admin-password --domain_name="${DOMAIN_NAME}" || { echo "Payara password unchanged!"; }
2323
rm "$PASSWORD_FILE"
2424
else
2525
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT PASSWORD FOR PAYARA ADMIN \"${PAYARA_ADMIN_USER}\"! ('admin')"
@@ -35,7 +35,7 @@ if [ "$DOMAIN_PASSWORD" != "changeit" ]; then
3535
PASSWORD_FILE=$(mktemp)
3636
echo "AS_ADMIN_MASTERPASSWORD=changeit" >> "$PASSWORD_FILE"
3737
echo "AS_ADMIN_NEWMASTERPASSWORD=${DOMAIN_PASSWORD}" >> "$PASSWORD_FILE"
38-
asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-master-password --savemasterpassword false "${DOMAIN_NAME}"
38+
asadmin --user="${PAYARA_ADMIN_USER}" --passwordfile="$PASSWORD_FILE" change-master-password --savemasterpassword false "${DOMAIN_NAME}" || { echo "Domain password unchanged!"; }
3939
rm "$PASSWORD_FILE"
4040
else
4141
echo "IMPORTANT: THIS CONTAINER USES THE DEFAULT DOMAIN \"MASTER\" PASSWORD! ('changeit')"

0 commit comments

Comments
 (0)