Como restringir o usuário do SSH / SFTP a uma subpasta de um site da apache?

5

Atualmente, estou configurando o apache em um servidor Linux e preciso criar um novo usuário que possa fazer login e editar apenas arquivos em um diretório específico.

Atualmente, tenho a configuração do meu site como

/ data / htdocs / mywebsite /

As permissões são apache: apache

Agora, o que eu preciso fazer é criar um novo usuário "joeblogs" e restringir este usuário a acessar somente / data / htdocs / mywebsite / store /

Os usuários devem poder acessar SSH e também SFTP, mas sempre devem ser direcionados diretamente para essa pasta, também o usuário deve poder ter acesso total à pasta / store /, mas não poder ver nenhuma outra pasta ou diretório. arquivos no sistema /

Qualquer ajuda sobre isso seria apreciada Eu tenho andado em círculos por horas.

    
por MonkeyBlue 25.05.2011 / 10:37

1 resposta

1

O SSH tem a capacidade de chroot embutir um usuário (desde 4.9p1), mas usá-lo para sessões interativas é um pouco difícil.

Restringir o sftp é bastante fácil, e pode ser configurado por usuário ou por grupo

Match User joeblogs
    ChrootDirectory /data/htdocs/mywebsite/store/
    ForceCommand internal-sftp
    AllowTcpForwarding no

As sessões interativas são mais complexas, porque o usuário precisa de um shell e de alguns arquivos do dispositivo estarem presentes.

De man 5 sshd_config :

The ChrootDirectory must contain the necessary files and directories to support the user's session. For an interactive session this requires at least a shell, typically sh(1), and basic /dev nodes such as null(4), zero(4), stdin(4), stdout(4), stderr(4), arandom(4) and tty(4) devices

Eu não recomendaria isso, já que você precisaria criar e manter uma cópia de todos os utilitários que eles precisem em seu chroot. Se você ainda quiser tentar seguir esse caminho, pode ler mais sobre ele na página do manual sshd_config, e aqui

    
por 25.05.2011 / 21:34