Como posso criar um usuário apenas para o sftp?

14

Eu adicionei um usuário ao sistema por meio da ferramenta adduser . Então, em /etc/passwd , tentei alterar o /bin/bash para /sbin/nologin ou para /dev/null , mas nenhum deles funcionou.

Eu gostaria que o usuário não tivesse a opção de obter um shell interativo e apenas usar sftp . Existe um caminho?

Eu sei que foi perguntado aqui antes, mas parece que ninguém deu uma resposta satisfatória.

    
por Toni Rosa 12.05.2011 / 13:51

4 respostas

8

O comando que você deve usar para alterar o shell é chsh . O shell nologin pode ser /sbin/nologin ou /usr/sbin/nologin (verifique qual deles você está procurando em /etc/shells ), mas /bin/false provavelmente seria uma opção melhor.

chsh -s /bin/false user

Você deve considerar a criação de algo como scponly , que fará exatamente o que você deseja.

    
por 25.03.2013 / 22:14
7

Você também deve ser capaz de fazê-lo com o OpenSSH 4.9 e superior, com o qual você também pode chroot o usuário para aumentar a segurança.

No seu /etc/ssh/sshd_config :

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

Em seguida, execute:

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

O usuário só poderá escrever em / home / user / uploads.

link

    
por 12.05.2011 / 16:05
2

Acho que a melhor maneira é com mysecureshell

link

Você pode fazer o chroot de um usuário com facilidade e até mesmo limitar a largura de banda, se necessário.

    
por 12.05.2011 / 14:38
1

Você pode adicionar um usuário com -s /bin/false para desabilitar o shell, mas o que você realmente deve procurar na configuração é uma conta sftp chroot. Isso irá "prender" um usuário em seu próprio diretório e impedi-lo de acessar ou modificar quaisquer arquivos ou diretórios fora do diretório chroot.

    
por 12.05.2011 / 13:56