From ccec146c5218e27688262dc86c659301d8e1dee6 Mon Sep 17 00:00:00 2001 From: Jackie Huang Date: Wed, 19 Oct 2016 13:00:57 +0800 Subject: adduser: always add -M option for useradd The useradd (from package passwd) in debian based system sets -M (--no-create-home) by default, but the one we are using (from package shadow) sets -m (--create-home) by default, the previous patch added -M option conditionally, which worked but we see a confused message: "The home directory `/home/newuser' already exists. Not copying from `/etc/skel'" So change it to always add the -M option for useradd and let adduser handle the home creation with its logic. Signed-off-by: Jackie Huang Signed-off-by: Martin Jansa --- meta-perl/recipes-perl/adduser/adduser_3.115.bb | 2 +- ...-M-option-for-useradd-when-no-create-home.patch | 57 ---------------------- .../files/adduser-add-M-option-for-useradd.patch | 45 +++++++++++++++++ 3 files changed, 46 insertions(+), 58 deletions(-) delete mode 100644 meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-when-no-create-home.patch create mode 100644 meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch (limited to 'meta-perl') diff --git a/meta-perl/recipes-perl/adduser/adduser_3.115.bb b/meta-perl/recipes-perl/adduser/adduser_3.115.bb index 312bad8d8b..81068d6007 100644 --- a/meta-perl/recipes-perl/adduser/adduser_3.115.bb +++ b/meta-perl/recipes-perl/adduser/adduser_3.115.bb @@ -7,7 +7,7 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef" SRC_URI = "http://ftp.de.debian.org/debian/pool/main/a/${BPN}/${BPN}_${PV}.tar.xz \ - file://adduser-add-M-option-for-useradd-when-no-create-home.patch \ + file://adduser-add-M-option-for-useradd.patch \ " SRC_URI[md5sum] = "6bb6d93922d281f1b56393a53f8ce5fd" diff --git a/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-when-no-create-home.patch b/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-when-no-create-home.patch deleted file mode 100644 index 4b0a03f02a..0000000000 --- a/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd-when-no-create-home.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 809f00a6ef0224b41b2e1207194c8da3cd3e3c7e Mon Sep 17 00:00:00 2001 -From: Jackie Huang -Date: Thu, 18 Dec 2014 17:23:37 +0800 -Subject: [PATCH] adduser: add -M option for useradd when --no-create-home is specified - -The useradd (from package passwd) in debian based system sets -M (--no-create-home) by default, -but the one we are using (from package shadow) sets -m (--create-home) by default, so we -need to explicitly add -M option for useradd call when --no-create-home is specified for adduser. - -Upstream-Status: Pending - -Signed-off-by: Jackie Huang ---- - adduser | 20 ++++++++++++++++---- - 1 files changed, 16 insertions(+), 4 deletions(-) - -diff --git a/adduser b/adduser -index c3bd8b0..9a07f9f 100755 ---- a/adduser -+++ b/adduser -@@ -434,8 +434,14 @@ if ($action eq "addsysuser") { - $shell = $special_shell || '/bin/false'; - $undouser = $new_name; - my $useradd = &which('useradd'); -- &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -- $shell, '-u', $new_uid, $new_name); -+ if ($no_create_home) { -+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -+ $shell, '-u', $new_uid, '-M', $new_name); -+ } -+ else { -+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -+ $shell, '-u', $new_uid, $new_name); -+ } - if(!$disabled_login) { - my $usermod = &which('usermod'); - &systemcall($usermod, '-p', '*', $new_name); -@@ -524,8 +530,14 @@ if ($action eq "adduser") { - $shell = $special_shell || $config{"dshell"}; - $undouser = $new_name; - my $useradd = &which('useradd'); -- &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -- $shell, '-u', $new_uid, $new_name); -+ if ($no_create_home) { -+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -+ $shell, '-u', $new_uid, '-M', $new_name); -+ } -+ else { -+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', -+ $shell, '-u', $new_uid, $new_name); -+ } - &invalidate_nscd(); - - create_homedir (1); # copy skeleton data --- -1.7.1 - diff --git a/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch b/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch new file mode 100644 index 0000000000..2ecec512fb --- /dev/null +++ b/meta-perl/recipes-perl/adduser/files/adduser-add-M-option-for-useradd.patch @@ -0,0 +1,45 @@ +From 55a0adfc416ad85dbc440eaa667d98c200a8ce62 Mon Sep 17 00:00:00 2001 +From: Jackie Huang +Date: Thu, 18 Dec 2014 17:23:37 +0800 +Subject: [PATCH] adduser: add -M option for useradd + +The useradd (from package passwd) in debian based system sets -M (--no-create-home) by default, +but the one we are using (from package shadow) sets -m (--create-home) by default, so we +need to explicitly add -M option for useradd call or it will try to create home twice and +throw a confused message: +"The home directory `/home/newuser' already exists. Not copying from `/etc/skel'" + +Upstream-Status: Submitted [1] + +[1] https://lists.alioth.debian.org/pipermail/adduser-devel/2016-October/005478.html + +Signed-off-by: Jackie Huang +--- + adduser | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/adduser b/adduser +index a5f83f3..f6cb52c 100755 +--- a/adduser ++++ b/adduser +@@ -435,7 +435,7 @@ if ($action eq "addsysuser") { + $undouser = $new_name; + my $useradd = &which('useradd'); + &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', +- $shell, '-u', $new_uid, $new_name); ++ $shell, '-u', $new_uid, '-M', $new_name); + if(!$disabled_login) { + my $usermod = &which('usermod'); + &systemcall($usermod, '-p', '*', $new_name); +@@ -525,7 +525,7 @@ if ($action eq "adduser") { + $undouser = $new_name; + my $useradd = &which('useradd'); + &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s', +- $shell, '-u', $new_uid, $new_name); ++ $shell, '-u', $new_uid, '-M', $new_name); + &invalidate_nscd(); + + create_homedir (1); # copy skeleton data +-- +1.8.5.2 + -- cgit 1.2.3-korg