Permissões de arquivo Ubuntu

Permissões de arquivo Ubuntu

Estou tendo problemas com permissões de arquivo em um servidor Ubuntu. Estou usando o WinSCP para mover arquivos para o servidor. O servidor funcionará bem e, depois de um tempo, parece que não tenho mais permissão para excluir um arquivo.

Estou me conectando ao servidor usando uma conta chamadasvadmin, e o diretório raiz do servidor Apache é/var/www. Cada site tem seu próprio diretório - ou seja

/var/www/site1
/var/www/site2

Esta é a saída do comando ls ...

cd /var/www
ls -al
drwxr-sr-x   4  svadmin  svadmin  4096 2009-06-12 14:45 .
drwxr-xr-x  15  root     root     4096 2009-05-05 15:47 ..
drwxr-sr-x   4  svadmin  svadmin  4096 2009-06-12 15:15  site1
drwxr-sr-x   4  svadmin  svadmin  4096 2009-06-12 15:15  site2

Meu entendimento é que isso significa que o proprietário do diretório leu/gravou/executou? Quando me conecto ao servidor usando a conta svadmin, não deveria ser possível substituir ou excluir arquivos em/var/www/site1 ou/var/www/site2?

Não estou muito familiarizado com as permissões de arquivos/diretórios do Linux, então estou lutando para descobrir o que devo fazer. Qualquer ajuda seria muito apreciada!

Mais informações: (obrigado pelas respostas rápidas!)

Saída de ls -al para /var/www/site1

drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 15:15 .
drwxr-sr-x 4 svadmin svadmin 4096 2009-06-12 14:45 ..
-rw-r--r-- 1 svadmin svadmin 157  2009-05-12 13:23 error.php
-rw-r--r-- 1 svadmin svadmin 158  2009-05-12 13:23 .htaccess
-rw-r--r-- 1 svadmin svadmin 142  2009-05-12 13:23 index.php
drwxr-sr-x 2 svadmin svadmin 4096 2009-05-12 18:40 libraries

Mensagem de erro quando tento excluir o arquivo:

rm admin.php
rm: cannot remove 'admin.php' : Read-only file system

Ainda mais informações Só para acrescentar alguma informação possivelmente relevante... tudo funcionou até ontem à tarde. Nesse ponto, um colega de trabalho retirou a SAN em que o arquivo da máquina virtual estava e o servidor da Web teve um desligamento nada normal.

Responder1

Este não é um problema de permissões. As duas pistas são:

  • rm: não é possível remover 'admin.php': sistema de arquivos somente leitura
  • tudo estava funcionando até ontem à tarde. Nesse ponto, um colega de trabalho retirou a SAN em que o arquivo da máquina virtual estava e o servidor da Web teve um desligamento nada normal.

De alguma forma, o sistema de arquivos que contém /var/www caiu para "somente leitura", provavelmente quando a SAN desapareceu. A saída do mountcomando deve identificar este sistema de arquivos com um sinalizador (ro) no final.

A solução é descobrir por que isso aconteceu, certificar-se de que foi corrigido e remontar o sistema de arquivos rw com este comando:

mount -oremount,rw $filesystem

Responder2

Se você tiver rwx em um diretório, isso significa que você pode editar o arquivo do diretório, o que equivale a remover e adicionar arquivos. A edição de arquivos depende de suas permissões individuais. Qual é a aparência de um ls -l de um dos subdiretórios?

Responder3

Seu problema é a parte pegajosa. Observe que as permissões não existem drwxr-xr-x, elas existem drwxr-sr-x. A Wikipédia diz:

O uso mais comum do sticky bit hoje é em diretórios, onde, quando definidos, os itens dentro do diretório podem ser renomeados ou excluídos apenas pelo proprietário do item, pelo proprietário do diretório ou pelo superusuário; sem o sticky bit definido, qualquer usuário com permissões de gravação e execução para o diretório pode renomear ou excluir os arquivos contidos, independentemente do proprietário. Normalmente, isso é definido no diretório /tmp para evitar que usuários comuns excluam ou movam arquivos de outros usuários. Este recurso foi introduzido no 4.3BSD em 1986 e hoje é encontrado na maioria dos sistemas Unix modernos.

Portanto, os arquivos só podem ser gravados e excluídos pelo grupo que os colocou lá.

informação relacionada