Acesso não chroot
Se você não possui uma configuração de servidor FTP e confia no usuário que efetuará login, para não ficar mexendo muito no servidor, eu estaria inclinado a fornecer uma conta para SFTP no sistema.
O wiki do CentOS mantém um tutorial simples, intitulado: Configuração simples de SFTP, que torna esse problema bastante simples .
Eu digo que é fácil porque você literalmente só precisa criar a conta e garantir que o firewall permita o tráfego SSH, garantir que o serviço esteja sendo executado e que você está pronto.
Se sshd
ainda não estiver em execução:
$ /etc/init.d/sshd start
Para adicionar um usuário:
$ sudo useradd userX
$ sudo passwd userX
... set the password ...
Quando você terminar a conta:
$ sudo userdel -r userX
Acesso Chroot
Se, por outro lado, você deseja limitar esse usuário a um diretório designado, o servidor SFTP incluído no SSH (openssh) fornece uma configuração que facilita a ativação também. É um pouco mais trabalhoso, mas não muito. As etapas são abordadas aqui neste tutorial, intitulado: Como configurar o SFTP chroot no Linux (permitir apenas SFTP, não SSH) .
Faça essas alterações no seu /etc/ssh/sshd_config
arquivo.
Subsystem sftp internal-sftp
## You want to put only certain users (i.e users who belongs to sftpusers group) in the chroot jail environment. Add the following lines at the end of /etc/ssh/sshd_config
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
Agora você precisará criar a árvore de diretórios chroot onde o usuário ficará bloqueado.
$ sudo mkdir -p /sftp/userX/{incoming,outgoing}
$ sudo chown guestuser:sftpusers /sftp/guestuser/{incoming,outgoing}
As permissões devem ter a seguinte aparência:
$ ls -ld /sftp/guestuser/{incoming,outgoing}
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/incoming
drwxr-xr-x 2 guestuser sftpusers 4096 Dec 28 23:49 /sftp/guestuser/outgoing
Os diretórios de nível superior como este:
$ ls -ld /sftp /sftp/guestuser
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp
drwxr-xr-x 3 root root 4096 Dec 28 23:49 /sftp/guestuser
Não se esqueça de reiniciar o sshd
servidor:
$ sudo service sshd restart
Agora crie a conta userX:
$ sudo useradd -g sftpusers -d /incoming -s /sbin/nologin userX
$ sudo passwd userX
... set password ...
Você pode verificar se a conta foi criada corretamente:
$ grep userX /etc/passwd
userX:x:500:500::/incoming:/sbin/nologin
Quando você terminar a conta, exclua-a da mesma maneira acima:
$ sudo userdel -r userX
... e não se esqueça de remover as alterações no arquivo de configuração que fizemos acima e reinicie sshd
para ativá -las novamente.