понедельник, 27 декабря 2010 г.

Скрипт для задания ACL для папок, имена которых прсутсвуют в именах группы

У меня в АД есть отдельная OU в которой присутсвуют группы которым выданы права на ресурсы: принтеры, общие папки, доступ в интернет, удаленный доступ, доступ к объектам АД.
Для групп, которым выдается разрешение на папку присваивается имя:
dl_atdfs_ИМЯПАПКИ_ТИПРАЗРЕШЕНИЯ
Где тип разрешения это чтение или запись.
В результате становится достаточно просто быстро сделать ACL для папок.

#!/bin/bash
export IFS=`/bin/echo -ne "\t\n\r"`

FOLDERSLIST=`ls -A1d /pub/*/ | awk -F "/" '{ print $3 }'`

for folder in $FOLDERSLIST
do
    echo $folder
    readgroup=`getent group | grep -i atdfs | grep -i "_"$folder"_read" | grep -i read | awk -F ":" '{ print $1 }' `
    modifygroup=`getent group | grep -i atdfs | grep -i "_"$folder"_modify" | grep -i modify | awk -F ":" '{ print $1 }' `
    # echo $readgroup, $modifygroup
    setfacl -R -m g:$readgroup:rX,g:$modifygroup:rwX $folder
    getfacl --access $folder | setfacl -R -d -M- $folder

#     GROUPLIST=`getent group | grep -i "$folder" | awk -F ":" '{ print $1 }'
#     | awk '{sub(/ /,"\\ ");print}'`
#    for group in $GROUPLIST
#    do
#       echo $group
#    done

done