Criando usuários (Servidor Ftp no Linux)

E-mail Imprimir PDF

Imagine agora que você quer uma configuração um pouco mais complexa, com vários usuários, cada um tendo acesso a apenas uma pasta específica. Esta configuração pode ser usada em conjunto com os virtual hosts do Apache (permitindo que os responsáveis possam atualizar os arquivos do site), ou em situações em que seu servidor hospeda arquivos de diversos usuários ou projetos diferentes.

O responsável pelo projeto1 pode dar upload para a pasta "/home/ftp/projeto1" (por exemplo), mas não deve ter acesso a outras pastas nem a outros arquivos do sistema. Os usuários anônimos terão acesso às pastas de todos os projetos, mas, naturalmente, apenas para leitura.

A forma mais simples de fazer isso é criar os usuários que terão acesso ao FTP, colocando a pasta a que terão acesso como seu diretório home e bloqueando o uso do shell, para que eles não possam acessar o servidor remotamente através de outros meios (via ssh, por exemplo).

Vamos começar adicionando no arquivo a opção que prende os usuários nos seus diretórios home. Abra o arquivo "/etc/proftpd.conf" e adicione (no final do arquivo) a linha:

DefaultRoot ~

Você vai precisar adicionar também a seção para liberar o acesso anônimo ao ftp, que vimos acima. Como queremos apenas que os mantenedores dos projetos possam dar upload de arquivos, remova a seção "<Directory incoming>". A seção vai ficar:

<Anonymous ~ftp>
User ftp
Group nogroup
UserAlias anonymous ftp
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
MaxClients 20
DisplayLogin welcome.msg

DisplayFirstChdir .message
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
</Anonymous>

O diretório padrão do FTP, onde os usuários anônimos terão acesso aos arquivos, é a "/home/ftp". Em outras distribuições pode ser usada a pasta "/var/ftp"; dê uma olhada em como o arquivo vem configurado por padrão.

De volta à configuração, vamos começar criando subpastas para cada projeto:

# mkdir /home/ftp/projeto1
# mkdir /home/ftp/projeto2
# mkdir /home/ftp/projeto3

etc..
.

O próximo passo é ir adicionando os usuários no sistema, tendo o cuidado de fazer as alterações no diretório home e no shell padrão, para que eles tenham acesso somente via FTP e apenas à pasta desejada.

Para adicionar os usuários, use o comando "adduser", como se estivesse criando uma conta normal:

# adduser projeto1

Acrescentando usuário projeto1...
Acrescentando novo grupo projeto1 (1005).
Acrescentando novo usuário projeto1 (1005) com grupo projeto1.
Criando diretório pessoal /home/projeto1.
Copiando arquivos de /etc/skel

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

Veja que por padrão ele cria a pasta "/home/projeto1", que passa a ser o diretório home do usuário criado. Entretanto, neste caso queremos que o home seja a pasta "/home/ftp/projeto1", onde ele dará upload dos arquivos.

Para alterar isso, abra o arquivo "/etc/passwd", onde ficam guardadas as informações dos usuários. Na última linha do arquivo você verá:

projeto1:x:1005:1005:,,,:/home/projeto1:/bin/bash

Vamos alterar o "/home/projeto1" para "/home/ftp/projeto1" (para trocar o home) e o "/bin/bash" para "/bin/false", de forma a impedir que usuário tenha acesso ao shell do servidor e possa executar comandos (fazendo o que não deve no servidor). Se você preferir que, além do acesso via ftp, os usuários tenham acesso via ssh, então mantenha o "/bin/bash". Depois das alterações, a linha ficará:

projeto1:x:1005:1005:,,,:/home/ftp/projeto1:/bin/false

Você pode aproveitar para remover a pasta /home/projeto1, já que não precisaremos mais dela:

# rm -rf /home/projeto1/

Na verdade, esse processo serve para que você entenda melhor o procedimento de criação destes usuários "falsos" no Linux. Estas alterações podem ser especificadas ao criar o usuário. Não é preciso sair editando todos os arquivos manualmente. O comando para criar o usuário "projeto1", usando a pasta "/home/ftp/projeto1" como home e o "/bin/false" como shell, seria:

# adduser --home /home/ftp/projeto1 --shell /bin/false --no-create-home projeto1

Não esqueça de acertar as permissões da pasta /home/ftp/projeto1:

# chown -R projeto1:projeto1 /home/ftp/projeto1/

Depois de concluir a configuração, falta só reiniciar o servidor FTP para que as configurações entrem em vigor:

# /etc/init.d/proftpd restart

Em distribuições derivadas do Debian, você vai precisar adicionar a linha "/bin/false" no final do arquivo /etc/shells para que ele possa ser usado:

# echo "/bin/false" >> /etc/shells

Feito isso, você já conseguirá se logar no servidor usando o login criado. O usuário não enxerga nada fora da pasta "/home/ftp/projeto1" e todos os arquivos que ele der upload vão para lá.

A senha de acesso ao FTP é a mesma definida na hora de criar o usuário. O Proftpd simplesmente aproveita o sistema de autenticação do sistema. Se você precisar alterar a senha do usuário, use o comando "passwd projeto1".

Para usar o Proftpd em conjunto com os virtual hosts do Apache, a configuração é a mesma, com exceção de que você não precisaria habilitar o acesso anônimo, já que o FTP seria usado apenas pelos webmasters dos sites hospedados.

Nesse caso, ao criar os usuários, use a pasta com os arquivos do site como home, como em:

# adduser --home /var/www/joao --shell /bin/false --no-create-home joao

A opção "--no-create-home" evita que o sistema copie os arquivos do diretório "/etc/skel" (como os arquivos .bashrc, .bash_history e outros) para dentro da pasta de arquivos, "sujando" o diretório. Ao terminar, não se esqueça de alterar as permissões da pasta, de forma que o usuário tenha permissão de escrita:

# chown -R joao:joao /var/www/joao

Graças ao uso da opção "DefaultRoot ~", os usuários terão acesso apenas à pasta com os arquivos do site, sem acesso às pastas dos outros usuários ou às demais pastas do sistema. Esta é justamente a configuração usada na maioria dos serviços de shared hosting onde o acesso é feito via FTP. O sistema não é nada seguro e de vez em quando algumas das senhas são roubadas, mas, como ele é fácil de implementar e poucos usuários tem dificuldades em acessar as contas, a tradição continua.

 

Fonte: http://www.hardware.com.br/livros/servidores-linux/criando-usuarios.html

Última atualização ( Qua, 25 de Maio de 2011 23:39 )  

Adicionar comentário


Código de segurança
Atualizar

sideBar



Categorias

Arquivo

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoje10
mod_vvisit_counterOntem362
mod_vvisit_counterSemana10
mod_vvisit_counterSemana Anterior2990
mod_vvisit_counterMês4074
mod_vvisit_counterMês Anterior578
mod_vvisit_counterTotal181137

We have: 3 guests, 1 bots online
Seu IP: 38.107.179.243
 , 
Agora: Mai 21, 2012 Mai
Membros : 17
Conteúdo : 155
Visualizações de Conteúdo : 37898


Joomla Clube

Joomla Brasil

Info Wester

IdgNow

BrLinux.org

Joomla Brasislia

Joomla.org

F13 -Tecnologia

Dicas Linux

Olhar Digital

Joomla Facil

Linux Security

Debian.org

Viva o Linux

Ubuntu-BR