Não é possível jail usuários SSH para qualquer pasta que não seja sua pasta home

3

Eu preciso de ajuda nisso.

Estou tentando prender usuários SSH em suas próprias pastas para que eles possam fazer SFTP em um servidor sem ver o sistema de arquivos

Eu tenho seguindo um simples guia on-line e consegui prender um usuário em sua pasta base padrão (/ home / user). No entanto, se eu tentar alterar sua pasta pessoal, o usuário não poderá efetuar login.

Eu tenho 2 usuários: kevin e padrão

cat /etc/passwd revela

kevin:x:500:500::/home/kevin:/bin/false
default:x:501:500::/var/www/vhosts/default:/bin/false

e meu arquivo sshd_config se parece com

Subsystem sftp internal-sftp

Match Group sftponly
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

e cat /etc/group revelam

sftponly:x:500:default,kevin
kevin:x:501:
default:x:502:

Alguém sabe por que o usuário kevin funciona como esperado, mas o padrão do usuário não consegue fazer o login.

Obrigado.

EDITAR

Eu editei meu arquivo passwd e alterei default:x:501:500::/var/www/vhosts/default:/bin/false para default:x:501:500::/home/default:/bin/false e agora o usuário padrão pode fazer o login.

O problema só parece acontecer se eu quiser mudar a casa do usuário para / var / www / vhosts / user

    
por Dotty 23.09.2013 / 15:13

3 respostas

3

Eu estou supondo que é o SELinux que está bloqueando isso.

Para desativá-lo temporariamente para ver se é o problema, execute setenforce 0 para configurá-lo para o modo permissivo. Ele ligará novamente após uma reinicialização ou trocando o sinalizador de volta para 1.

Para defini-lo permanentemente no modo permissivo, edite /etc/selinux/config e defina SELINUX=permissive . Onde esta é uma máquina de destino para usuários finais, sugiro mantê-lo ligado. Instale um conjunto chamado setroubleshoot e encontre alguns guias sobre como usar o comando sealert junto com ele. Ele tenta fazer sugestões inteligentes sobre como lidar com itens que estão sendo bloqueados pelo SELinux. Ele também escreve e compila as políticas para você, por isso é muito amigável para iniciantes.

    
por 23.09.2013 / 16:13
3

Não apenas o diretório pessoal do usuário, mas todos os seus componentes devem ser de propriedade de root. No seu caso, isso inclui todos esses diretórios: {/var, /var/www, /var/www/vhosts/default, /var/www/vhosts/default} . Além disso, esses diretórios não podem ser gravados por outros usuários ou grupos.

Por fim, se você tiver selinux em execução no modo de imposição, certifique-se de que o diretório pessoal do usuário tenha o contexto correto definido. A maneira mais simples de fazer isso é usar a ferramenta chcon (alteração não persistente) ou com semanage (alteração persistente).

    
por 23.09.2013 / 15:31
0

O diretório inicial do usuário deve ser proprietário por root

    
por 23.09.2013 / 15:25

Tags