| # |
| # For a description of the syntax of this configuration file, |
| # see the file kconfig-language.txt in the NuttX tools repository. |
| # |
| |
| config SYSTEM_SUDO |
| tristate "sudo (setuid privilege helper)" |
| default n |
| depends on SCHED_USER_IDENTITY |
| depends on LIBC_PASSWD_FILE |
| depends on FSUTILS_PASSWD |
| depends on LIBC_EXECFUNCS |
| ---help--- |
| Install a Linux-style setuid-root ``sudo`` program. The kernel |
| raises the effective UID to zero when the ELF is loaded (see |
| ``nx_uid`` / ``nx_mode`` in Application.mk). ``sudo`` verifies |
| the invoking user's password with ``passwd_verify()``, becomes |
| fully root via ``setresuid()`` / ``setresgid()``, then |
| ``execvp()``s the requested command. |
| |
| Requires ``CONFIG_LIBC_EXECFUNCS`` so NSH (or ``posix_spawn``) |
| loads the application ELF instead of calling its entry point |
| directly from the builtin registry. |
| |
| Non-root callers must appear in the sudoers file |
| (``SYSTEM_SUDO_SUDOERS_PATH``) or in |
| ``SYSTEM_SUDO_ALLOWED_USERS``. Real UID 0 is always allowed. |
| |
| if SYSTEM_SUDO |
| |
| config SYSTEM_SUDO_SUDOERS_PATH |
| string "Path to sudoers allowlist" |
| default "/etc/sudoers" |
| ---help--- |
| Simple allowlist, one username per line. Lines starting with |
| ``#`` are comments. A Linux-style first field is also accepted |
| (``user ALL=(ALL) ALL``). Generate this file in ROMFS with |
| ``CONFIG_BOARD_ETC_ROMFS_PASSWD_EXTRA_ENABLE``. |
| |
| config SYSTEM_SUDO_ALLOWED_USERS |
| string "Compile-time sudoers usernames" |
| default "" |
| ---help--- |
| Optional comma-separated extra allowlist compiled into sudo. |
| Use this when /etc/sudoers is not present. Example: ``user``. |
| |
| endif # SYSTEM_SUDO |