summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Crispin2024-11-12 06:49:22 +0000
committerJohn Crispin2024-11-13 06:54:40 +0000
commite39f5d4b360ca3e163550592cea35949f0ea8622 (patch)
tree430816efd7895091fa605a5f3d341232afc3ad99
parentd83ae23d08c8e8bd3c5028f8756d9b234d5bb820 (diff)
downloadopenwrt-e39f5d4b360ca3e163550592cea35949f0ea8622.tar.gz
base-files: improve default root-passwd script
The script was not exiting cleanly causing it to not be removed from the uci-defaults folder. Signed-off-by: John Crispin <john@phrozen.org>
-rw-r--r--package/base-files/files/etc/uci-defaults/50-root-passwd18
1 files changed, 12 insertions, 6 deletions
diff --git a/package/base-files/files/etc/uci-defaults/50-root-passwd b/package/base-files/files/etc/uci-defaults/50-root-passwd
index 9eddf1559b..f0bb519aec 100644
--- a/package/base-files/files/etc/uci-defaults/50-root-passwd
+++ b/package/base-files/files/etc/uci-defaults/50-root-passwd
@@ -3,10 +3,16 @@
json_init
json_load "$(cat /etc/board.json)"
-json_select credentials
- json_get_vars root_password_hash root_password_hash
- [ -z "$root_password_hash" ] || sed -i "s|^root:[^:]*|root:$root_password_hash|g" /etc/shadow
+if json_is_a credentials object; then
+ json_select credentials
+ json_get_vars root_password_hash root_password_hash
+ if [ -n "$root_password_hash" ]; then
+ sed -i "s|^root:[^:]*|root:$root_password_hash|g" /etc/shadow
+ fi
- json_get_vars root_password_plain root_password_plain
- [ -z "$root_password_plain" ] || { (echo "$root_password_plain"; sleep 1; echo "$root_password_plain") | passwd root }
-json_select ..
+ json_get_vars root_password_plain root_password_plain
+ if [ -n "$root_password_plain" ]; then
+ (echo "$root_password_plain"; sleep 1; echo "$root_password_plain") | passwd root
+ fi
+ json_select ..
+fi