openssh sftp chroot: dois níveis de acesso

3

Eu gostaria de alcançar o seguinte com a diretiva internal-sftp, chroot e Match do OpenSSH:

Usuários pertencentes ao grupo sftpuser devem ter acesso de leitura e gravação para / srv / sftp / {username} (ou similar, certos truques para apresentar uma estrutura de diretórios mais agradável ao usuário podem ser tomados pelo chrooted) )

Usuários pertencentes ao grupo sftpadmin devem ter acesso de leitura e gravação a / srv / sftp e subdiretórios, ou seja, todos os outros diretórios de usuários.

Todos os usuários pertencentes ao sftpadmin ou sftpuser são usuários somente do sftp. Então não precisa se preocupar com shells, etc.

/ srv / sftp precisa ser de propriedade do root para que os usuários do sftpadmin sejam chrooted para essa pasta. / srv / sftp / {username} também precisa ser de propriedade do root para chroot os usuários do sftpuser naquela pasta.

Como é melhor conceder ao usuário sftpadmin acesso aos diretórios root / srv / sftp / {username} de propriedade?

Posso usar apenas o ACL sobre as permissões de root?

    
por Wuhtzu 28.04.2014 / 22:22

1 resposta

4

Acabei fazendo isso:

/ srv / sftp / testadmin (diretório home do usuário testadmin )

/ srv / sftp / testuser / testuser (home do usuário testuser )

O grupo sftpadmin Eu chrooted para / srv / sftp:

Match Group sftpadmin
    ChrootDirectory /srv/sftp
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

e o grupo sftpuser Eu chrooted para / srv / sftp / {username} e mudei seu diretório inicial para / srv / sftp / {username} / {username} (que é apenas / {username} visto do chroot):

Match Group sftpuser
    ChrootDirectory /srv/sftp/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp -d /%u

Por fim, dei o rwx do grupo sftpadmin no diretório / srv / sftp / testuser / testuser:

setfacl -m g:sftpadmin:rwx /srv/sftp/testuser/testuser

Isso cumpriu aproximadamente o que eu queria. O grupo sftpadmin pode ler, gravar e alterar o diretório de trabalho para qualquer coisa abaixo de / srv / sftp (incluindo o diretório "home dirs" do grupo sftpuser ). O grupo sftpuser só pode gravar no diretório / srv / sftp / {username} / {username} e não ver os outros diretórios home sftpuser , pois eles estão localizados fora do chroot o grupo sftpuser.

A única coisa indesejável sobre isso é a estrutura / srv / sftp / {username} / {username}. Um usuário do grupo sftpuser pode fazer cd .. e voltar para / srv / sftp / {username} onde o usuário não pode fazer nada útil, exceto mudar de volta para / srv / sftp / {username} / {username}. A mudança do diretório para / srv / sftp / {username} poderia ser evitada removendo-se o bit de execução para / srv / sftp / {username}, mas isso também impediria que o grupo sftpadmin mudasse para esse diretório e, assim, efetivamente impedisse a listagem de arquivos etc. no diretório / srv / sftp / {username} / {username}.

    
por 01.05.2014 / 09:32

Tags