Chmod: definição de todos (777)

3

Se eu Chmod um diretório a 777. O que exatamente todo mundo quer dizer? Alguém que se conecta com o FTP sem usar a senha ou outra coisa?

Eu tenho um Wordpress CMS e estou tentando instalar um plugin, no entanto ele decidiu que não pode baixar o plugin para um diretório temporário, então eu estou supondo que eu preciso chmod algo, não diz o que . Mas eu não quero chmod para 777 e dar a ninguém acesso ao servidor?

    
por Jonathan. 21.01.2011 / 00:28

5 respostas

3

Como Christopher Evans disse, faça o plugin e os diretórios temporários para o usuário (ou grupo) em que o servidor da Web está sendo executado e defina permissões apropriadas. Se você não tem acesso aos diretórios do chown, você está praticamente preso a configurar o modo para 777 (world-writable).

Evertything else é a palestra de permissões abreviadas do Unix - você pode obter a mesma coisa de man chmod com muito mais detalhes.

Os três campos para permissões unix são proprietário , grupo e outro .

Cada campo é uma máscara de bits, com os valores sendo 1 (execute (& liste o conteúdo de um diretório)), 2 (Write) e 4 (leitura)

As permissões em um arquivo são determinadas por esses valores -

  • 777 concede ao Proprietário, Grupo e "Outro" (pessoas que não são nem o proprietário nem o grupo) acesso total para ler, gravar / modificar e executar / listar o conteúdo do arquivo / diretório em questão. / li>
  • 007 concede esse nível de acesso apenas a "Outras" pessoas - o proprietário não teria acesso
  • 770 concede acesso total ao usuário e ao grupo, mas o nega a todos os outros. É provavelmente o que você quer fazer - deixar-se como proprietário e chover o diretório para o grupo do servidor.
por 21.01.2011 / 00:40
1
                           user  group other(anybody)
chmod 777 directory - gives rwx - rwx - rwx

r - read
w - write
x - execute

basicamente você dá acesso total.

    
por 21.01.2011 / 00:37
1

Pense nisso como três números separados e, da esquerda para a direita, estipula o acesso que o usuário, o grupo e qualquer outra pessoa têm. Por todos, significa qualquer pessoa que esteja conectada ao seu servidor (via FTP, SSH ou qualquer outra coisa).

Se você conceder a todos 7 permissões (o que significa ler, escrever e executar), elas podem fazer qualquer uma dessas coisas. Em termos de um diretório, eles precisam executar para abrir o diretório, então o único problema real é o w, o que significa que eles podem criar um novo arquivo dentro do diretório ou renomeá-lo. Se o seu servidor web pode criar arquivos .php dentro do DocumentRoot, isso é muito ruim na instância que seu site de alguma forma permite isso (não tão incomum quanto você pensa).

O Wordpress está tentando gravar em um diretório, portanto, ele só precisa acessar como o usuário está sendo executado. Irritantemente eu acho que o Wordpress verifica o usuário de um diretório, em vez de sua capacidade de escrever para ele, então isso pode ser o seu problema. Alternativamente, crie um arquivo php dentro do site com <?php phpinfo(); ?> dentro dele. Navegue até esta página e verifique que o modo de segurança do PHP não está ativado (outro problema comum com a escrita do PHP). Além disso, verifique o log de erros do site, pois ele contém muitas informações úteis.

    
por 21.01.2011 / 00:41
1

Como foi afirmado em outras respostas, os três números determinam a permissão de acesso nesta ordem:

  • o proprietário (corresponder ao UID)
  • membros do GID dos arquivos (excluindo o proprietário)
  • qualquer UID não coberto pelas duas especificações anteriores.

Assim, você pode ter um arquivo que realmente conceda mais acesso a pessoas que não sejam o grupo ou proprietário do arquivo:

[dave@store01 tmp]$ touch this
[dave@store01 tmp]$ sudo chmod 007 this
[dave@store01 tmp]$ ls -l this
-------rwx 1 dave users 0 Jan 20 22:15 this
[dave@store01 tmp]$ cat this
cat: this: Permission denied

A exceção a isso é raiz. Qualquer arquivo em que o root tenha controle de root não pode ser negado ao root (*).

[root@store01 tmp]# touch that
[root@store01 tmp]# chmod 007 that
[root@store01 tmp]# ls -l that
-------rwx 1 root root 0 Jan 20 22:17 that
[root@store01 tmp]# cat that
[root@store01 tmp]#

No seu caso específico, chmod'ing o diretório para 777 significa que qualquer pessoa que possa acessar o diretório terá acesso total a tudo. Pode ser mais simples conceder acesso ao 777 ao diretório de destino, fazer seu upload e, em seguida, bloquear imediatamente o diretório. Você NÃO quer deixar seu sistema assim.

Eu pessoalmente tentaria entender o que o UID está envolvido com a transação com falha e ver se a concessão de propriedade diferente ou acesso de grupo funcionaria melhor, dependendo do que eu queria fazer imediatamente e do que eu gostaria de fazer no futuro.

-

(*) = usando este mecanismo. As coisas ficam mais complicadas com ACLs e atributos estendidos, mas isso está além do escopo desta questão

    
por 21.01.2011 / 04:24
0

Eu recomendo chowning o plugin ou o diretório temporário para o usuário que o servidor da Web executa como.

    
por 21.01.2011 / 00:37