case-based exceptions only on OS's where we know they are needed

always use -g instead of --gid when passing arg to groupmod
This commit is contained in:
Matt Coddington 2012-02-07 17:29:55 -05:00
parent acb4644f1e
commit 1f8693a722
2 changed files with 15 additions and 14 deletions

View file

@ -22,11 +22,12 @@
#
name=$__object_id
os="$($__explorer/os)"
os_version="$($__explorer/os_version)"
case "$os" in
centos|fedora|redhat)
grep "^${name}:" /etc/gshadow || true
case "$os_version" in
"Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*)
# TODO: find a way to get this information
echo "$os_version does not have getent gshadow"
;;
*)
getent gshadow "$name" || true

View file

@ -23,31 +23,31 @@
#
name="$__object_id"
os="$(cat "$__global/explorer/os")"
os_version="$(cat "$__global/explorer/os_version")"
cd "$__object/parameter"
if grep -q "^${name}:" "$__object/explorer/group"; then
for property in $(ls .); do
new_value="$(cat "$property")"
# argument to pass the groupmod command for this property (os-specific
# exceptions are listed in the case statement below)
# argument to pass the groupmod command for this property (exceptions
# are made in the case statement below)
proparg="--$property"
case "$property" in
password)
current_value="$(awk -F: '{ print $2 }' < "$__object/explorer/gshadow")"
case "$os" in
centos|fedora|redhat)
echo "group/$name: $os groupmod does not support password modification" >&2
continue
case "$os_version" in
"Red Hat Enterprise Linux Server release "[45]*|"CentOS release "[45]*)
# TODO: Use gpasswd? Need to fix gshadow explorer first.
echo "group/$name: '$os_version' groupmod does not support password modification" >&2
exit 1
;;
esac
;;
gid)
# set to -g to support older redhat/centos
proparg="-g"
current_value="$(awk -F: '{ print $3 }' < "$__object/explorer/group")"
case "$os" in
centos|fedora|redhat) proparg="-g" ;;
esac
;;
esac