# useradd/groupadd macros written by glen@pld-linux.org. # All rights reserved. Permission to copy is hereby granted.. yada, yada, yada # # Usage: # %useradd [-P package] [-u uid] [-d home_dir] [-s shell] [-c comment] # [-g initial_group] [-G group[,...]] login # # -u uid. REQUIRED # -g gid/group. REQUIRED # -s defaults to /bin/false # -d defaults to /usr/share/empty # -c No default # -r is accepted but ignored (it's always set) # -k skeleton dir. defaults to /usr/share/empty # rpm specific flags # -P package name. defaults to %{name} # %useradd(c:d:e:f:g:G:Mmk:op:s:u:rP:) \ %{!-u:%{error:useradd: Required argument -u missing}} \ %{!-g:%{error:useradd: Required argument -g missing}} \ %{!?1:%{error:useradd: Required parameter login missing}} \ if [ -n "`/bin/id -u %{expand:%{%{#}}} 2>/dev/null`" ]; then \ if [ "`/bin/id -u %{expand:%{%{#}}}`" != "%{-u*}" ]; then \ echo "Error: user %{expand:%{%{#}}} doesn't have uid=%{-u*}. Correct this before installing %{-P*}%{!?-P:%{name}}." 1>&2 \ exit 1 \ fi \ else \ echo "Adding user %{expand:%{%{#}}} UID=%{-u*}." \ /usr/sbin/useradd \\\ %{-m:-m -k %{-k*}%{!-k:/usr/share/empty}} \\\ -u %{-u*} \\\ -r \\\ -d %{-d*}%{!-d:/usr/share/empty} \\\ -s %{-s*}%{!-s:/bin/false} \\\ %{-c:-c "%(set -- %{-c*} %{*}; echo $1)"}\\\ -g %{-g*} \\\ %{-M} \\\ %{-G:-G %{-G*}} \\\ %{expand:%{%{#}}} 1>&2 || exit $? \ [ ! -x /usr/sbin/nscd ] || /usr/sbin/nscd -i passwd \ fi; # Usage: # %groupadd [-P package] [-g gid] group # # -g gid. REQUIRED # # Sample: # %groupadd -P %{name}-base -g %{gid} %{name} %groupadd(g:P:rfo) \ %{!-g:%{error:groupadd: Required argument -g missing}} \ %{!?1:%{error:groupadd: Required parameter group missing}} \ if [ -n "`/usr/bin/getgid %{1}`" ]; then \ if [ "`/usr/bin/getgid %{1}`" != "%{-g*}" ]; then \ echo "Error: group %{1} doesn't have gid=%{-g*}. Correct this before installing %{-P*}%{!?-P:%{name}}." 1>&2 \ exit 1 \ fi \ else \ echo "Adding group %{1} GID=%{-g*}." \ /usr/sbin/groupadd -g %{-g*} -r %{1} 1>&2 || exit $? \ [ ! -x /usr/sbin/nscd ] || /usr/sbin/nscd -i group \ fi;