Permissão somente leitura para o usuário sftp em um diretório específico

7

Eu quero criar um usuário SFTP específico que terá permissões para ler apenas todas as pastas e subpastas em /var/www/vhosts . Qualquer ajuda sobre isso?

    
por Delirium 22.06.2016 / 11:15

1 resposta

8

Sistemas Unix fornecem o comando chroot , que permite redefinir o / do usuário para algum diretório na hierarquia do sistema de arquivos, onde eles não podem acessar arquivos e diretórios "superiores".

No entanto, no seu caso, seria apropriado fornecer um chroot virtual implementado pelo serviço de shell remoto. O sftp pode ser facilmente configurado para restringir um usuário local a um subconjunto específico do sistema de arquivos.

portanto, no seu caso, você deseja chroot , digamos, usuário foo user no diretório /var/www/vhosts/ .

Você pode definir um diretório chroot para o usuário confiná-los ao subdiretório /var/www/vhosts/ , assim como em /etc/ssh/sshd_config ;

Crie o usuário foo com senha

sudo useradd foo
sudo passwd foo

Criar para somente o grupo SFTP

$ sudo groupadd sftp_users 

Adicionar a um usuário foo para o grupo somente SFTP

$ sudo usermod -G sftp_users foo 

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

sudo chown root.root /var/www/vhosts/

Adicione permissão

sudo chmod 755 /var/www/vhosts/

Edite o /etc/ssh/sshd_config

sudo vi /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 /var/www/vhosts/
  ForceCommand internal-sftp

(NOTA: Match blocos precisam estar no END do arquivo sshd_config .)

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

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

$ sudo vi /etc/passwd

..
foo:x:1001:1001::/var/www/vhosts/:
..

Isso mudará a pasta de usuário foo para a pasta do servidor sftp.

    
por 22.06.2016 / 11:45