xbps-triggers: system-accounts: introduce <account>_pgroup to set primary group.

While here also change default home directory to /dev/null if unset.
This commit is contained in:
Juan RP 2015-02-23 22:09:20 +01:00
parent 26837c2859
commit 7339b81b43
4 changed files with 14 additions and 8 deletions

View File

@ -793,10 +793,11 @@ separated by blanks, i.e `system_accounts="foo blah:22"`. Optionally the **uid**
can be specified by delimiting it with a color, i.e `system_accounts="foo:48"`. can be specified by delimiting it with a color, i.e `system_accounts="foo:48"`.
Additional variables for the **system accounts** can be specified to change its behavior: Additional variables for the **system accounts** can be specified to change its behavior:
- `<account>_homedir` the home directory for the user. If unset defaults to `/`. - `<account>_homedir` the home directory for the user. If unset defaults to `/dev/null`.
- `<account>_shell` the shell for the new user. If unset defaults to `/sbin/nologin`. - `<account>_shell` the shell for the new user. If unset defaults to `/sbin/nologin`.
- `<account>_descr` the description for the new user. If unset defaults to `<user> unprivileged user`. - `<account>_descr` the description for the new user. If unset defaults to `<account> unprivileged user`.
- `<account>_groups` additional groups to be added to for the new user. - `<account>_groups` additional groups to be added to for the new user.
- `<account>_pgroup` to set the primary group, by default primary group is set to `<account>`.
The **system user** is created by using a dynamically allocated **uid/gid** in your system The **system user** is created by using a dynamically allocated **uid/gid** in your system
and it's created as a `system account`, unless the **uid** is set. A new group will be created for the and it's created as a `system account`, unless the **uid** is set. A new group will be created for the

View File

@ -90,6 +90,7 @@ _EOF
eval shell="\$${_uname}_shell" eval shell="\$${_uname}_shell"
eval descr="\$${_uname}_descr" eval descr="\$${_uname}_descr"
eval groups="\$${_uname}_groups" eval groups="\$${_uname}_groups"
eval pgroup="\$${_uname}_pgroup"
if [ -n "$homedir" ]; then if [ -n "$homedir" ]; then
echo "export ${_uname}_homedir=\"$homedir\"" >> $tmpf echo "export ${_uname}_homedir=\"$homedir\"" >> $tmpf
fi fi
@ -102,7 +103,10 @@ _EOF
if [ -n "$groups" ]; then if [ -n "$groups" ]; then
echo "export ${_uname}_groups=\"${groups}\"" >> $tmpf echo "export ${_uname}_groups=\"${groups}\"" >> $tmpf
fi fi
unset homedir shell descr groups if [ -n "$pgroup" ]; then
echo "export ${_uname}_pgroup=\"${pgroup}\"" >> $tmpf
fi
unset homedir shell descr groups pgroup
done done
fi fi
# #

9
srcpkgs/xbps-triggers/files/system-accounts Executable file → Normal file
View File

@ -89,7 +89,8 @@ run)
eval shell="\$${_uname}_shell" eval shell="\$${_uname}_shell"
eval descr="\$${_uname}_descr" eval descr="\$${_uname}_descr"
eval groups="\$${_uname}_groups" eval groups="\$${_uname}_groups"
[ -z "$homedir" ] && homedir="/" eval pgroup="\$${_uname}_pgroup"
[ -z "$homedir" ] && homedir="/dev/null"
[ -z "$shell" ] && shell="/sbin/nologin" [ -z "$shell" ] && shell="/sbin/nologin"
[ -z "$descr" ] && descr="${_uname} unprivileged user" [ -z "$descr" ] && descr="${_uname} unprivileged user"
[ -n "$groups" ] && user_groups="-G $groups" [ -n "$groups" ] && user_groups="-G $groups"
@ -105,11 +106,11 @@ run)
continue continue
fi fi
group_add ${acct} group_add ${pgroup:-${acct}}
if ! getent passwd ${_uname} >/dev/null; then if ! getent passwd ${_uname} >/dev/null; then
useradd -c "$descr" -d "$homedir" -s "$shell" \ useradd -c "$descr" -d "$homedir" -s "$shell" ${user_groups} \
${user_groups} ${use_id:=-g ${_uname}} -r ${_uname} && \ ${pgroup:+-N} ${use_id:=-g ${pgroup:-${_uname}}} -r ${_uname} && \
passwd -l ${_uname} >/dev/null 2>&1 passwd -l ${_uname} >/dev/null 2>&1
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
echo "Created ${_uname} (${_uid}) system user." echo "Created ${_uname} (${_uid}) system user."

View File

@ -1,6 +1,6 @@
# Template file for 'xbps-triggers' # Template file for 'xbps-triggers'
pkgname=xbps-triggers pkgname=xbps-triggers
version=0.91 version=0.92
revision=1 revision=1
noarch=yes noarch=yes
bootstrap=yes bootstrap=yes