Alguém pode explicar um pouco sobre as permissões e segurança da pasta Unix?

1

Por que eu alteraria as permissões de pasta para 755 ou 777, por exemplo?

Eu li que significa ler escrever e executar, mas o que eu quero saber, alguém pode roubar códigos php dependendo dessas permissões?

Obrigado.

    
por Darius 31.03.2011 / 05:51

4 respostas

3

Cada arquivo ou pasta tem um proprietário do usuário e um proprietário do grupo. Fazer ls -l em um arquivo mostrará quem são os donos atuais. O "dono" é um usuário de / etc / passwd, o grupo é um grupo de / etc / groups e o outro representa todo o resto.

Os três dígitos no número da permissão representam as permissões para o usuário, grupo e "outro".

Então 755 significa:

user=7
group=5
other=5

Um arquivo pode ter permissões de leitura, permissões de gravação e permissões de execução.

Leitura = 4 Escreva = 2 execute = 1

Eles são essencialmente o que parecem, ler permite ler o conteúdo de um arquivo, escrever permite editar o arquivo. Executar é necessário para executar scripts e, no caso de pastas, permitir o acesso a eles.

Ao adicioná-los, você recebe o número de permissão. No caso de 755:

User: read(4)+write(2)+execute(1)= 7
Group: read(4)+execute(1)=5
Other: read(4)+execute(1)=5

Você precisa dar 755 em uma pasta porque um usuário da Internet que acessa seu site se encaixará na categoria "outros" e, para acessar uma pasta em seu servidor (e quaisquer scripts dentro dessa pasta), eles precisam poder para entrar nessa pasta, então eles precisam da permissão de execução.

O 777 geralmente não é uma boa ideia, pense nisso desta maneira ... você quer que qualquer outro usuário tenha a capacidade de editar algo em seu servidor?

Há muito mais para saber sobre permissões, confira este link para saber mais info.

Quanto a roubar código PHP, seu servidor web deve servir automaticamente qualquer arquivo com o handle .php como um script PHP e não exibir o PHP para um usuário. No entanto, se você nomear seu script de qualquer coisa que não seja manipulada pelo seu servidor da Web, ele será exibido como texto se o usuário do seu servidor da Web tiver permissão para lê-lo.

Se você está falando sobre usuários internos que roubam código através de um terminal, você pode remover as permissões de leitura de qualquer pessoa que não seja seu servidor da Web.

    
por 31.03.2011 / 06:18
1

755 é octal para 111-101-101 em binário, o que significa ...

User    | Group   | Others
==========================
Read    | Red     | Read
Write   | -       | -
Execute | Execute | Execute

Portanto, somente o usuário pode write para este arquivo. 777 permite que usuário, grupo e outros usuários gravem nesse arquivo, que geralmente é irrestrito demais.

    
por 31.03.2011 / 06:06
1

É claro - se eles puderem ler, eles poderão "ver".

Existem algumas maneiras pelas quais os aplicativos protegem seu código. Isso tudo é específico da aplicação , e qualquer tratamento em profundidade deve ser encaminhado aos codificadores de aplicativos.

  • Permissões do sistema de arquivos

É fácil simplesmente dizer "ninguém pode ver esses arquivos". No entanto, você precisará de pelo menos seu servidor web para poder ler os arquivos e, bem, atendê-los. php pode ser executado pelo servidor web, então ele vai precisar de permissão 7. Assumindo que você está logado como o usuário que o servidor web está rodando, você obtém o 7 do 755.

Outras pessoas precisam ser capazes de determinar qual arquivo querem, então precisam ser capazes de vê-las. Eles também (dependendo do aplicativo) podem precisar ler o arquivo, portanto, o servidor da Web pode processá-lo.

  • Proteção no nível do código

PHP Code pode ser visto em vários métodos. Nos velhos tempos de escola, você tinha que colocar um comando die () em algum lugar da página, então se as pessoas estivessem se dedicando a isso, então, como deveriam ser, não haveria bits imperfeitos.

Ao criar isso no código, configurando o servidor da Web para fazer isso ou fazendo os dois, você pode manter os olhos indesejados fora.

  • Proteção no nível do aplicativo

Qualquer código pode ser comprometido, por isso é muito importante manter usuários com problemas e manter bons usuários nos locais em que eles devem estar.

    
por 31.03.2011 / 06:26
0

Existem algumas combinações de permissões interessantes:

  • /tmp é tipicamente o modo 1777 - todos podem criar arquivos lá, mas o "bit pegajoso" significa que somente o proprietário do arquivo tem permissão para excluí-lo.
  • Algumas pessoas mantêm um diretório incoming em seu diretório inicial, para que outras pessoas descartem arquivos. Tal diretório normalmente teria um modo de 733, então todos podem entrar no diretório e criar novos arquivos lá, mas não descobrir quais arquivos existem.
  • Se você tiver um diretório public_html com uma home page de usuário, mas não quiser que outras pessoas vejam seu diretório inicial, use o 711 para permitir que todos acessem o diretório e os arquivos de referência de lá, mas Não liste o conteúdo do diretório ou adicione arquivos (observe que, se você souber o nome de um arquivo e tiver permissão para acessá-lo, poderá fazê-lo).
por 31.03.2011 / 12:22