mirror of
https://git.yoctoproject.org/poky
synced 2026-02-05 16:28:43 +01:00
useradd-staticids.bbclass: Restore failure on missing UIDs/GIDs
A regression was introduced with commit 3149319a whereby setting USERADD_ERROR_DYNAMIC no longer resulted in an error for users and groups that were missing numeric UIDs and GIDs but were not mentioned at all in any passwd or groups file. [YOCTO #9777] (From OE-Core rev: adc0f830a695c417b4d282fa580c5231e1f0afbe) Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
4ed711a2b3
commit
c99750d17e
@@ -50,6 +50,11 @@ def update_useradd_static_config(d):
|
||||
|
||||
return id_table
|
||||
|
||||
def handle_missing_id(id, type, pkg):
|
||||
if d.getVar('USERADD_ERROR_DYNAMIC', True) == '1':
|
||||
#bb.error("Skipping recipe %s, package %s which adds %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
|
||||
raise bb.build.FuncFailed("%s - %s: %sname %s does not have a static ID defined." % (d.getVar('PN', True), pkg, type, id))
|
||||
|
||||
# We parse and rewrite the useradd components
|
||||
def rewrite_useradd(params):
|
||||
# The following comes from --help on useradd from shadow
|
||||
@@ -116,6 +121,8 @@ def update_useradd_static_config(d):
|
||||
users = merge_files(get_passwd_list(d), 7)
|
||||
|
||||
if uaargs.LOGIN not in users:
|
||||
if not uaargs.uid or not uaargs.uid.isdigit() or not uaargs.gid:
|
||||
handle_missing_id(uaargs.LOGIN, 'user', pkg)
|
||||
continue
|
||||
|
||||
field = users[uaargs.LOGIN]
|
||||
@@ -165,9 +172,8 @@ def update_useradd_static_config(d):
|
||||
uaargs.shell = field[6] or uaargs.shell
|
||||
|
||||
# Should be an error if a specific option is set...
|
||||
if d.getVar('USERADD_ERROR_DYNAMIC', True) == '1' and not ((uaargs.uid and uaargs.uid.isdigit()) and uaargs.gid):
|
||||
#bb.error("Skipping recipe %s, package %s which adds username %s does not have a static uid defined." % (d.getVar('PN', True), pkg, uaargs.LOGIN))
|
||||
raise bb.build.FuncFailed("%s - %s: Username %s does not have a static uid defined." % (d.getVar('PN', True), pkg, uaargs.LOGIN))
|
||||
if not uaargs.uid or not uaargs.uid.isdigit() or not uaargs.gid:
|
||||
handle_missing_id(uaargs.LOGIN, 'user', pkg)
|
||||
|
||||
# Reconstruct the args...
|
||||
newparam = ['', ' --defaults'][uaargs.defaults]
|
||||
@@ -248,6 +254,8 @@ def update_useradd_static_config(d):
|
||||
groups = merge_files(get_group_list(d), 4)
|
||||
|
||||
if gaargs.GROUP not in groups:
|
||||
if not gaargs.gid or not gaargs.gid.isdigit():
|
||||
handle_missing_id(gaargs.GROUP, 'group', pkg)
|
||||
continue
|
||||
|
||||
field = groups[gaargs.GROUP]
|
||||
@@ -257,9 +265,8 @@ def update_useradd_static_config(d):
|
||||
bb.warn("%s: Changing groupname %s's gid from (%s) to (%s), verify configuration files!" % (d.getVar('PN', True), gaargs.GROUP, gaargs.gid, field[2]))
|
||||
gaargs.gid = field[2]
|
||||
|
||||
if d.getVar('USERADD_ERROR_DYNAMIC', True) == '1' and not (gaargs.gid and gaargs.gid.isdigit()):
|
||||
#bb.error("Skipping recipe %s, package %s which adds groupname %s does not have a static gid defined." % (d.getVar('PN', True), pkg, gaargs.GROUP))
|
||||
raise bb.build.FuncFailed("%s - %s: Groupname %s does not have a static gid defined." % (d.getVar('PN', True), pkg, gaargs.GROUP))
|
||||
if not gaargs.gid or not gaargs.gid.isdigit():
|
||||
handle_missing_id(gaargs.GROUP, 'group', pkg)
|
||||
|
||||
# Reconstruct the args...
|
||||
newparam = ['', ' --force'][gaargs.force]
|
||||
|
||||
Reference in New Issue
Block a user