De um ponto de vista de segurança, para mim, esse diretório, bem como qualquer diretório para o qual o servidor da Web precise ir, deve ser configurado de tal forma que o servidor da web não seja o proprietário do arquivos / diretórios e de tal forma que não há direitos para escrever em qualquer diretório / arquivo.
Ao fazer isso, significa que, qualquer violação que você tenha no servidor, nunca resultaria em mais do que um DOS e uma exfiltração, os arquivos não poderiam ser gravados pelo servidor web.
Claro, na vida real as coisas podem ficar mais complicadas como:
- algum aplicativo CGI / dentro do servidor pode precisar ter acesso de gravação em algum lugar, por exemplo, para armazenar dados da sessão se não for feito com um banco de dados
- o próprio servidor da web normalmente precisa de acesso de gravação em algum lugar para gravar arquivos de log, etc.
- em algumas configurações, e pode ter efeitos positivos de segurança, cada aplicativo dentro do servidor da Web pode ser executado em outro UID que o próprio servidor da web. O malabarismo sobre propriedade e direitos pode se tornar complicado. Provavelmente é por isso que você pode ver muitas vezes on-line muitas pessoas dizendo: basta colocar
rwx
em todos os lugares e funcionará. É claro que se você der a todos todo o direito, "funciona", mas eles são conseqüências de segurança.
Portanto, se você quiser que os usuários se conectem ao seu servidor para fazer upload de novos arquivos por meio do SFTP, para que possam ser servidos por um servidor da Web, eu gostaria de:
- faz com que cada usuário possua seu diretório específico com direitos totais para eles
- faça com que o grupo principal do servidor da web seja o grupo de cada diretório específico do usuário, com
rx
correto para ele - sem direitos para outros usuários
Ao fazer isso, cada usuário vê apenas seus próprios arquivos e nada mais (o SFTP também tem a opção de chrooting para segurança adicional, mas isso vem com suas próprias complexidades) e o servidor da Web tem acesso a todos os arquivos apenas para leitura. / p>
Dentro de cada diretório você pode ter todos os arquivos pertencentes ao grupo do servidor web ou até mesmo colocar rx
para qualquer pessoa, desde que seja protegido pelo diretório principal sem direitos para outros usuários que o proprietário ou o servidor web. .