OpenSSH SFTP: usuário de chrooted com acesso a outros arquivos de usuários de chrooted

1

Decidi reescrever a questão inteiramente para não ter que criar uma nova.

Atualmente tenho um servidor SFTP configurado usando a funcionalidade SFTP do OpenSSH. Todos os meus usuários são chrooted e tudo funciona.

O que eu mais preciso agora é para um usuário, que não é root (porque esse usuário não pode ter poderes SSH reais!), para ter acesso aos diretórios chroot de todos os outros usuários. O trabalho desse usuário é buscar todos os documentos enviados de vez em quando.

A estrutura de diretórios a partir de agora é:

/ home | _ / home / user1 | _ / home / user2 | _ / home / user3

Com o ChrootDirectory definido como / home /% u

O usuário "adminuser" deve ter acesso aos diretórios user1, user2 e user3 sem ter acesso a / home ou, no mínimo, a nada além de / home.

Pontos de bônus para quem pode me dizer como deixar os usuários escreverem dentro de / home /% u sem ter que criar um novo diretório dentro daquele diretório que eles mesmos possuam, e não root como está o caso com / home /% u (pré-requisito do opensh chroot).

    
por HannesFostie 04.05.2010 / 15:17

3 respostas

4

Crie um novo diretório inicial, como / chroothome.

Os diretórios pessoais de todos os usuários residem nesse cromátomo.

chroot adminuser para / chroothome.

Para todo o resto, basta usar as permissões do sistema de arquivos.

No que diz respeito à sua "pergunta de bônus", não é possível usar a funcionalidade nativa. A incapacidade de o usuário chroot gravar no diretório raiz é um mecanismo de segurança por design. Claro, você sempre pode modificar o código-fonte.

No entanto, suspeito que você poderia especificar o diretório home do usuário como / user1 e ter o diretório de trabalho no login como o que ele poderia gravar.

    
por 13.05.2010 / 01:10
0

Em seu / etc / ssh / sshd_config, adicione estas linhas:

Subsystem sftp internal-sftp

Match group SFTP-users
     ChrootDirectory /home/%u
     X11Forwarding no
     AllowTcpForwarding no
     ForceCommand internal-sftp

Em seguida, altere o proprietário do diretório inicial do usuário

# chown root.root /home/user
# usermod -d / user
# adduser user SFTP-users

Reinicie o daemon do servidor ssh

#/etc/init.d/sshd restart
    
por 04.05.2010 / 15:35
0

1 °) O Sshd verifica se o diretório pessoal é de propriedade do usuário que efetuou login. 2 °) se você usar o chroot, o sshd verificará que todo pai de diretório para a casa é de propriedade de root ( link )

Se você quiser chroot um usuário e deixá-lo ler chroot para outros usuários, a casa deste usuário deve ser um diretório pai do chroot desses usuários. Por causa disso, você quebrou uma das duas regras anteriores.

AFAIK, a única solução seria corrigir o sshd: -)

    
por 11.05.2010 / 20:57