3 ms·
POSIX says that any tool should always translate usernames into userids at the earliest possible point, and pass UIDs to children it spawns. Now assuming I hav
by kuschku 7y ago
POSIX says that any tool should always translate usernames into userids at the earliest possible point, and pass UIDs to children it spawns.
Now assuming I have a user called 1000 with UID 2000, and a user called 2000 with UID 1000.
Now what do you think is gonna happen if multiple POSIX-compliant tools call each other?
This is clearly broken, and the reason why BSDs don’t actually implement POSIX cleanly, instead allowing all their tools to take unambiguous identifiers on the CLI, with the # prefix to mark a UID, and have all their tools call all their children with this format.
The POSIX standard is clearly suboptimal here, and the set of valid usernames, and the set of valid UIDs should never have been allowed to overlap.
- throw0101a 7y agoThe weblog post has an user called '0day', i.e., "zero day". This breaks systemd as outlined in the post. This is a WONTFIX per the systemd folks.
- kuschku 7y agoThat’s one of the possible options, the other would be replacing chown, chmod, ls, etc (as the BSDs do)