Repository navigation
Crow 0.3.0
Crow 0.3.0: a security release, plus more of the config files ops people edit, and verifiable downloads.
Binaries: Linux x86_64 (install.sh puts Crow and its icon under ~/.local) and macOS Apple Silicon (an ad-hoc signed Crow.app: the first launch needs right-click → Open).
Verify a download with slsa-verifier (SLSA Build Level 3 provenance), or against SHA256SUMS:
slsa-verifier verify-artifact crow-linux-x86_64.tar.gz \
--provenance-path multiple.intoto.jsonl \
--source-uri github.com/errorware/crow --source-tag v0.3.0
Security
A full audit of everything Crow does on a server as root. Update if you manage servers where other people have accounts.
- authorized_keys are edited as their owner, never as root, so a user's own
~/.sshcan't redirect Crow's writes elsewhere. - Config saves as root refuse a folder another account can change (for example a
pg_hba.confinside postgres's data directory), and say why. Linked files, such as nginx'ssites-enabled, are saved through to the file they point at instead of being replaced. - Host key rotation always puts the old keys back when the new ones fail
sshd -tor the reload, and reloads sshd on systemd, OpenRC and SysV alike. - Lock-out guards: Crow won't delete the account it logs in as, or revoke its own key; the firewall's lock-out check covers a rule with no port; nginx saves keep the old file when
nginx -twas already failing and the change makes it worse. - A user can no longer hide everyone's keys from the Users page, or the running-packages list from the Updates view.
- SSH connection sockets live in a private folder per user. New private keys are created readable only by you. Key file names can't leave the keys folder. Local temp files have random names.
Config editors
- Add keys from a section's heading: a + on each systemd section (
[Service]), INI section ([mysqld]), fail2ban jail and nginx block (server,location) adds a line at the end of that section, with the keys that section usually takes, what each does, and a starting value. - fail2ban (
jail.local,jail.d/*): values on several lines (logpath,ignoreip) are kept as written; checked withfail2ban-client -tbefore saving. - chrony (
chrony.conf, checked withchronyd -p) and ntp (ntp.conf). - resolv.conf, with a warning when systemd-resolved, NetworkManager or resolvconf rewrites the file.
Interface
- One small icon button for row and close actions everywhere: delete appears on hover, in red.
Releases
- Every release carries its binaries,
SHA256SUMSand SLSA provenance, attached by the release workflow itself.