mirror of
https://github.com/ChuckBuilds/LEDMatrix.git
synced 2026-10-04 14:25:08 +00:00
Both installers generated the ledmatrix_web rules and copied them straight into /etc/sudoers.d without ever parsing them. Every rule is built from `which` lookups, so an empty or surprising path produces a malformed drop-in -- and a malformed file in /etc/sudoers.d makes sudo refuse every command for every user. On a headless Pi that is unrecoverable over SSH. first_time_install.sh now runs `visudo -c` on the generated file and, if it does not parse, prints what visudo said and leaves the installed file untouched rather than replacing it with a broken one. configure_web_sudo.sh does the same before it offers the rules for confirmation. first_time_install.sh also built the file at a fixed /tmp path as root; mktemp now picks the name. test/test_sudoers_is_validated.py renders the installer's own sudoers heredoc and checks the result with visudo -- the check neither installer had -- and asserts the install stays gated on it. Claude-Session: https://claude.ai/code/session_01Dby94z9PV3zVM25fqGNXTt Co-authored-by: Claude <noreply@anthropic.com>
Installation Scripts
This directory contains scripts for installing and configuring the LEDMatrix system.
Scripts
one-shot-install.sh- Single-command installer; clones the repo, checks prerequisites, then runsfirst_time_install.sh. Invoked viacurl ... | bashfrom the project root README.install_service.sh- Installs, enables and starts the display service (ledmatrix.service), the web interface service (ledmatrix-web.service) and the update-verify units (systemd)install_web_service.sh- Installs only the web interface service and the update-verify units (systemd)install_wifi_monitor.sh- Installs the WiFi monitor daemon servicesetup_cache.sh- Sets up persistent cache directory with proper permissionsconfigure_web_sudo.sh- Configures passwordless sudo access for web interface actionsconfigure_wifi_permissions.sh- Grants the web interface's user (the user who runs the script, i.e. the one you installed LEDMatrix as; there is noledmatrixsystem user) the passwordlessnmcliand related WiFi permissions the web interface needsmigrate_config.sh- Migrates configuration files to new formats (if needed)debug_install.sh- Diagnostic helper used when an install fails; collects environment info and recent logs
Usage
These scripts are typically called by first_time_install.sh in the
project root (which itself is invoked by one-shot-install.sh), but
can also be run individually if needed.
Note: Most installation scripts require sudo privileges to install systemd services and configure system settings.