V8.00.000.2025.06.17
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m1s
All checks were successful
🛡️ Shell Script Linting / 🛡️ Shell Script Linting (push) Successful in 2m1s
Signed-off-by: Marc S. Weidner <msw@coresecret.dev>
This commit is contained in:
@@ -15,7 +15,7 @@ guard_sourcing
|
||||
#######################################
|
||||
# Iterates all '/etc/shadow' entries and sets:
|
||||
# 4=min age=0, 5=max age=16384, 6=warn=128, 7=inactive=42, 8=expire=17.09.2102
|
||||
# Safe: creates a timestamped backup and (if available) locks /etc/.pwd.lock.
|
||||
# Safe: creates a timestamped backup and (if available) locks '/etc/.pwd.lock'.
|
||||
# Globals:
|
||||
# RECOVERY
|
||||
# TARGET
|
||||
@@ -28,6 +28,7 @@ guard_sourcing
|
||||
update_shadow() {
|
||||
### Declare Arrays, HashMaps, and Variables.
|
||||
declare var_target="${TARGET}"
|
||||
|
||||
### Check for TARGET / RECOVERY.
|
||||
[[ "${VAR_RUN_RECOVERY}" == "true" ]] && var_target="${RECOVERY}"
|
||||
|
||||
@@ -66,12 +67,12 @@ update_shadow() {
|
||||
### Rewrite fields 4..8 for every line
|
||||
### Preserve fields 1..3 and 9, keep password hashes untouched.
|
||||
### Pad to 9 fields if shorter; keep empty lines intact (rare but safe).
|
||||
awk -v FS=":" -v OFS=":" -v exp="${var_exp_ds}" '
|
||||
NF==0 { print; next } # preserve blank lines verbatim
|
||||
awk -v FS=":" -v OFS=":" -v v_exp="${var_exp_ds}" '
|
||||
NF==0 { print; next } # preserve blank lines verbatim
|
||||
{
|
||||
# pad missing trailing fields to 9
|
||||
for (i=NF+1; i<=9; i++) $i="";
|
||||
$4=0; $5=16384; $6=128; $7=42; $8=exp; # set required fields
|
||||
$4=0; $5=16384; $6=128; $7=42; $8=v_exp; # set required fields
|
||||
print
|
||||
}
|
||||
' "${var_backup}" >| "${var_temp}"
|
||||
|
||||
Reference in New Issue
Block a user