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: Wed, 13 Jun 2012 12:30:49 -0300

Pessoal, obrigado pelas dicas... bom vamos la:

Realmente acho que o chown -R seria a melhor opção... porém, tem um pequeno
problema, dentro dessa pasta, eu tenho um ponto de montagem de outro
servidor, e nessa pasta tem mais de 50Gb...

Não quero que as permissões se apliquem a essa pasta, pensei em montar com
o find... mais não estou achando a combinação certa, pois ele ainda esta
aplicando as permissões a pasta...

find /var/www/ -type d -path '/var/www/sites/files' -prune -o -type f -exec
chown apache:websrv {} \+

Tentei com o maxdepth, mas tb nao consegui!

Onde estou errando ?

*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/13 Fernando Mercês <address@hidden>

> **
>
>
> Sem dúvida o chown -R é mais rápido. Se te atender, manda bala!
>
> Abraço.
> Em 12/06/2012 18:10, "Raphael R. O." <address@hidden> escreveu:
>
>
> > 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]
> >
> >
> >
> > ------------------------------------
> >
> > ----------------------------------------------------------
> > 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]