From 15a8757c214b0aff57bf6c7e520ab819c9d1fcb564dd60ecd8c46a48e3625eb0 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Mon, 12 Feb 2018 09:05:22 +0000 Subject: [PATCH] - Create a system user, not a regular user - Check if user/group already exists and are in system range - Do not ignore return values from user/group creation OBS-URL: https://build.opensuse.org/package/show/server:dns/nsd?expand=0&rev=36 --- nsd.changes | 7 +++++++ nsd.spec | 12 ++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/nsd.changes b/nsd.changes index a514082..5adf361 100644 --- a/nsd.changes +++ b/nsd.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Feb 12 08:54:46 UTC 2018 - adam.majer@suse.de + +- Create a system user, not a regular user +- Check if user/group already exists and are in system range +- Do not ignore return values from user/group creation + ------------------------------------------------------------------- Mon Feb 5 10:26:02 UTC 2018 - adam.majer@suse.de diff --git a/nsd.spec b/nsd.spec index 675500d..fd34110 100644 --- a/nsd.spec +++ b/nsd.spec @@ -54,10 +54,11 @@ BuildRequires: pwdutils BuildRequires: tcpd-devel Requires: %fillup_prereq Requires: pwdutils +Requires(pre): coreutils Requires(post): coreutils Requires(post): findutils -Requires(post): shadow Requires(pre): shadow +Requires(post): shadow %if %{with systemd} BuildRequires: systemd-devel %{?systemd_requires} @@ -114,10 +115,13 @@ ln -s -f %{_sysconfdir}/init.d/%{name} %{buildroot}%{_sbindir}/rc%{name} %pre # -# e.g. adding user +# adding user and group, if it doesn't exist yet # -%{_sbindir}/groupadd -r _nsd &>/dev/null ||: -%{_sbindir}/useradd -g _nsd -s /bin/false -r -c "user for %{name}" -d %{home} _nsd &>/dev/null ||: +if ! ${_bindir}/id _nsd > /dev/null 2> /dev/null; then + echo "Creating _nsd:_nsd" && \ + %{_sbindir}/groupadd -r _nsd && \ + %{_sbindir}/useradd -r -g _nsd -s /bin/false -r -c "user for %{name}" -d %{home} _nsd +fi %if %{with systemd} %service_add_pre %{name}.service %endif