diff options
author | Milan Zink <mzink@redhat.com> | 2018-01-10 13:04:42 +0100 |
---|---|---|
committer | jiffin tony Thottan <jthottan@redhat.com> | 2018-04-06 12:47:56 +0000 |
commit | dbb838d7eb993816e06cc993ee82c3272d5b1586 (patch) | |
tree | 2e77e7f046b10d268c9e830c4edd00cc48068905 /extras | |
parent | 479bea17e75d8e75a8901d01b3fd3627bfd8991c (diff) |
extras/hooks: Fix S10selinux-label-brick.sh hook script
* script was failng due to syntax error
* shellcheck issues fixed
* improved performance: semanage & restorecon is being run on unique path
Upstream reference:
>Change-Id: I58b357d9fd37586004a2a518f7a5d1c5c9ddd7e3
>BUG: 1533342
>Signed-off-by: Milan Zink <zeten30@gmail.com>
Change-Id: I58b357d9fd37586004a2a518f7a5d1c5c9ddd7e3
BUG: 1546627
Signed-off-by: Jiffin Tony Thottan <jthottan@redhat.com>
Diffstat (limited to 'extras')
-rwxr-xr-x | extras/hook-scripts/create/post/S10selinux-label-brick.sh | 57 |
1 files changed, 29 insertions, 28 deletions
diff --git a/extras/hook-scripts/create/post/S10selinux-label-brick.sh b/extras/hook-scripts/create/post/S10selinux-label-brick.sh index f38555c26c0..a727226a492 100755 --- a/extras/hook-scripts/create/post/S10selinux-label-brick.sh +++ b/extras/hook-scripts/create/post/S10selinux-label-brick.sh @@ -14,48 +14,49 @@ OPTSPEC="volname:" VOL= parse_args () { - ARGS=$(getopt -l $OPTSPEC -name $PROGNAME $@) - eval set -- "$ARGS" - - while true; do - case $1 in - --volname) - shift - VOL=$1 - ;; - *) - shift - break - ;; - esac + ARGS=$(getopt -o '' -l ${OPTSPEC} -n ${PROGNAME} -- "$@") + eval set -- "${ARGS}" + + while true; do + case ${1} in + --volname) + shift + VOL=${1} + ;; + *) shift - done + break + ;; + esac + shift + done } set_brick_labels() { - volname=$1 + volname=${1} - # grab the path for each local brick - brickdirs=$(grep '^path=' /var/lib/glusterd/vols/${volname}/bricks/* | cut -d= -f 2) + # grab the path for each local brick + brickpath="/var/lib/glusterd/vols/${volname}/bricks/*" + brickdirs=$(grep '^path=' "${brickpath}" | cut -d= -f 2 | sort -u) - for b in $brickdirs - do - # Add a file context for each brick path and associate with the - # glusterd_brick_t SELinux type. - semanage fcontext --add -t glusterd_brick_t -r s0 $b(/.*)? + for b in ${brickdirs}; do + # Add a file context for each brick path and associate with the + # glusterd_brick_t SELinux type. + pattern="${b}\(/.*\)?" + semanage fcontext --add -t glusterd_brick_t -r s0 "${pattern}" - # Set the labels on the new brick path. - restorecon -R $b - done + # Set the labels on the new brick path. + restorecon -R "${b}" + done } SELINUX_STATE=$(which getenforce && getenforce) [ "${SELINUX_STATE}" = 'Disabled' ] && exit 0 parse_args $@ -[ -z "$VOL" ] && exit 1 +[ -z "${VOL}" ] && exit 1 -set_brick_labels $VOL +set_brick_labels "${VOL}" exit 0 |