# ButtonTask: allow the unprivileged web configurator to run only the # tightly-scoped helper scripts as root, without a password. # # Install: # sudo tee /etc/sudoers.d/buttontask > /dev/null << 'EOF' # buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-netconfig # buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-update # buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-service # buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-settime # buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-reboot # buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-access # buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-brightness # EOF # sudo chmod 0440 /etc/sudoers.d/buttontask # sudo visudo -cf /etc/sudoers.d/buttontask # validate # # The scripts themselves must be root-owned and not writable by others: # sudo chown root:root /opt/buttontask/scripts/bt-* # sudo chmod 0755 /opt/buttontask/scripts/bt-* buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-netconfig buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-update buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-service buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-settime buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-reboot buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-access buttontask ALL=(root) NOPASSWD: /opt/buttontask/scripts/bt-brightness