diff options
| author | John Crispin | 2024-11-12 06:49:22 +0000 |
|---|---|---|
| committer | John Crispin | 2024-11-13 06:54:40 +0000 |
| commit | e39f5d4b360ca3e163550592cea35949f0ea8622 (patch) | |
| tree | 430816efd7895091fa605a5f3d341232afc3ad99 | |
| parent | d83ae23d08c8e8bd3c5028f8756d9b234d5bb820 (diff) | |
| download | openwrt-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-passwd | 18 |
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 |