Este documento é dirigido ao pessoal da área de TI, especialmente aos administradores de redes, sistemas e/ou segurança, que são os responsáveis pelo planejamento, implementação ou operação de redes e sistemas. Também podem se beneficiar da sua leitura gerentes com conhecimento técnico de redes ou até mesmo pessoas leigas.
Este documento também tem o objetivo de explicar como instalar e configurar passo a passo um servidor
Linux SFTP e as permissões de pastas para acesso de um mesmo usuário em várias delas. Esse é meu primeiro artigo no Viva o Linux e espero que eu possa ter ajudado.
Primeiramente é preciso deixar o SO atualizado, para efetuar a atualização do SO digite:
# yum update
Passo 1 - criar um grupo de usuários para o SFTP.
Primeiro passo é criar um grupo para o SFTP, vamos criar um grupo chamado "sftp" e adicionar para um usuário que será criado com o nome "teste1". Digite:
# groupadd sftp
Passo 2 - criar usuário e adicioná-lo a um grupo.
Criar o usuário para acesso o SFTP. Neste caso será criado o usuário "teste1", definir uma senha e adicioná-lo ao grupo "sftp".
Digite:
# adduser teste1
Obs.: lembre-se que o Linux é case-sensitive, se caso criar um usuário com a letra maiúscula ele sempre deverá ser digitado dessa forma.
Para definir uma senha a um usuário digite "passwd" e o nome do usuário:
# passwd teste1
Ele pedirá para entrar com uma senha nova, depois deve-se repeti-la.
Agora vamos vincular o usuário criado ao grupo do SFTP que foi criado no primeiro passo. Digite:
# usermod -G sftp teste1
Para verificar se o usuário está vinculado ao grupo corretamente digite:
# id "nome do usuário"
Passo 3 - estrutura e permissões de pastas.
Após criar o usuário e colocá-lo no grupo, é necessário configurar as permissões das pastas para acesso no SFTP, neste caso será criado dentro da pasta "/home/nome_do_usuario", porém na pasta raiz o usuário não terá permissão para colocar nenhum arquivo, então criaremos uma pasta com o nome do próprio usuário para que possa ser liberado o a acesso full da mesma. A estrutura da pasta neste caso ficará da seguinte forma:
/home/teste1/teste1
Digite:
# mkdir /home/teste1/teste1
Quando um usuário é criado, automaticamente ele cria a pasta em "/home/nome_do_usuario" sem permissões, somente para o proprietário da pasta que no caso é o próprio usuário.
Porém é necessário dar permissão ao usuário root na pasta raiz, caso não fizer o usuário não conseguirá logar, para isso digite:
# chmod 755 /home/teste1
Dessa forma agora, será possível o usuário conseguir logar no SFTP porém ainda não conseguira enviar arquivos ou baixar se necessário.
Após configurar a estrutura da pasta do usuário, deve-se criar uma pasta com o mesmo nome da pasta do usuário e nela das as permissões para e ele possa ler, escrever e executar. Para criar a pasta digite:
# mkdir /home/teste1/teste1
Para alterar o proprietário da pasta de acesso do SFTP, digite o comando:
# chown teste1:sftp /home/teste1/teste1/
Foi feita a alteração do proprietário da pasta, agora o último passo é dar a permissão de leitura, escrita e execução para o grupo sftp e o usuário que irá acessar a pasta.
Para o usuário ter permissão de leitura, escrita e gravação via sftp, digite:
# chmod 770 /home/teste1/teste1
Passo 4 - acesso a múltiplas pastas de usuários.
Para permitir que um usuário acesse mais de uma pasta de um usuário específico será necessário montar um "compartilhamento" de pastas dentro da pasta do usuário do SFTP que precisará acessar.
Ex.: o usuário "teste1" precisa ter acesso a pasta do usuário "teste2", mas o usuário "teste2" não poderá fazer o acesso inverso.
Por padrão existe somente uma pasta na raiz do usuário "teste1". Essa estrutura será de todos os novos usuários do SFTP.
/home/teste1 (pasta raiz sem permissão)/teste1 (pasta de acesso full)
A pasta que será compartilhada para o usuário "teste1" é a seguinte:
/home/teste2/teste2
Criar a pasta que deverá ser compartilhada, no caso é a pasta do usuário "teste2" para o usuário "teste1", digite:
# mkdir /home/teste1/teste2
OBS: o proprietário da pasta é o root porém não devemos mudar isso agora porque quando montarmos o compartilhamento ai sim deverá ser feito as alterações.
Para montar a pasta deve ser digitado primeiro a origem e depois o destino que queremos que acesse a pasta, digite:
# mount --bind /home/teste2/teste2/ /home/teste1/teste2/
O comando acima compartilha o conteúdo da pasta "/home/teste2/teste2" para "/home/teste1/teste2/".
Passo 5 - configuração SFTP.
Após a criação do grupo e do usuário, precisamos configurar o SFTP. Será necessário fazer alteração apenas em um arquivo, o sshd_config.
Digite:
# vi /etc/ssh/sshd_config
Comente a linha:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Após isso precisará adicionar algumas informações para a liberação e configuração do SFTP no final do mesmo arquivo. Adicione o conteúdo abaixo no arquivo:
Subsystem sftp internal-sftp
Match Group sftp
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp
Após adicionar, salvar e sair.
Reinicie o serviço do ssh:
# systemctl restart sshd