From: Iker Pedrosa Date: Tue, 4 Jan 2022 12:06:00 +0000 (+0100) Subject: useradd: modify check ID range for system users X-Git-Tag: 4.12~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1f1678e13aa3ae49bdb139efaa2c5bc53dcfe92;p=thirdparty%2Fshadow.git useradd: modify check ID range for system users useradd warns that a system user ID less than SYS_UID_MIN is outside the expected range, even though that ID has been specifically selected with the "-u" option. In my opinion all the user ID's below SYS_UID_MAX are for the system, thus I change the condition to take that into account. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2004911 Signed-off-by: Iker Pedrosa --- diff --git a/src/useradd.c b/src/useradd.c index 34376fa5d..4c71c38a9 100644 --- a/src/useradd.c +++ b/src/useradd.c @@ -2409,11 +2409,9 @@ static void check_uid_range(int rflg, uid_t user_id) uid_t uid_min ; uid_t uid_max ; if (rflg) { - uid_min = (uid_t)getdef_ulong("SYS_UID_MIN",101UL); uid_max = (uid_t)getdef_ulong("SYS_UID_MAX",getdef_ulong("UID_MIN",1000UL)-1); - if (uid_min <= uid_max) { - if (user_id < uid_min || user_id >uid_max) - fprintf(stderr, _("%s warning: %s's uid %d outside of the SYS_UID_MIN %d and SYS_UID_MAX %d range.\n"), Prog, user_name, user_id, uid_min, uid_max); + if (user_id > uid_max) { + fprintf(stderr, _("%s warning: %s's uid %d is greater than SYS_UID_MAX %d\n"), Prog, user_name, user_id, uid_max); } }else{ uid_min = (uid_t)getdef_ulong("UID_MIN", 1000UL);