Como posso acessar um diretório fora de um chroot dentro dele?

29

Eu tenho um usuário que é chrooted em seu diretório pessoal, mas quero que ela também possa gerenciar arquivos em /var/www . Como tal, fiz o seguinte:

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

No entanto, quando tento abrir /www com o FileZilla, ele retorna "nenhum arquivo ou diretório". Eu posso ver o diretório vinculado, mas não consigo acessá-lo. O que estou fazendo errado?

    
por Doc 14.11.2012 / 16:50

1 resposta

48

Links simbólicos são essencialmente apenas ponteiros para outro arquivo, você não pode apontar para algo fora do chroot porque ele está procurando por um arquivo com esse nome ( /var/www , que não existe dentro o chroot). Hardlinks, por outro lado, são ponteiros para o inode. Assim, se você quiser fazer isso, precisará usar um link físico omitindo -s . No entanto, não é possível vincular rigidamente um diretório (diferente de . e .. ) no Linux por uma variedade de razões (a principal delas é que esses sistemas de arquivos são um DAG ).

Talvez a melhor maneira seja usar uma montagem de ligação. Tente isto:

mount --bind /var/www /home/username/www
    
por 14.11.2012 / 16:52