Debain software do servidor FTP, qual deles suporta a minha configuração?

2

Estou à procura de algum software de servidor FTP para o Debain 6.0 Squeeze que possa suportar o seguinte:

  • Nome de usuário / senha do MySQL.
  • Separa cada login de usuário em seu próprio diretório.
  • No diretório de usuários, preciso configurar subdiretórios específicos para os quais o usuário pode ter qualquer combinação das seguintes permissões:
    • Listar arquivos
    • Arquivos de leitura
    • Gravar arquivos
    • Excluir / sobrescrever arquivos
  • Além disso, quando um usuário faz o upload de um arquivo, eu preciso ser capaz de definir os arquivos Linux permission flags / ownership
  • Preferencialmente, execute nos modos seguro (SFTP) e não seguro

Alguém tem alguma recomendação para algum software que pode fazer mais (se não todos)?

    
por Petah 19.04.2011 / 01:42

1 resposta

2

A maior parte disso é bastante simples. O pure-ftpd-mysql ou vsftpd + libpam-mysql pode usar (com configuração suficiente) uma tabela MySQL para usuários "virtuais", chroot-los para seu próprio diretório e configurar arquivos recebidos ' umask bits. Ambos podem usar SSL (FTPS) e podem forçar clientes a usar SSL ou permitir logins inseguros e seguros.

As permissões exigirão um pouco de lubrificação. A solução óbvia seria usar as permissões do sistema de arquivos unix:

  • "x" bit nos diretórios permite que os usuários "insiram" o diretório
  • "r" bit nos diretórios permite que os usuários listem o diretório
  • "w" bit nos diretórios permite que os usuários criem ou excluam arquivos e subdiretórios.
  • .... a menos que o bit "t" fixo esteja definido, caso em que eles não poderão excluir arquivos de propriedade de outra pessoa.
  • "r" bit nos arquivos permite que os usuários leiam o arquivo
  • "w" bit nos arquivos permite que os usuários gravem no arquivo

Existem dois problemas potenciais com base nos seus requisitos.

A questão menor é a distinção entre "escrever" e "sobrescrever". Alguém com acesso de gravação ao arquivo pode apagar todos os dados do arquivo (truncá-lo) e preencher o arquivo com dados completamente diferentes. Não tenho certeza se o protocolo FTP permite isso (continuar de um deslocamento de 0 talvez?). Alguém sem acesso de gravação ao arquivo, mas com acesso de gravação ao diretório, pode excluir o arquivo e criar um novo arquivo com o mesmo nome de arquivo.

O maior problema é que criar e excluir arquivos é um único sinalizador. Se você precisa ter arquivos que os usuários não podem excluir no mesmo diretório dos arquivos que podem, a solução mais fácil é criar dois usuários: um usuário ftpuser para o qual todos os seus usuários virtuais serão mapeados e um usuário ftpnodel quem será o proprietário de todos os arquivos que você não quer que eles excluam, mas que ninguém faz login como. Em seguida, você definirá o bit em todos os diretórios, chown os arquivos undeletable para ftpnodel .

Com esta solução, você usaria os bits rwx "user" para controlar o acesso normal a arquivos e diretórios, e os bits rwx "world" (também conhecidos como "outros") para controlar o acesso aos arquivos ftpnodel.

    
por 19.04.2011 / 04:32