Conceder acesso SSH à subpasta que é de propriedade de raiz

0

Eu tenho uma pasta / srv / jarvis que possui uma subpasta e uma delas é chamada carl (/ srv / jarvis / carl)

O jarvis Dir tem esses direitos

drwxrwxrwx 12 root root    4096 Jun  9 11:34 jarvis

E Carl tem esses direitos

drwxr-xr-x  4 carl carl 4096 Jun  9 13:02 carl

No / etc / ssh / sshd_config eu adicionei estas linhas

Match user carl
    ChrootDirectory /srv/jarvis/carl
    ForceCommand internal-sftp
    AllowTCPForwarding no
    X11Forwarding no

Mas se eu adicionar essas linhas e fizer o serviço ssh restart

então o usuário não pode entrar nesse servidor. Write fails: Broken pipe. E se remover as linhas do sshd_config ele pode logar novamente, mas eu não quero que

Eu quero que o uso acesse somente o / srv / jarvis / carl / e faça o que ele quiser Também ele não pode fazer nada do root:)

Como posso corrigir esses problemas

    
por Infira 09.06.2014 / 16:08

1 resposta

0

Nas suas anotações do auth.log, parece que esse é um problema de permissão. Especificamente, a linha de registro que diz

21:10:18 localhost sshd[16609]: fatal: bad ownership or modes for chroot directory component "/srv/"

Se você deixar sua linha sshd_config lendo ChrootDirectory /srv/jarvis/carl , como é atualmente, todos os diretórios neste caminho precisarão ter as seguintes características:

  • Precisa ser de propriedade do usuário raiz (o grupo não é importante)
  • Não pode ser grupo ou mundo gravável (ou seja, seria necessário chmod 755 )

Novamente, isso se aplica a /srv , /srv/jarvis e /srv/jarvis/carl . Infelizmente, o resultado disso é que esse usuário carl não poderá gravar em seu diretório de nível superior (depois que o chroot entrar em vigor). Uma maneira de contornar isso é preparar um subdiretório e dar a ele a propriedade dele, então ele tem algum lugar para criar arquivos e pastas.

Eu mesmo não testei, mas algumas discussões sobre esse tópico na Web levaram-me a acreditar que, se você alterasse sua diretiva ChrootDirectory para ler:

ChrootDirectory /srv/jarvis/%u

(que, no seu caso, sempre significará /srv/jarvis/carl , já que ele é o único que corresponderia), sshd pode tratar a pasta correspondente com curinga de maneira diferente. Você pode se safar com o usuário carl possuindo a pasta carl desta maneira. Mais uma vez, sem garantias. Caso contrário, o primeiro método descrito deve funcionar.

    
por rocketman10404 12.06.2014 / 13:00