Config VSFTP para enviar usuários para pastas específicas

3

Eu tenho aproximadamente 30 usuários em uma caixa. Esses usuários estão em grupos sobrepostos (cerca de 6 a 10 grupos). Eu preciso que eles possam pousar em uma pasta específica com base em sua atribuição de grupo quando eles FTP in.

ou seja, group1 - > / tmp / site1 group2 - > / tmp / site2

Isso é possível com o VSFTP em uma caixa SuSE? Usar o SFTP não é uma opção, infelizmente.

Obrigado!

EDIT: E no caso de um usuário estar em vários grupos, basta jogá-los na pasta de nível mais alto necessária para visualizar as várias pastas às quais eles têm acesso.

    
por Publiccert 28.02.2012 / 22:39

3 respostas

3

Você pode criar uma lista chroot com vsftpd.conf

veja as instruções de ajuda aqui: link

Acho que você está procurando por este trecho de informação:

All the users belonging to ftp-users group goes into /home/ftp-docs/ftp_stuff by default when they login. They cannot navigate in other directories and are restricted to this particular directory.

You do this:

Create a directory by issuing the following command as root:

mkdir -p /home/ftp-docs/ftp_stuff

Then do this:-

chgrp ftp-users /home/ftp-docs/ftp_stuff chmod 3777 /home/ftp-docs/ftp_stuff

In the /etc/vsftpd/vsftpd.conf write this chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list

Put all you ftp-users group userś name in /etc/vsftpd.chroot_list Then in the /etc/passwd file make the home directory of all the users belonging to ftp-users group to /home/ftp-docs/ftp_stuff. Then do the following:

service vsftpd restart

Then login via any user belonging to ftp-users group you will lend into /home/ftp-docs/ftp_stuff. You cant go to the other higher level directories.

você pode criar várias entradas na lista para vários grupos. a ordem em que esses grupos estão no arquivo de lista ditará seu diretório mais alto, acredito.

Espero que ajude. Thomas

    
por 03.03.2012 / 05:07
1

Existem algumas opções.

  1. Defina a direção inicial do usuário para o diretório necessário (em / etc / passwd) e configure a associação ao grupo, e configure o vsftpd para fazer o chroot em sua pasta pessoal.

    echo chroot_local_user=YES >> /etc/vsftpd/vsftpd.conf
    

    Se eles realmente precisam de acesso local por algum motivo, então as coisas ficam um pouco mais complicadas, o que me leva à segunda posição.

  2. Bloqueie os usuários em sua pasta pessoal como em # 1, mas não altere suas pastas base em / etc / passwd. Em vez disso, adicione um ponto de montagem aos diretórios aos quais eles precisam acessar dentro da pasta inicial.

    mount --bind /tmp/site1 /home/ftp_user/site1
    

Este requer um clique extra pelos usuários, mas permite que o diretório inicial seja configurado corretamente.

Além disso, eu executaria uma tarefa cron diária para verificar a associação e ajustar a pasta base / ponto de montagem no evento que a associação ao grupo foi alterada.

    
por 07.03.2012 / 15:40
0

um cenário como este seria perfeitamente adequado para proftpd + mod_mysql, permitiria que você

  1. gerencie os usuários facilmente via mysql, pois duvido que lidar com 30 ou mais usuários de shell seja muito confortável
  2. definir diretórios iniciais, grupos para usuários com base em dados em uma tabela
  3. modifica a consulta usada pelo proftpd para recuperar informações do banco de dados do usuário, para que você possa executar tarefas condicionais como você sugeriu (grupos sobrepostos, que podem ser escolhidos)
  4. monitorar uso, largura de banda via mysql
  5. conseguir escalar para muito mais usuários do que 30 com facilidade
  6. use sua tabela de dados do usuário para outras tarefas administrativas que exigem pesquisa ou modificação de dados do usuário
  7. ter todos esses dados exibidos em um bom gui ou painel da web

Tudo isso só é possível se você estiver migrando para o proftpd, mas como obviamente você não está usando isso na produção, ainda assim não seria uma grande coisa, eu acho

    
por 02.03.2012 / 16:05

Tags