mix suidhelper.install (Hyper v0.1.0)

Copy Markdown View Source

Builds, stamps, and installs the Rust setuid helper.

mix suidhelper.install

Two steps:

  1. cargo xtask stamp in native/suidhelper builds the release binary and writes its BLAKE3 self-checksum into .note.sum (the same step the :suidhelper_stamp compiler runs).
  2. The stamped binary is copied setuid-root (mode 4755) to /usr/local/bin/hyper-suidhelper.

The copy needs root, but Mix runs every subprocess in its own session with no controlling terminal (erl_child_setup calls setsid), so a nested sudo cannot open /dev/tty to prompt for a password. This task therefore only runs sudo itself when it is already non-interactive (sudo -n succeeds, e.g. NOPASSWD or a usable cached credential). Otherwise it prints the exact privileged command for you to run in your own terminal.

This is the privileged counterpart to mix suidhelper.stamp, which stamps only. cargo and the helper's toolchain (see native/suidhelper/rust-toolchain.toml) must be installed.