Previous to this change, egetent would match any id that starts with the
id given as input. For example:

egetent group 1

bin::1:root,bin,daemon
wheel::10:root
floppy::11:root
news::13:news
uucp::14:uucp
console::17:
audio::18:
cdrom::19:
users::100:

Adding a colon to the grep expression yeilds the desired result:

egetent group 1

bin::1:root,bin,daemon

Signed-off-by: Mike Gilbert <flop...@gentoo.org>
---
 eclass/user-info.eclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/eclass/user-info.eclass b/eclass/user-info.eclass
index b18f280c1022..1cc7b8250309 100644
--- a/eclass/user-info.eclass
+++ b/eclass/user-info.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2022 Gentoo Authors
+# Copyright 1999-2023 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: user-info.eclass
@@ -64,7 +64,7 @@ egetent() {
                        getent "${db}" "${key}"
                else
                        if [[ ${key} =~ ^[[:digit:]]+$ ]]; then
-                               grep -E "^([^:]*:){2}${key}" "${ROOT}/etc/${db}"
+                               grep -E "^([^:]*:){2}${key}:" 
"${ROOT}/etc/${db}"
                        else
                                grep "^${key}:" "${ROOT}/etc/${db}"
                        fi
-- 
2.41.0


Reply via email to