fix: use exact match for USER_NAME in /etc/passwd check #119
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
Fix grep pattern in init-adduser script to use exact username matching by adding a colon delimiter.
Change:
grep -q "^${USER_NAME}"→grep -q "^${USER_NAME}:"Benefits of this PR and context:
The current check incorrectly matches usernames that are prefixes of existing system users. For example,
USER_NAME=bmatches thebinuser becausegrep "^b"matchesbin:x:1:1:....This causes containers to halt with a false positive error:
The
/etc/passwdformat isusername:password:uid:gid:..., so matching^username:ensures exact username field matching.closes #118
How Has This Been Tested?
Verified the regex logic:
echo "bin:x:1:1:bin" | grep -q "^b"→ matches (current behavior, incorrect)echo "bin:x:1:1:bin" | grep -q "^b:"→ no match (fixed behavior, correct)echo "bin:x:1:1:bin" | grep -q "^bin:"→ matches (correct, exact match)Source / References:
root/etc/s6-overlay/s6-rc.d/init-adduser/run