Tentando configurar um usuário SFTP com acesso limitado

2

Eu esperava que alguém pudesse me ajudar com esse problema

"Tentando configurar um usuário SFTP com acesso limitado."

Estou executando o Ubuntu 16.04.2 x64 em um servidor DigitalOcean. Eu postei isso no fórum DigitalOcean também.

Configuração atual

  • Configurei meu servidor usando o ServerPilot.
  • O system user é chamado serverpilot
  • serverpilot tem privilégios de root,
  • A pasta home está localizada em: /srv/users/serverpilot
  • A pasta public está localizada em: /srv/users/serverpilot/apps/test-app/public/

O que eu quero fazer

Eu quero adicionar um segundo usuário, mas restringir o que o usuário pode fazer:

  • Acesse apenas uma única pasta chamada newsletters , que estará na pasta public .
  • O usuário precisa poder fazer upload, excluir e renomear arquivos via SFTP
  • O usuário não deve conseguir sair da pasta newsletters

Este é o caminho completo para a pasta newsletters :   /srv/users/serverpilot/apps/test-app/public/newsletters

O que eu fiz até agora

Eu segui este guia Como restringir um usuário a um diretório específico? por Maxamilian Demian (@Maxoplata), há uma ótima resposta de Jonathan Tittle (@jtittle).

No entanto, ainda estou com problemas para fazer login via SFTP

Eu listei todas as etapas que fiz - espero que alguém com mais experiência consiga detectar meu (s) erro (s)!

1. Criado um novo usuário

  1. Conectado como root
  2. Criado um novo usuário chamado user-sftp-only
  3. adduser user-sftp-only
  4. Posso verificar se o usuário foi criado executando
  5. compgen -u
  6. user-sftp-only está na parte inferior da lista
  7. Também posso ver qual é o caminho do usuário e o acesso ao shell executando:
  8. grep user-sftp-only /etc/passwd de saídas:

    user-sftp-only:x:1004:1007:,,,:/home/user-sftp-only:/bin/bash
    

2. Dar novos privilégios de root ao usuário

  1. Conceder novos privilégios de usuário user-sftp-only root
  2. gpasswd -a user-sftp-only sudo
  3. Fazer logout como root

3. Crie um novo diretório

  1. Conectado como user-sftp-only
  2. Crie um novo diretório em public chamado newsletters :
  3. cd /srv/users/serverpilot/apps/test-app/public/
  4. Seguido por:
  5. sudo mkdir newsletters

4. Verifique as permissões do diretório

Ainda dentro da pasta public da etapa anterior, corro

$ ls -al
drwxr-xr-x+ 3 serverpilot serverpilot 4096 Mar  7 15:26 .
drwxr-xr-x+ 3 serverpilot serverpilot 4096 Mar  3 16:22 ..
-rw-r--r--+ 1 serverpilot serverpilot 3393 Mar  3 16:22 index.php
drwxrwxr-x+ 2 root        root        4096 Mar  7 15:26 newsletters

A partir da leitura de várias postagens do DigitalOcean, sei que preciso criar um grupo e atribuir meu novo usuário user-sftp-only a esse grupo. Em seguida, altere root root para o nome do meu usuário e grupo.

5. Crie um novo grupo

  1. Conectado como user-sftp-only
  2. sudo groupadd group-sftp-only
  3. Posso verificar se o grupo foi criado ao executar
  4. compgen -g
  5. group-sftp-only está na parte inferior da lista

Observação: Eu noto que meu novo usuário chamado user-sftp-only também está nessa lista?

6. Adicionar usuário ao grupo

  1. Conectado como root
  2. Adicionado o usuário user-sftp-only a um grupo chamado group-sftp-only
  3. Isso significa que não é mais possível o SSH entrar como usuário user-sftp-only

    usermod -g group-sftp-only -d /srv/users/serverpilot/apps/test-app/public/newsletters -s /sbin/nologin user-sftp-only
    
    • -g especifica o nome do grupo
    • -d especifica o diretório inicial dos usuários
    • -s especifica o acesso ao shell (/ sbin / nologin significa que o SSH está desativado para este usuário)

7. Verifique as alterações para o usuário

Conectado como root

$ grep user-sftp-only /etc/passwd
user-sftp-only:x:1001:1004:,,,:/srv/users/serverpilot/apps/test-app/public/newsletters:/sbin/nologin

8. Modifique a configuração do SSH para permitir o SFTP

  1. Conectado como root
  2. nano /etc/ssh/sshd_config
  3. Comentou esta linha:
  4. #Subsystem sftp /usr/lib/openssh/sftp-server -l INFO
  5. Na muito inferior de sshd_config , adicionamos isto:

     Subsystem sftp internal-sftp
        Match group group-sftp-only
        ChrootDirectory %h
        ForceCommand internal-sftp
    

9. Reinicie o SSH

  1. Ainda logado como root
  2. service ssh restart

10. Modificar permissões

  1. Ainda logado como root
  2. Este é o diretório inicial do usuário user-sftp-only
  3. /srv/users/serverpilot/apps/test-app/public/newsletters
  4. Usado para garantir que o diretório pessoal seja de propriedade do usuário e do grupo

    chown -R user-sftp-only:group-sftp-only /srv/users/serverpilot/apps/test-app/public/newsletters
    

11. Verifique a alteração de propriedade

Ainda logado como root :

$ cd /srv/users/serverpilot/apps/test-app/public/'
$ ls -al
drwxr-xr-x+ 3 serverpilot    serverpilot     4096 Mar  7 15:26 .
drwxr-xr-x+ 3 serverpilot    serverpilot     4096 Mar  3 16:22 ..
-rw-r--r--+ 1 serverpilot    serverpilot     3393 Mar  3 16:22 index.php
drwxrwxr-x+ 2 user-sftp-only group-sftp-only 4096 Mar  7 15:26 newsletters

$ cd /srv/users/serverpilot/apps/test-app/public/newsletters
$ ls -al
drwxrwxr-x+ 2 user-sftp-only group-sftp-only 4096 Mar  7 15:26 .
drwxr-xr-x+ 3 serverpilot    serverpilot     4096 Mar  7 15:26 ..

É onde eu estou indo. No entanto, não consigo fazer login como meu novo usuário user-sftp-only via SFTP

    
por Stephen Meehan 07.03.2017 / 19:19

1 resposta

1

tail -f /var/log/syslog

Tente inserir-se na conta apenas do usuário-sftp Anote a mensagem de informação de sucesso / falha

Se falhar, adicione a seguinte linha a /etc/ssh/sshd_config :

AllowUsers user-sftp-only

execute:

sudo service sshd restart
    
por jones0610 07.03.2017 / 22:08