Bug 15745 - Adding custom user account does nothing when the user table text file dose not have a terminating newline
Summary: Adding custom user account does nothing when the user table text file dose no...
Status: RESOLVED INVALID
Alias: None
Product: buildroot
Classification: Unclassified
Component: Other (show other bugs)
Version: 2023.02.2
Hardware: PC Linux
: P5 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-08-30 22:05 UTC by Yanghao Cheng
Modified: 2023-08-31 17:49 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yanghao Cheng 2023-08-30 22:05:27 UTC
As title

For example, 
```text @ package/bar/users_table.txt
foo -2 foo -2 =foo /home/foo /bin/bash - Foo user
```

When configure buildroot to use this user table according to the manual, log shows that the content is being copied to the master user table:

_________________________________________________________________________
> cat package/bar/users_table.txt >> /home/yanghao/open-source/buildroot/buildroot/output/build/buildroot-fs/full_users_table.txt
>
> /yanghao/open-source/buildroot/buildroot/support/scripts/mkusers /home/yanghao/open-source/buildroot/buildroot/output/build/buildroot-fs/full_users_table.txt /home/yanghao/open-source/buildroot/buildroot/output/build/buildroot-fs/ext2/target >> /home/yanghao/open-source/buildroot/buildroot/output/build/buildroot-fs/ext2/fakeroot
__________________________________________________________________________

However, no user is created in the resulting filesystem.

Adding a newline at the end fixes it and works as expected. 
```text
foo -2 foo -2 =foo /home/foo /bin/bash - Foo user

```

In the end, I think this is a bug because it is not mentioned in the manual Chapter 26. Makeusers syntax documentation and 9.6. Adding custom user accounts.
Comment 1 Edgar Bonet 2023-08-31 07:24:02 UTC
> Adding a newline at the end fixes it and works as expected.

Do you mean that the file should end with *two* newline characters?

Note that, in a Unix environment, a text file is by definition a
sequence of LF-terminated lines of text. This implies that a non-empty
file that does not end with an LF character is not a valid text file.

The manual does mention that users tables are “regular text files”. If
the user account creation fails to parse an invalid text file, I would
not consider it a bug.
Comment 2 Yanghao Cheng 2023-08-31 17:48:37 UTC
Okay... I meant only one LF is needed.

I've to admit that I don't know the definition exactly although I have seen software that marks non-LF terminated files as questionable.

Thank you for letting me know and I will close this ticket.