SFTP: arquivo symlinks em um diretório preso (chrooted)

22

Estou tentando configurar o sftp para que algumas pessoas confiáveis ​​possam acessar / editar / criar alguns arquivos. Prendi um usuário no diretório inicial (/ home / name), mas tive um problema. Desejo que eles também possam acessar outras partes do VPS, porque também é um servidor de jogos, host da web etc., e quero que eles possam ter controle total dos arquivos fora do diretório preso.

Tentei fazer um link simbólico (ln -s) para o diretório desejado, mas ele não funciona como esperado. Eu tentei (cp -rl) os arquivos que queria dar acesso e funcionou - eles podem editar os arquivos em seus diretórios e isso altera o arquivo armazenado fora da prisão. MAS eles não podem criar novos arquivos (eles podem, mas não serão atualizados fora da cadeia). Sei que provavelmente não estou fazendo isso da "maneira certa", mas o que posso fazer para fazer o que quero?

Dukevin
fonte

Respostas:

40

Os links simbólicos são puramente simbólicos: eles contêm nada além de um caminho; portanto, quando você abre um link simbólico, o sistema operacional lê o caminho e o utiliza. Em um ambiente chroot, os links (especialmente aqueles com caminhos absolutos) normalmente não apontam para o mesmo lugar que apontaram no ambiente normal.

Se o sistema operacional do servidor for Linux, sua melhor aposta é montar o diretório inteiro em algum lugar dentro do diretório chroot. Ao usar isso, é importante lembrar que essa não é uma cópia do diretório, qualquer coisa excluída aqui será removida do outro diretório (importante se o usuário puder mvarquivar ou rm -rf). Para fazer isso:

mount --bind /some/directory /somewhere/else

Os arquivos no diretório devem ser arquivos reais. Os links simbólicos aqui provavelmente terão os mesmos problemas que você está tentando vincular aos arquivos em primeiro lugar.

DerfK
fonte
Obrigado pela sua resposta. Você pode me explicar ou indicar um tutorial sobre como fazer isso funcionar? Eu tenho o ssh desativado para os convidados, para que eles tenham apenas acesso sftp. Que arquivo eu coloco este comando?
Dukevin 20/10/12
Embora não seja amplamente recomendável, você também pode criar links físicos de diretório, o que seria mais simples, mas apenas se todos os arquivos estiverem no mesmo dispositivo.
Falcon Momot
Qual é o comando para isso
Dukevin 20/10/12
@KevinDuke Isso não é algo que os usuários podem fazer por si mesmos, apenas o root pode usar mountdessa maneira. Pode haver uma maneira de especificar isso em /etc/fstabpor isso é feito automaticamente no boot, mas eu não sei como
DerfK
1
Obrigado. Eu li alguns tutoriais e descobri. Sua resposta realmente me ajudou a apontar na direção certa. Obrigado! Para aqueles que querem saber, eles ajudaram: aplawrence.com/Linux/mount_bind.html freebsd.org/doc/en_US.ISO8859-1/books/handbook/… redbottledesign.com/…
dukevin