Fornecendo acesso remoto aos arquivos para apenas um único diretório em um servidor Linux

0

Eu preciso dar a um usuário chamado "Bert" acesso a um diretório ( /var/www/application/thisDirectory/ ) no meu servidor Linux.

Inicialmente, tentei usar o FTP (na verdade SSH).

Meu primeiro pensamento foi chroot Bert e fazer a sua casa /var/www/application/thisDirectory/ . O problema é que isso exige que /var/www/application/ seja de propriedade e só esteja disponível para raiz, o que não é aceitável.

Em seguida, alterei o diretório pessoal do Bert para /home/Bert/ . Em seguida, coloquei um link simbólico no diretório pessoal do Bert e apontei para /var/www/application/thisDirectory , mas não acredito que isso tenha sido permitido porque o Bert foi chroot e é considerado um risco de segurança, e eu não consegui fazê-lo funcionar. Alguma idéia de como isso funciona?

Em seguida, deixando o diretório home de Bert como /home/Bert/ , movi /var/www/application/thisDirectory para /home/Bert/thisDirectory/ e adicionei o link simbólico /var/www/application/thisDirectory/ para apontar para /home/Bert/thisDirectory/ . Enquanto isso tecnicamente funcionou, causou estragos no controle da minha versão do Git, e eu mudei de volta.

Se eu não conseguir fazer isso funcionar, acho que eu poderia olhar para o Samba, mas preferiria não.

Obrigado

    
por user1032531 11.05.2014 / 18:11

1 resposta

2

Eu usei desse jeito e posso dizer que funciona,

no seu / etc / ssh / sshd_config, após a mudança recarregar o serviço sshd

Match User bert
ChrootDirectory /home/%u
ForceCommand internal-sftp

adicione o usuário

useradd -m -s /bin/false bert
passwd bert

permissão para o sftp

chown root:root /home/bert

crie o diretório para o usuário bert sob minha raiz do meu servidor:

mkdir /srv/www/htdocs/bertdir
chown bert:wwwrun /srv/www/htdocs/bertdir

Crie o ponto de montagem sob a home do usuário bert para montar o diretório:

mkdir /home/bert/www

Agora montamos o diretório

mount --bind /srv/www/htdocs/bertdir/ /home/bert/www/

Agora eu usei meu serviço sftp:

sftp> ls
bin          public_html  www       

Agora eu envio o / etc / passwd

sftp> put /etc/passwd
Uploading /etc/passwd to /www/passwd
    
por 11.05.2014 / 19:17