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>
(cherry picked from commit 6044cc5f26)
Signed-off-by: Thomas Perale <thomas.perale@mind.be>
This commit is contained in:
Nathaniel Roach
2025-07-21 20:08:20 +08:00
committed by Thomas Perale
parent ab7297f3c1
commit 06b91176e7
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