TrocaID: mudanças entre as edições

De Wiki Clusterlab.com.br
Ir para navegação Ir para pesquisar
Sem resumo de edição
 
(Sem diferença)

Edição atual tal como às 19h34min de 23 de outubro de 2018

#!/bin/bash
function AJUDA() {
        echo Erro de argumentos
        echo Exemplo:
        echo $0 \<Arquivo\|Diretorio\> \<grupo\|usuario\> \<id atual\> \<id novo\>
        echo $0 \<Arquivo\|Diretorio\> \<listar\>
}
if [ $# -eq 4 ]
then
        export ANTES=$3
        export DEPOIS=$4
        find $1 | \
        while read objeto
        do
                export objeto_uid=$(stat $objeto | grep ^Access | grep Uid | awk '{print $4}' | sed -e "s/\///g" -e "s/(//g")
                export objeto_gid=$(stat $objeto | grep ^Access | grep Uid | awk '{print $7}' | sed -e "s/\///g" -e "s/(//g")
                case $2 in
                        usuario)
                                if [ $objeto_uid -eq $ANTES ]
                                then
                                        chown $DEPOIS $objeto
                                fi
                                ;;
                        grupo)
                                if [ $objeto_gid -eq $ANTES ]
                                then
                                        chown :$DEPOIS $objeto
                                fi
                                ;;
                        *)
                                AJUDA
                                ;;
                esac
        done
else
        if [ $# -eq 2 ]
        then
                if [ "$2" == "listar" ]
                then
                        find $1 | \
                        while read objeto
                        do
                                export objeto_uid=$(stat $objeto | grep ^Access | grep Uid | awk '{print $4}' | sed -e "s/\///g" -e "s/(//g")
                                export objeto_gid=$(stat $objeto | grep ^Access | grep Uid | awk '{print $7}' | sed -e "s/\///g" -e "s/(//g")
                                echo $objeto $objeto_uid $objeto_gid
                        done
                fi
        else
                AJUDA
                exit 1
        fi
fi