package/sudo: Enable libxcrypt with glibc, allowing hashed passwords without PAM

Per https://gitlab.com/buildroot.org/buildroot/-/issues/27 , on glibc
builds without PAM, sudo will "fail" all password prompts.

It was found that it's simply checking the entered string against the
raw hash, because 'libcryp' isn't available. On glibc, we need libxcrypt,
so enable it and ensure sudo is built with it.

musl and uclibc do have crypt() functions, so this is not needed.

Relevant code from sudo:
 https://github.com/sudo-project/sudo/blob/v1.9.17p1/plugins/sudoers/auth/passwd.c#L139

Signed-off-by: Nathaniel Roach <nroach44@nroach44.id.au>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Nathaniel Roach
2025-07-21 20:08:20 +08:00
committed by Julien Olivain
parent 97cc946e2f
commit 6044cc5f26
2 changed files with 5 additions and 0 deletions

View File

@@ -2,6 +2,7 @@ config BR2_PACKAGE_SUDO
bool "sudo"
# uses fork()
depends on BR2_USE_MMU
select BR2_PACKAGE_LIBXCRYPT if BR2_TOOLCHAIN_USES_GLIBC
help
Sudo is a program designed to allow a sysadmin to give
limited root privileges to users and log root activity. The

View File

@@ -37,6 +37,10 @@ else
SUDO_CONF_OPTS += --without-pam
endif
ifeq ($(BR2_PACKAGE_LIBXCRYPT),y)
SUDO_DEPENDENCIES += libxcrypt
endif
ifeq ($(BR2_PACKAGE_ZLIB),y)
SUDO_CONF_OPTS += --enable-zlib
SUDO_DEPENDENCIES += zlib