summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysmerge
diff options
context:
space:
mode:
authorajacoutot <ajacoutot@openbsd.org>2017-10-28 07:22:56 +0000
committerajacoutot <ajacoutot@openbsd.org>2017-10-28 07:22:56 +0000
commit88b68bce3d992196efd4003bff6ecd6ce7690b7a (patch)
treed6158604705eefbc1280190445d4e23730ae41d2 /usr.sbin/sysmerge
parentRename function name and order. No fuctional change. (diff)
downloadwireguard-openbsd-88b68bce3d992196efd4003bff6ecd6ce7690b7a.tar.xz
wireguard-openbsd-88b68bce3d992196efd4003bff6ecd6ce7690b7a.zip
Prefer useradd(1) over chpass(1) so that new users are added before the YP '+'
token. req. by Miod
Diffstat (limited to 'usr.sbin/sysmerge')
-rw-r--r--usr.sbin/sysmerge/sysmerge.sh34
1 files changed, 19 insertions, 15 deletions
diff --git a/usr.sbin/sysmerge/sysmerge.sh b/usr.sbin/sysmerge/sysmerge.sh
index 169da579b1b..ea8dbc3479a 100644
--- a/usr.sbin/sysmerge/sysmerge.sh
+++ b/usr.sbin/sysmerge/sysmerge.sh
@@ -1,6 +1,6 @@
#!/bin/ksh -
#
-# $OpenBSD: sysmerge.sh,v 1.232 2017/08/22 13:31:40 ajacoutot Exp $
+# $OpenBSD: sysmerge.sh,v 1.233 2017/10/28 07:22:56 ajacoutot Exp $
#
# Copyright (c) 2008-2014 Antoine Jacoutot <ajacoutot@openbsd.org>
# Copyright (c) 1998-2003 Douglas Barton <DougB@FreeBSD.org>
@@ -340,30 +340,34 @@ sm_install() {
}
sm_add_user_grp() {
- local _g _p _gid _u _rest
+ local _name _c _d _e _f _G _g _L _pass _s _u
local _gr=./etc/group
local _pw=./etc/master.passwd
${PKGMODE} && return
- while IFS=: read -r -- _g _p _gid _rest; do
- if ! grep -Eq "^${_g}:" /etc/group; then
- getent group ${_gid} >/dev/null && \
- sm_warn "Not adding group ${_g}, GID ${_gid} already exists" && \
+ while IFS=: read -r -- _name _pass _g _G; do
+ if ! getent group ${_name} >/dev/null; then
+ getent group ${_g} >/dev/null && \
+ sm_warn "Not adding group ${_name}, GID ${_g} already exists" && \
continue
- echo "===> Adding the ${_g} group"
- groupadd -g ${_gid} ${_g}
+ echo "===> Adding the ${_name} group"
+ groupadd -g ${_g} ${_name}
fi
done <${_gr}
- while IFS=: read -r -- _u _p _uid _rest; do
- if [[ ${_u} != root ]]; then
- if ! grep -Eq "^${_u}:" /etc/master.passwd; then
- getent passwd ${_uid} >/dev/null && \
- sm_warn "Not adding user ${_u}, UID ${_uid} already exists" && \
+ while IFS=: read -r -- _name _pass _u _g _L _f _e _c _d _s
+ do
+ if [[ ${_name} != root ]]; then
+ if ! getent passwd ${_name} >/dev/null; then
+ getent passwd ${_u} >/dev/null && \
+ sm_warn "Not adding user ${_name}, UID ${_u} already exists" && \
continue
- echo "===> Adding the ${_u} user"
- chpass -a "${_u}:${_p}:${_uid}:${_rest}"
+ echo "===> Adding the ${_name} user"
+ [[ -z ${_L} ]] || _L="-L ${_L}"
+ useradd -c "${_c}" -d ${_d} -e ${_e} -f ${_f} \
+ -g ${_g} ${_L} -s ${_s} -u ${_u} \
+ ${_name} >/dev/null
fi
fi
done <${_pw}