adduser: add new recipe

This is a utility from debain to add users/groups to the system,
which is actually a perl wrapper of the useradd/groupadd command.

We want this to replace the same commands provided by busybox.

Homepage: https://alioth.debian.org/projects/adduser

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Jackie Huang 2015-01-12 11:25:28 +08:00 committed by Martin Jansa
parent 8c17bb27c5
commit 2fbc57e105
2 changed files with 110 additions and 0 deletions

View File

@ -0,0 +1,53 @@
SUMMARY = "a utility to add users/groups to the system"
DESCRIPTION = "adduser, addgroup - add a user or group to the system"
HOMEPAGE = "http://alioth.debian.org/projects/adduser/"
SECTION = "base/utils"
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.gz \
file://adduser-add-M-option-for-useradd-when-no-create-home.patch \
"
SRC_URI[md5sum] = "ccb5864bde56683182c89c44474e7182"
SRC_URI[sha256sum] = "02682be3f51f3e732121f20a3e4922bb8bef15cfacb8767fc250a01d09502122"
inherit cpan-base update-alternatives
do_install() {
install -d ${D}${sbindir}
install -m 0755 ${S}/adduser ${D}${sbindir}
install -m 0755 ${S}/deluser ${D}${sbindir}
install -d ${D}${libdir}/perl/${PERLVERSION}/Debian
install -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl/${PERLVERSION}/Debian
sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/*
install -d ${D}/${sysconfdir}
install -m 0644 ${S}/*.conf ${D}/${sysconfdir}
install -d ${D}${mandir}/man5
install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5
install -d ${D}${mandir}/man8
install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8
install -d ${D}${docdir}/${BPN}
cp -rf ${S}/examples ${D}${docdir}/${BPN}
}
RDEPENDS_${PN} += "\
shadow \
perl-module-getopt-long \
perl-module-overloading \
perl-module-file-find \
perl-module-file-temp \
"
ALTERNATIVE_${PN} = "adduser deluser addgroup delgroup"
ALTERNATIVE_PRIORITY = "60"
ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}"
ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}"

View File

@ -0,0 +1,57 @@
From 809f00a6ef0224b41b2e1207194c8da3cd3e3c7e Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
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 <jackie.huang@windriver.com>
---
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