From acb4644f1ed6941d81d98c0323c936c3c4ae6e16 Mon Sep 17 00:00:00 2001 From: Matt Coddington Date: Mon, 6 Feb 2012 16:21:51 -0500 Subject: [PATCH] redhat groupmod doesn't support --gid option redhat groupmod doesn't support password chages redhat doesn't support getent gshadow --- conf/type/__group/explorer/gshadow | 10 +++++++++- conf/type/__group/gencode-remote | 15 ++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/conf/type/__group/explorer/gshadow b/conf/type/__group/explorer/gshadow index 51d502a1..2c0c0e8c 100755 --- a/conf/type/__group/explorer/gshadow +++ b/conf/type/__group/explorer/gshadow @@ -22,6 +22,14 @@ # name=$__object_id +os="$($__explorer/os)" -getent gshadow "$name" || true +case "$os" in + centos|fedora|redhat) + grep "^${name}:" /etc/gshadow || true + ;; + *) + getent gshadow "$name" || true + ;; +esac diff --git a/conf/type/__group/gencode-remote b/conf/type/__group/gencode-remote index cf26a437..9a283207 100755 --- a/conf/type/__group/gencode-remote +++ b/conf/type/__group/gencode-remote @@ -23,23 +23,36 @@ # name="$__object_id" +os="$(cat "$__global/explorer/os")" 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) + 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 + ;; + esac ;; gid) current_value="$(awk -F: '{ print $3 }' < "$__object/explorer/group")" + case "$os" in + centos|fedora|redhat) proparg="-g" ;; + esac ;; esac if [ "$new_value" != "$current_value" ]; then - set -- "$@" "--$property" \"$new_value\" + set -- "$@" "$proparg" \"$new_value\" fi done