[1/1] fix group splitting in user creation

Message ID 20230726045920.1542471-1-felix.moessbauer@siemens.com
State Superseded, archived
Headers show
Series [1/1] fix group splitting in user creation | expand

Commit Message

MOESSBAUER, Felix July 26, 2023, 4:59 a.m. UTC
There is a bug when converting the USER_<foo>[groups] configuration
from the bitbake format (space separated) to the format useradd
expects (comma separated). We cannot simply replace spaces with commas,
as then multiple spaces in a row would create multiple commas. Instead,
we need to split it first into the tokens and then join these tokens by
comma.

Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
---
 meta/classes/image-account-extension.bbclass | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Quirin Gylstorff July 26, 2023, 10:59 a.m. UTC | #1
On 7/26/23 06:59, 'Felix Moessbauer' via isar-users wrote:
> There is a bug when converting the USER_<foo>[groups] configuration
> from the bitbake format (space separated) to the format useradd
> expects (comma separated). We cannot simply replace spaces with commas,
> as then multiple spaces in a row would create multiple commas. Instead,
> we need to split it first into the tokens and then join these tokens by
> comma.
> 
> Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
> ---
>   meta/classes/image-account-extension.bbclass | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/classes/image-account-extension.bbclass b/meta/classes/image-account-extension.bbclass
> index e783c135..6f67f459 100644
> --- a/meta/classes/image-account-extension.bbclass
> +++ b/meta/classes/image-account-extension.bbclass
> @@ -98,10 +98,10 @@ def image_create_users(d: "DataSmart") -> None:
>           add_user_option("--comment", "comment")
>           add_user_option("--shell", "shell")
>   
> -        groups = d.getVarFlag(user_entry, "groups") or ""
> +        groups = (d.getVarFlag(user_entry, "groups") or "").split()
>           if groups:
>               args.append("--groups")
> -            args.append(groups.replace(' ', ','))
> +            args.append(','.join(groups))
>   
>           flags = (d.getVarFlag(user_entry, "flags") or "").split()
>   

I haved tested the patch. Looks good to me. Is it possible to add 
unittest for this?

Quirin

Patch

diff --git a/meta/classes/image-account-extension.bbclass b/meta/classes/image-account-extension.bbclass
index e783c135..6f67f459 100644
--- a/meta/classes/image-account-extension.bbclass
+++ b/meta/classes/image-account-extension.bbclass
@@ -98,10 +98,10 @@  def image_create_users(d: "DataSmart") -> None:
         add_user_option("--comment", "comment")
         add_user_option("--shell", "shell")
 
-        groups = d.getVarFlag(user_entry, "groups") or ""
+        groups = (d.getVarFlag(user_entry, "groups") or "").split()
         if groups:
             args.append("--groups")
-            args.append(groups.replace(' ', ','))
+            args.append(','.join(groups))
 
         flags = (d.getVarFlag(user_entry, "flags") or "").split()