Find NAS useradd outside PATH

Prompts used since the previous commit:
- De nas heeft wel een useradd commando. Als ik inlog, kan ik useradd uitvoeren

Special observations:
- Non-interactive SSH sessions may omit /usr/sbin from PATH, so deployment now searches common sbin paths for useradd and nologin.
- verplaats_log.json remains modified from the user's run and was intentionally not staged.
This commit is contained in:
2026-07-04 20:09:15 +02:00
parent 32cee7c65f
commit c1bf40d7de
2 changed files with 24 additions and 3 deletions
+1 -1
View File
@@ -149,7 +149,7 @@ Remote/NAS deployment files:
- `deploy_vps.sh` is host-neutral despite its historical filename. It packages the repo excluding `.git`, `config.json`, logs, runtime JSON state/log files, bytecode, and local mailbox data; uploads to the SSH host in `REMOTE_HOST`; installs under `/opt/mailcat` by default; creates/uses a non-root system user named `mailcat` by default; installs a systemd service; enables but does not start the service.
- The deploy script requires `REMOTE_HOST` and `REMOTE_USER`. The old `VPS_HOST` and `VPS_USER` names still work as aliases. Optional overrides: `APP_USER`, `APP_DIR`, `SERVICE_NAME`, and `ACCOUNT`.
- The deploy script uploads a temporary remote shell script and runs it with `ssh -tt`, so remote `sudo` can prompt for a password on NAS systems that require a terminal. The remote script starts with `sudo -v`.
- If the remote NAS does not have `useradd`, the deploy script falls back to the existing SSH user and that user's primary group for service ownership.
- The deploy script searches both PATH and common sbin locations such as `/usr/sbin/useradd` and `/sbin/useradd`. If `useradd` is genuinely unavailable, it falls back to the existing SSH user and that user's primary group for service ownership.
- `systemd/mailcat-sort.service` is a template consumed by `deploy_vps.sh`; after placeholder replacement it runs `sort_mail_daemon.py --account backup --folder INBOX` and stores state/logs under `/var/lib/mailcat` and `/var/log/mailcat`.
- `config.json` remains ignored and must be created manually on the remote host with mode `600` before starting the service.