Como criar um usuário SFTP (SSH) com permissões extremamente limitadas

7

eu corro um servidor no Ubuntu Server 14.04. Eu quero criar um usuário que é capaz de se conectar via sftp, baixar um arquivo e terminar a conexão. O usuário não deve poder fazer mais nada. Procurando arquivos ou configurações do sistema, nem entradas de linha de comando, nada. Faça o login, baixe o arquivo, gg. Quando o arquivo é atualizado, faça o login baixe, gg. O arquivo está no mesmo diretório todas as vezes e tem o mesmo nome todas as vezes, mas é atualizado.

EDITAR: Estou tentando implementar a sua solução, mas eu encontrei alguns problemas: No arquivo de configuração do ssh na minha configuração, há uma linha com "permitir grupos sshdusers". Eu adicionei sftp_users. Mas há outro problema pela frente. sudo chown root.root / ubuntu / não é ideal para mim porque o root não é capaz de fazer o ssh e gravar no diretório o arquivo que o "ubuntu" tem que baixar (nós o chamaremos user1. Eu quero que o user1 possa escrever o diretório e o ubuntu somente para leitura.Se eu mudar o sudo chown user1.user1 / ubuntu / e eu tento sftp com o usuário do ubuntu a conexão falha.Se eu deixar o root como faço eu consigo conectar mas não consigo ver o currentdirectory eu vejo apenas / e empy no filezilla.Eu até adicionei user1 para sftp_users, mas ainda não tenho sucesso.

Muito obrigado

    
por BlueStarry 18.05.2015 / 23:20

1 resposta

7

Vamos começar

Criar usuário ubuntu

sudo useradd ubuntu

Crie uma senha

sudo passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Criar para somente o grupo SFTP

xxx@xxx:~$ sudo groupadd sftp_users 

Adicionar ao usuário "ubuntu" para o grupo somente SFTP

xxx@xxx:~$ sudo usermod -G sftp_users ubuntu 

Tornar dir para sftp access

sudo mkdir /ubuntu

Alterar proprietário, porque permissão de leitura / gravação

sudo chown root.root /ubuntu/

Adicione permissão

sudo chmod 755 /ubuntu/

Edite o /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

Comente e adicione uma linha como abaixo

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Adicione no último

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /ubuntu
  ForceCommand internal-sftp

Reinicie o ssh service

sudo service ssh restart

Com essa cenfiguração, você pode usar ssh na pasta ubuntu e obter arquivos. Não é possível put ou delete

Tente.

Editar 1

Para inserir na pasta correta, edite /etc/passwd . Alterar linha para o usuário ubuntu para ficar assim

sudo nano /etc/passwd

 ubuntu:x:1001:1001::/ubuntu:

Isto irá mudar a pasta base do usuário ubuntu para a sua pasta do servidor sftp.

  

Ativar root conta não é uma boa ideia.

Você pode ssh para o servidor com user1 .

Se você adicionar o usuário user1 em sudoer group , você poderá escrever pasta /ubuntu/ e defina a permissão apropriada

sudo adduser user1 sudo

Crie uma pasta, escreva na pasta ubuntu. Após as ações, você deve definir a permissão para o usuário ubuntu . A maneira mais fácil é configurar a permissão para 755

sudo chmod 755 -R /ubuntu/

-R - opção dará permissão de leitura de todos os arquivos e dir do usuário ubuntu

    
por 2707974 19.05.2015 / 14:09