Excluindo um arquivo chmod 0 sem direitos de superusuário?

2

Um script PHP alterou acidentalmente os flags corretos (chmod) de um diretório para 0. (Sem acesso a ninguém, incluindo o proprietário). Se eu não tiver acesso root a este servidor, é possível excluir o arquivo novamente com FTP ou PHP?

    
por Tarnschaf 18.12.2009 / 08:41

3 respostas

6

Salvo o uso de ACLs fora do sistema básico de permissões, um chmod 000 pode ser desfeito sem autoridade adicional. Os bits de permissão controlam o acesso ao conteúdo do arquivo, mas não controlam o acesso de gravação aos próprios bits de permissão. Normalmente, root e o proprietário do arquivo sempre têm acesso de gravação aos bits de permissão. Portanto, você deve conseguir "recuperar" o arquivo, desde que possa executar ações como o proprietário do arquivo.

$ id -u                                       
501
$ echo foo > foo                              
$ stat -f '%u %p' foo; cat foo                
501 100644
foo
$ chmod 000 foo
$ stat -f '%u %p' foo; cat foo
501 100000
cat: foo: Permission denied
$ chmod 644 foo
$ stat -f '%u %p' foo; cat foo
501 100644
foo

Se você tiver acesso ao shell e seu usuário do shell possuir o arquivo (ou o seu usuário puder mudar para o proprietário do arquivo (su / sudo /…)), apenas chmod será devolvido manualmente. Caso contrário, se você puder editar o script PHP (e o PHP for executado como o proprietário do arquivo), basta editá-lo para chmod do arquivo para as permissões desejadas.

    
por 18.12.2009 / 09:30
0

Se você pode alterar o PHP que criou o arquivo em primeiro lugar, talvez você possa fazer o PHP redefinir as permissões para o que você quer ...

    
por 18.12.2009 / 10:04
-1

Basicamente, não. Você perdeu todo o acesso ao arquivo. Apenas root pode alterar as permissões nesse arquivo. Entre em contato com o administrador do sistema ou com os administradores da empresa de hospedagem ou ISP que hospeda o site.

    
por 18.12.2009 / 08:49

Tags