shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Checar permissão e dono de arquivo


From: Raphael R. O.
Subject: Re: [shell-script] Checar permissão e dono de arquivo
Date: Tue, 12 Jun 2012 18:09:27 -0300

Cara eu tinha feito algo parecido:

#!/bin/bash

for i in `find /var/www/ -type d -path '/var/www/files' -prune -o -type f
-exec ls '{}' \+`
do
        owner=`stat -c %U $i`
        group=`stat -c %G $i`

        if [ $owner != "apache" ] & [ $group != "www-data" ]
        then
                echo "DIFF: $i"
                echo "DIFF: `ls -ahl $i`" >> wrong.txt

        else
                echo "OK $i"
        fi

done

Mais ainda não sei se é a melhor solução, estou pensando na possibilidade
aplicar mesmo um chown recursivo, pois preciso da solução mais rápida...
vou medir os tempos e depois posto aqui!

Valeu pela ajuda galera! =)
*Raphael Rabelo*
*Fone:* (11) 6105-8257
*MSN:* address@hidden
*Site:* www.raphaelr.com.br
*LinkedIn*:  <http://www.linkedin.com/profile/view?id=79847968>

 Pense antes de imprimir este e-mail.



2012/6/12 Juranir Santos <address@hidden>

> **
>
>
> Boa tarde,
>
> Cara, veja se isso te ajuda:
>
> for arq in $(find /var/www/)
> do
> dono=$(stat -c %U $arq)
> grupo=$(stat -c %G $arq)
> if [ "$dono" != "apache" ] & [ "$grupo" != "www-data" ]
> then
> echo "$arq - $dono / $grupo" >> arqteste
> fi
> done
>
> Em 12 de junho de 2012 16:48, Tiago Peczenyj <address@hidden
> >escreveu:
>
>
> > 2012/6/12 Raphael R. O. <address@hidden>
> >
> > > **
> > >
> > >
> > > Exato, o que me interessa é que todos os arquivos esteja com um
> > determinado
> > > owner e group, porém, como isso só mudaria quando fosse aplicado
> arquivos
> > > novos, acho que um chown -R toda meia noite não seria o ideal...
> > >
> >
> > Então de uma olhada em puppet, chef ou rexify.
> >
> > Estamos usando puppet na globo.com, eu crio um "projeto" que descreve
> como
> > o meu servidor vai funcionar, ou seja eu crio diretorios, instalo rpms,
> > crio arquivos de configuração e, o mais importante, basta alterar esse
> > projeto e mandar o puppet rodar na maquina de destino que ela aplica o
> que
> > for necessario. Pode ser interessante se o seu projeto for mais complexo
> do
> > que um ou mais diretorios, se for menor que isso use shell script mesmo,
> > com as dicas do julião.
> >
> > Julio, um chown resolveria meu problema sim, mas o tempo que ele leva pra
> > > executar o chown eu acho um pouco alto, devido a quantidade de
> arquivo...
> > > então o que pensei seria analisar os arquivos com permissão diferente e
> > > depois aplicar o chown...
> > >
> > > Não se essa solução seria a melhor, pois fatalmente o find levaria a um
> > > chown ...
> > >
> > >
> > > *Raphael Rabelo*
> > > *Fone:* (11) 6105-8257
> > > *MSN:* address@hidden
> > > *Site:* www.raphaelr.com.br
> > > *LinkedIn*: <http://www.linkedin.com/profile/view?id=79847968>
> > >
> > > Pense antes de imprimir este e-mail.
> > >
> > > 2012/6/12 Julio C. Neves <address@hidden>
> > >
> > >
> > > > Fala Raphael,
> > > > se vc quiser ver os arquivos diferentes, será que um simples:
> > > >
> > > > $ ls -l /diretorio/desejado | grep -v 'apache *www-data'
> > > >
> > > > Não resolveria?
> > > >
> > > > Por outro lado, se não interessar quem está diferente acho que
> bastaria
> > > um
> > > > chown ... * e um chgrp ... *
> > > >
> > > > Abcs,
> > > > Julio
> > > >
> > > > *
> > > > *
> > > >
> > > >
> > > >
> > > > Em 12 de junho de 2012 15:46, Raphael R. O. <address@hidden>
> > > escreveu:
> > > >
> > > > > **
> > > > >
> > > > >
> > > > > Thiago tudo certo ?
> > > > >
> > > > > Eu preciso ver quer tem permissões diferentes, para poder aplicar a
> > > > > permissão correta. Exemplo:
> > > > >
> > > > > Diretório principal é o /var/www
> > > > > Dentro desse diretório eu preciso que TODOS os arquivos E pastas
> > > tenham o
> > > > > seguinte owner e group: apache:www-data
> > > > >
> > > > > O que consegui fazer até agora foi o seguinte:
> > > > >
> > > > > #!/bin/bash
> > > > >
> > > > > for i in `find /var/www/ -type d -path ' /var/www/files' -prune -o
> > > -type
> > > > f
> > > > > -exec ls -ahl '{}' \; | awk -F " " '{print $3"."$4}'`
> > > > > do
> > > > > if [ $i != "apache.www-data" ]
> > > > > then
> > > > > echo "Arquivo ok! $i"
> > > > > else
> > > > > echo "DIFF: $i"
> > > > > fi
> > > > > done
> > > > >
> > > > > Mas ainda nao sei se é a melhor solução... achei meio cabrito
> hehehe
> > > > >
> > > > >
> > > > > *Raphael Rabelo*
> > > > > *Fone:* (11) 6105-8257
> > > > > *MSN:* address@hidden
> > > > > *Site:* www.raphaelr.com.br
> > > > > *LinkedIn*: <http://www.linkedin.com/profile/view?id=79847968>
> > > > >
> > > > > Pense antes de imprimir este e-mail.
> > > > >
> > > > > 2012/6/12 Tiago Peczenyj <address@hidden>
> > > > >
> > > > > > Ola
> > > > > >
> > > > > > vc precisa verificar quem tem permissões diferentes ou se o
> > arquivo x
> > > > > > precisa ter permissão tal e grupo tal e não tem (e por acaso vc
> tem
> > > uma
> > > > > > base de dados com estas informações)?
> > > > > >
> > > > > > se for a segunda acho que vc pode utilizar uma ferramenta como
> chef
> > > ou
> > > > > > puppet (talvez rexify) para garantir esse tipo de coisa entre
> > > > servidores.
> > > > > > para a primeira vc poderia gerar um arquivo com o conteudo de um
> ls
> > > > -la e
> > > > > > filtrar as colunas que vc quer com awk, fazendo um diff depois.
> > > > > >
> > > > > > 2012/6/12 Raphael R. O. <address@hidden>
> > > > > >
> > > > > > > **
> > > > > > >
> > > > > > >
> > > > > > > Olá pessoal, boa tarde!
> > > > > > >
> > > > > > > Tenho um script que checa em vários servidores, a consistência
> > dos
> > > > > > arquivos
> > > > > > > de uma uma pasta, gerando um arquivo txt com o md5 de cada
> > arquivo
> > > e
> > > > > > depois
> > > > > > > comparando os 2 arquivos afim de checar se existe algum arquivo
> > > > > diferente
> > > > > > > dentro dessas pastas.
> > > > > > > Ok, isso resolve meu problema quanto a modificação de arquivos,
> > > porém
> > > > > se
> > > > > > as
> > > > > > > permissões dos arquivos, owner e group do arquivo estiverem
> > > > diferente,
> > > > > o
> > > > > > > md5 não consegue checar.
> > > > > > >
> > > > > > > Bom, preciso de algum script que procure dentro dessa pasta,
> > > > arquivos e
> > > > > > > pastas que estejam com permissões diferentes das que eu
> > determinei,
> > > > por
> > > > > > > exemplo:
> > > > > > > Dentro da pasta /var/www eu quero saber quais os arquivos e
> > pastas
> > > > > estão
> > > > > > > com owner e group diferente de apache.www-data
> > > > > > > Eu consegui até agora localizar os arquivos, porém
> determinando o
> > > > group
> > > > > > que
> > > > > > > desejo procurar:
> > > > > > >
> > > > > > > find /var/www/ -type d -path ' /var/www/files' -prune -o -group
> > > root
> > > > > > -type
> > > > > > > f -exec ls -ahl '{}' \+
> > > > > > >
> > > > > > > Porém ainda não funciona, pois as vezes o group pode ser
> > diferente
> > > de
> > > > > > root.
> > > > > > > Alguem consegue me dar essa luz ?
> > > > > > >
> > > > > > > Abs!
> > > > > > > *Raphael Rabelo*
> > > > > > > *Fone:* (11) 6105-8257
> > > > > > > *MSN:* address@hidden
> > > > > > > *Site:* www.raphaelr.com.br
> > > > > > > *LinkedIn*: <http://www.linkedin.com/profile/view?id=79847968>
> > > > > > >
> > > > > > > Pense antes de imprimir este e-mail.
> > > > > > >
> > > > > > > [As partes desta mensagem que não continham texto foram
> > removidas]
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Tiago B. Peczenyj
> > > > > > Linux User #405772
> > > > > >
> > > > > > http://pacman.blog.br
> > > > > >
> > > > > >
> > > > > > [As partes desta mensagem que não continham texto foram
> removidas]
> > > > > >
> > > > > >
> > > > > >
> > > > > > ------------------------------------
> > > > > >
> > > > > > ----------------------------------------------------------
> > > > > > Esta lista não admite a abordagem de outras liguagens de
> > programação,
> > > > > como
> > > > > > perl, C etc. Quem insistir em não seguir esta regra será moderado
> > sem
> > > > > > prévio aviso.
> > > > > > ----------------------------------------------------------
> > > > > > Sair da lista: address@hidden
> > > > >
> > > > > > ----------------------------------------------------------
> > > > > > Esta lista é moderada de acordo com o previsto em
> > > > > > http://www.listas-discussao.cjb.net
> > > > > > ----------------------------------------------------------
> > > > > > Servidor Newsgroup da lista: news.gmane.org
> > > > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > > > > >
> > > > > > Links do Yahoo! Grupos
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > > [As partes desta mensagem que não continham texto foram removidas]
> > > > >
> > > > >
> > > > >
> > > >
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > > > ------------------------------------
> > > >
> > > > ----------------------------------------------------------
> > > > Esta lista não admite a abordagem de outras liguagens de programação,
> > > como
> > > > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> > > > prévio aviso.
> > > > ----------------------------------------------------------
> > > > Sair da lista: address@hidden
> > > > ----------------------------------------------------------
> > > > Esta lista é moderada de acordo com o previsto em
> > > > http://www.listas-discussao.cjb.net
> > > > ----------------------------------------------------------
> > > > Servidor Newsgroup da lista: news.gmane.org
> > > > Grupo: gmane.org.user-groups.programming.shell.brazil
> > > >
> > > > Links do Yahoo! Grupos
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> >
> >
> > --
> > Tiago B. Peczenyj
> > Linux User #405772
> >
> > http://pacman.blog.br
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> > ----------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de programação,
> como
> > perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> > prévio aviso.
> > ----------------------------------------------------------
> > Sair da lista: address@hidden
> > ----------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em
> > http://www.listas-discussao.cjb.net
> > ----------------------------------------------------------
> > Servidor Newsgroup da lista: news.gmane.org
> > Grupo: gmane.org.user-groups.programming.shell.brazil
> >
> > Links do Yahoo! Grupos
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]