Tentando entender o comportamento do symlink com vsftpd

2

Recentemente, mudei meu site para um VOS CentOS 6 (de um VOS CentOS 5 habilitado para HyperVM). Eu configurei o vsftpd para lidar com as nossas necessidades de FTP. Eu criei um usuário local para todos que precisam usar o FTP. Para meu usuário Joe, ele faz o login com o FileZilla e entra em /home/joe . Joe pode usar essa pasta para armazenamento privado, mas eu coloquei um link simbólico para que ele possa acessar o armazenamento público em /var/www/html/storage .

Então, em seu diretório, eu fiz como root: ln -s /var/www/html/storage/ storage

Por algum motivo, o final / é necessário, senão storage aparecerá como um arquivo no FileZilla, em vez de um atalho para um diretório.

De qualquer forma, enquanto em /home/joe , quando Joe navega para storage , seu caminho se torna de repente /var/www/html/storage em vez de /home/joe/storage . Isso dificulta a navegação de volta para a pasta pai em seu diretório pessoal.

Existe uma maneira de corrigir isso?

chroot está desativado no meu servidor, e tudo bem. Eu confio em meus usuários, mas é apenas inconveniente para eles serem jogados em volta do sistema de arquivos através dos symlinks. Se eu ativar chroot , eles não poderão acessar /var/www .

O mais bizarro é que isso funcionou no meu VPS anterior com o HyperVM. Mas esse usou PureFTP em vez de vsftp. E acho que criou usuários virtuais em vez de usuários locais reais na máquina. Os usuários virtuais precisam ser capazes de fazer links simbólicos da maneira que eu quero?

Outra solução que pesquisei foi usar mount --bind , mas não tenho certeza se essa é a melhor ação a ser tomada. Isso destruirá meu sistema de arquivos para ter toneladas de pontos de montagem? Também parece impróprio quando ln -s deveria estar funcionando. Se eu SSH no meu servidor como Joe, eu posso ir para /home/joe/storage em um shell bash. Então, por que não posso fazer isso no FTP?

Como observação, isso tem algo a ver com LIST versus MLSD em clientes FTP? Eu tenho um usuário de Mac que não é capaz de ver os links simbólicos como links simbólicos, mesmo se eu colocar um / no link.

    
por Crisu 23.10.2011 / 02:07

1 resposta

2

eu faria a opção mount --bind .. pois pelo menos iria manter o pathing no filezilla.

Também fazendo isso se você quiser habilitar o chroot no vsftp para que o usuário veja / home / user como / ele adicione mais segurança, mas o mount -bind permitiria que o usuário ainda chegue a esse diretório enquanto o symlink não

    
por 23.10.2011 / 02:49