chroot CentOS SFTP

2

Tenho alguns problemas em chrooting um acesso SFTP para um cliente.

Eu posso acessar o diretório, mas o problema é que não posso ler / escrever, apenas posso acessar o diretório.

Abaixo está o que eu fiz:

# cat /etc/passwd | grep comege
comege:x:1001:1001::/home/sftp/comege/home/:/sbin/nologin

# cat /etc/group | grep sftp
sftp-only:x:1001:

# sshd_config
Subsystem sftp internal-sftp
Match Group sftp-only
ChrootDirectory /home/sftp/%u
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

O SELinux está configurado como permissivo para fins de teste.

Quando me conecto ao servidor usando o SFTP, recebo o seguinte erro:

Error listing directory '/'. Permission denied

Permissões:

/home/sftp/comege and parent directories belongs to root:root.

/home/sftp/comege/home belongs to comege:sftp-only

Eu acho que o problema é que comege não é redirecionado para / home / sftp / comege / home na conexão, então ele chega em / home / sftp / comege que pertence à raiz, portanto a falta de permissões (?)

    
por Loïc 12.07.2016 / 17:11

1 resposta

4

Parece que as permissões para o diretório chroot, /home/sftp/comege , não estão configuradas para permitir acesso de leitura pelo usuário comege .

As permissões em /home/sftp/comege devem ser assim:

# ls -la /home/sftp/comege
total 0
drwxr-xr-x 1 root   root       8 Jul 19 12:00 .
drwxr-xr-x 1 root   root      12 Jul 19 11:59 ..
drwx------ 1 comege sftp-only 76 Jul 19 12:00 home

Altere as permissões com:

# chmod 755 /home/sftp/comege

Observe que isso não leva em consideração as permissões do SELinux.

Por padrão, uma sessão SFTP em um ambiente chrooted começará com o usuário no "jail" chroot, que deve ser de propriedade do root. Pretende-se que o usuário só grave em arquivos em subdiretórios do diretório raiz de nível superior. Uma convenção é criar um subdiretório chamado "incoming" para uploads de usuários, em vez do diretório "home" mostrado no exemplo original.

    
por 19.07.2016 / 14:19