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:59:54 -0300

Galera, consegui fazer com o -mount!

 find . -mount -exec chown apache:www-data {} \+

Depois com o stat da pra verificar os arquivos:

 find . -mount -exec stat --format="%U - %n" {} \+

Vou montar o script e testar hoje a noite na pasta! =)

Obrigado pelas dicas galera!

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.



2012/6/13 Raphael R. O. <address@hidden>

> 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]