From e2c2060f7b3b11fa3cca8899d80963b7a05cc4ab Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 24 Jan 2018 11:46:10 +0100 Subject: [PATCH] sysusers: make ADD_GROUP always create a group Do not merge group creation with user creation because with the new uid:gid syntax this can result in confusing (and unwanted) behavior. --- src/sysusers/sysusers.c | 24 +----------------------- test/TEST-21-SYSUSERS/test-4.expected-group | 1 + test/TEST-21-SYSUSERS/test-4.expected-passwd | 2 ++ test/TEST-21-SYSUSERS/test-4.input | 3 +++ 4 files changed, 7 insertions(+), 23 deletions(-) create mode 100644 test/TEST-21-SYSUSERS/test-4.expected-group create mode 100644 test/TEST-21-SYSUSERS/test-4.expected-passwd create mode 100644 test/TEST-21-SYSUSERS/test-4.input diff --git a/src/sysusers/sysusers.c b/src/sysusers/sysusers.c index 6383da4..66af3ff 100644 --- a/src/sysusers/sysusers.c +++ b/src/sysusers/sysusers.c @@ -1188,30 +1188,8 @@ static int process_item(Item *i) { return add_user(i); - case ADD_GROUP: { - Item *j; - - j = ordered_hashmap_get(users, i->name); - if (j) { - /* There's already user to be created for this - * name, let's process that in one step */ - - if (i->gid_set) { - j->gid = i->gid; - j->gid_set = true; - } - - if (i->gid_path) { - r = free_and_strdup(&j->gid_path, i->gid_path); - if (r < 0) - return log_oom(); - } - - return 0; - } - + case ADD_GROUP: return add_group(i); - } default: assert_not_reached("Unknown item type"); diff --git a/test/TEST-21-SYSUSERS/test-4.expected-group b/test/TEST-21-SYSUSERS/test-4.expected-group new file mode 100644 index 0000000..64913a5 --- /dev/null +++ b/test/TEST-21-SYSUSERS/test-4.expected-group @@ -0,0 +1 @@ +xxx:x:310: diff --git a/test/TEST-21-SYSUSERS/test-4.expected-passwd b/test/TEST-21-SYSUSERS/test-4.expected-passwd new file mode 100644 index 0000000..e0370a4 --- /dev/null +++ b/test/TEST-21-SYSUSERS/test-4.expected-passwd @@ -0,0 +1,2 @@ +yyy:x:311:310::/:/sbin/nologin +xxx:x:312:310::/:/sbin/nologin diff --git a/test/TEST-21-SYSUSERS/test-4.input b/test/TEST-21-SYSUSERS/test-4.input new file mode 100644 index 0000000..620423e --- /dev/null +++ b/test/TEST-21-SYSUSERS/test-4.input @@ -0,0 +1,3 @@ +g xxx 310 +u yyy 311:310 +u xxx 312:310 -- 2.7.4