Como adicionar um usuário ssh que possui apenas permissões para acessar uma pasta específica?
useradd -d /var/www/xyz.com.tr/musteri -s /bin/bash -g sshd musteri
Eu criei um usuário chamado musteri
. Defino sua pasta pessoal e grupo. Então, eu quero integrar musteri
usuários em "/var/www/xyz.com.tr/musteri". Não quero que ele acesse outra pasta.
ssh
permissions
users
account-restrictions
Violoncelo
fonte
fonte
scponly
um shell, possivelmente operando nochroot
modo para restringir o acesso dele a esse diretório e a nenhum outro lugar.scponly chroot
ourssh chroot
deve levar você a instruções).Respostas:
Parece que você deseja que seu müşteriler tenha acesso à transferência de arquivos para uma pasta sem realmente fornecer conchas. Isso é bom porque, como binfalse apontou , dar às pessoas shells com acesso limitado é complicado porque elas precisam acessar todos os tipos de coisas espalhadas no sistema apenas para serem executadas.
Para conceder acesso SFTP a uma pasta específica, você pode fazer algo assim.
/etc/ssh/sshd_config
) com estas linhasIsso ativaria o subsistema sftp dentro do SSH e forçaria os membros desse grupo de sistemas a usar somente esse sistema ao efetuar login. Também os chrootaria em seus diretórios pessoais. Você pode mudar isso para ser uma subpasta das diretivas domésticas, assim como algo
ChrootDirectory %h/musteri_sftp
para que eles não pudessem ver o restante dos arquivos do sistema, mas acessariam diretamente uma subpasta especial da pasta pessoal.Kolay gelsin.
fonte
Na minha opinião, isso é muito difícil, se não impossível. Quando o usuário se conecta via SSH, ele precisa de pelo menos um shell, no seu caso, o
bash
. Para executar,/bin/bash
ele precisa de permissões para acessar/bin
.bash
ele próprio precisa ler algumas coisas de/etc
(por exemplo/etc/bash.bashrc
), para que o usuário também precise acessar/etc
. Supondo que o usuário não queira apenas ficar nesse diretório, ele pode querer ler um arquivo, mas executar, por exemplo,vim
ele também precisa acessar/usr/bin
.Esta é apenas uma pequena demonstração, existem mais algumas dependências, por exemplo, eu realmente não sei o que acontecerá se o usuário não tiver acesso a
/tmp
..Você deve pensar em sua intenção. Você só quer que alguém tenha acesso de leitura / gravação a uma parte do seu serviço da web? Em seguida, você pode configurar algo como FTP para exportar um diretório específico para este usuário. Portanto, ele é capaz de ler / gravar esses arquivos sem acesso SSH.
Outra boa solução seria um repositório. Por exemplo, configure um repositório GIT e permita que o usuário o clone. Ele pode fazer as alterações localmente e enviar um patch. Você pode decidir se aplica ou não esse patch, uma reversão para patches de buggy também é muito fácil.
fonte
rbash
foi projetado para fazer exatamente isso.