Eu tenho vários diretórios espalhados pelos sistemas de arquivos de vários servidores Ubuntu 10.04.
Os requisitos são permitir que um punhado de pessoas acesse alguns desses diretórios pelo ftp.
Por exemplo, joe precisa enviar arquivos para / apps / app1. Alice precisa de capacidade para ftp para / apps / app2 e / mnt / apps / app4 (nfs compartilhar para outro servidor)
Eu realmente quero manter o vsftpd chroot para que esses usuários não possam ver nada além do diretório inicial.
Todos esses usuários são usuários do ldap. Seus diretórios pessoais são montados automaticamente a partir de um servidor central.
Então, idealmente, quando o joe ftp entrar, ele deverá ver um único diretório chamado "app1". Quando Alice entra, ela deve ver diretórios chamados "app2" e "app4". Eventualmente, precisarei adicionar mais diretórios "virtuais". Por exemplo, alice pode precisar acessar / apps / app5 em algumas semanas. Gostaria de poder adicioná-lo para que, quando ela entrar, veja "app2", "app4" e "app5".
Parece que deve ser fácil, mas andei em círculos sobre como fazer isso funcionar.
OPÇÃO 1
Eu tentei usar fstab e / ou autofs para montar coisas usando --bind nos diretórios home dos usuários. Isso funciona. É chato que quando você usa o autofs, os diretórios não são visíveis via ftp, a menos que alguém os tenha acessado recentemente.
Por que a OPÇÃO 1 falha:
Mesma razão que a OPÇÃO 3
OPÇÃO 2
Eu tentei usar links, mas, novamente, isso não parece funcionar. Eu criei uma unidade montada nfs (usando autofs) em / mnt / apps / app1. Então eu crio um link como ln -s / mnt / apps / app1 / home / ldap / joe / app1.
Por que a OPÇÃO 2 falha:
Quando eu logar no ftp como joe, eu posso ver o diretório "app1", mas se eu tentar abri-lo, recebo: 550 Falha ao abrir o arquivo. Erro: erro crítico de transferência de arquivos. Note que / home / ldap / joe é uma unidade montada automaticamente que está fisicamente em um servidor diferente em / apps / exports / home / joe. Eu li alguns outros lugares que uma vez que um usuário é chrooted, eles não podem seguir links simbólicos fora de seu diretório home.
OPÇÃO3
Configure todos os usuários para que eles tenham o mesmo diretório inicial e, em seguida, monte diretórios compartilhados no diretório inicial comum. Se você usar autofs, os nomes das pastas não aparecerão quando. Se eu usar fstab, é muito perto de uma solução viável.
Por que o OPTION3 falha:
Eu sou capaz de montar diretórios locais bem. Mas quando eu tento mount --bind <some mapped drive> /apps/app1
, quando eu ftp e navego no diretório, vejo um 500 Failed to change directory
.
Alguém tem uma solução elegante para esse problema? Talvez haja outro servidor ftp que suporte "diretórios virtuais"?