Aqui aprenderemos a criar um arquivo de usuários separado para trabalharmos com o proftpd, precisamos de primeiramente instalar o:
– proftp – nosso servidor de ftp 🙂
– apache – será usado para criarmos a senha dos usuário o apache não precisará estar rodando, mas apenas instalado
1 – Crie um grupo chamado “ftp” com um usuário chamado “ftp” sem senha e sem bash. O home deste usuário será onde colocaremos os outros diretorios dos outros usuários, ou seja “/home/ftp”
3 – Copie o arquivo de configuração de usuários do seu sistema criando uma nova cópia chamada “passwd.ftp” o arquivo de usuários do sistema você pode encontrar em “/etc/passwd”
2 – Após instalar o proftpd adicione essas informações no arquivo “proftpd.conf”:
1 2 3 4 5 6 7 8 9 10 | ## CONFIGURACAO USUARIO ACESSAR SERVIDOR FTP DefaultRoot ~ AllowOverwrite no ## LOGAR USUARIOS AuthUserFile /etc/passwd.ftp RequireValidShell off |
Procurando um pouqinho na net achei esses três scripts de autoria do Gilberto Villani Brito vamos então:
3 – Vamos ao nosso script para criar usuários, crie um arquivo em um diretório de sua escolha e coloque o nome nele de: “ftpadd.sh” cole o texto abaixo e depois de poder de execução ao arquivo assim:
Neste arquivo que você criou cole o seguinte texto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #!/bin/sh ####################################### # Script desenvolvido por Gilberto Villani Brito ( giba@olhoneles.com.br) e # Salustiano Ribeiro Neto/Packard ( salur@terra.com.br). # Nenhum direito autoral reservado, por isso usem e auterem a vontade, pois # estamos em um pais literalmente livre (hahahahahah......). ######################################## # Configuracoes das variaveis do script. # htpasswd CRYPTO=/usr/local/bin/htpasswd # passwd.ftp PASSWD=/etc/passwd.ftp # passwd.tmp PASSWDTEMP=/tmp/passwd.tmp # home HOME=/home/ftp # Script para criacao de usuarios para ftp. # Dados do usuario. while [ "$RESP" != "s" ] && [ "$RESP" != "S" ]; do clear printf " Nome de Login para o novo usuario []: " read LOGIN while [ -z $LOGIN ] || [ "$(grep -c /$LOGIN: $PASSWD)" = "1" ]; do clear printf "Usuario ja existe ou em branco!!! " printf " Nome de Login para o novo usuario []: " read LOGIN done clear printf " Nome do usuario $LOGIN []: " read NOME clear printf "#### Dados do novo usuario. #### " printf "Login: $LOGIN " printf "Nome: $NOME " printf "Diretorio: $HOME/$LOGIN " printf "##### =====|////===== ##### " printf "Confirma os Dados?? [s/n]: " read RESP done # Limpa o passwd.tmp > $PASSWDTEMP while [ "$(cat $PASSWDTEMP)" = "" ]; do $CRYPTO $PASSWDTEMP $LOGIN done SENHA=$(cat $PASSWDTEMP) echo "$SENHA:91:91:$NOME:$HOME/$LOGIN:/sbin/nologin" >> $PASSWD mkdir $HOME/$LOGIN chown ftp $HOME/$LOGIN |
Colocando poder de execução no arquivo:
chmod a+x ftpadd.sh |
4 – Nosso script de deletar usuário, você faz a criação do arquivo: “ftpdel.sh” semelhante ao que você fez logo acima colando o texto abaixo e colocando-o como executavel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #!/bin/sh ####################################### # Script desenvolvido por Gilberto Villani Brito ( giba@olhoneles.com.br) e # Salustiano Ribeiro Neto/Packard ( salur@terra.com.br). # Nenhum direito autoral reservado, por isso usem e auterem a vontade, pois # estamos em um pais literalmente livre (hahahahahah......). ######################################## # Configuracoes das variaveis do script. # passwd.ftp PASSWD=/etc/passwd.ftp # passwd.tmp PASSWDTEMP=/tmp/passwd.tmp # home HOME=/home/ftp # Script para apagar usuarios para ftp. # Dados do usuario. while [ "$RESP" != "s" ] && [ "$RESP" != "S" ]; do clear printf " Nome de Login do usuario []: " read LOGIN while [ -z $LOGIN ] || [ "$(grep -c /$LOGIN: $PASSWD)" = "0" ]; do clear printf "Usuario nao existe ou em branco!!! " printf " Nome de Login do usuario []: " read LOGIN done clear printf "####### Dados do usuario. ###### " printf "Login: $LOGIN " printf "Nome: $(grep /$LOGIN: /etc/passwd.ftp | cut -d : -f 5) " printf "Diretorio: $HOME/$LOGIN " printf "##### =====|////===== ##### " printf "==>>ATENCAO, todos os arquivos dentro do diretorio serao apagados!!!<<== " printf "Confirma os Dados?? [s/n]: " read RESP done grep -v "/$LOGIN:" $PASSWD > $PASSWDTEMP cat $PASSWDTEMP > $PASSWD rm -rf $HOME/$LOGIN |
Colocando ele como arquivo executavel:
chmod a+x ftpdel.sh |
5 – Vamos criar um script para alteração de senha do usuário: “ftppas.sh” depois cole o texto abaixo e de poder de execução nele:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #!/bin/sh ####################################### # Script desenvolvido por Gilberto Villani Brito ( giba@olhoneles.com.br) e # Salustiano Ribeiro Neto/Packard ( salur@terra.com.br). # Nenhum direito autoral reservado, por isso usem e auterem a vontade, pois # estamos em um pais literalmente livre (hahahahahah......). ######################################## # Configuracoes das variaveis do script. # htpasswd CRYPTO=/usr/local/bin/htpasswd # passwd.ftp PASSWD=/etc/passwd.ftp # passwd.tmp PASSWDTEMP=/tmp/passwd.tmp # home HOME=/home/ftp # Script para a alteracao de senha dos usuarios de ftp. # Dados do usuario. while [ "$RESP" != "s" ] && [ "$RESP" != "S" ]; do clear printf " Nome de Login do usuario []: " read LOGIN while [ -z $LOGIN ] || [ "$(grep -c /$LOGIN: $PASSWD)" = "0" ]; do clear printf "Usuario nao existe ou em branco!!! " printf " Nome de Login do usuario []: " read LOGIN done clear printf "####### Dados do usuario. ###### " printf "Login: $LOGIN " printf "Nome: $(grep /$LOGIN: /etc/passwd.ftp | cut -d : -f 5) " printf "Diretorio: $HOME/$LOGIN " printf "##### =====|////===== ##### " printf "==>>ATENCAO, a senha do usuario sera pagada!!!<<== " printf "Confirma os Dados?? [s/n]: " read RESP done # retira o usuario do passwd grep -v "/$LOGIN:" $PASSWD > $PASSWDTEMP cat $PASSWDTEMP > $PASSWD # Limpa o passwd.tmp > $PASSWDTEMP # senha para o usuario while [ "$(cat $PASSWDTEMP)" = "" ]; do $CRYPTO $PASSWDTEMP $LOGIN done # coloca o usuario com a nova senha SENHA=$(cat $PASSWDTEMP) echo "$SENHA:91:91:$NOME:$HOME/$LOGIN:/sbin/nologin" |
Colocando poder de execução no arquivo:
chmod a+x ftppass.sh |
7 – Para executar esses arquivos, você deve ir no diretorio deles e é só fazer assim:
./nomedoarquivo.sh |
Dica:
Agora vai apenas uma dica ou um detalhe do funcionamento do ftp: O Proftpd mostra para o usuario conectado que o dono dos arquivos e o primeiro usuario do arquivo passwd.ftp, por isso se o primeiro usuario for joao, todos os outros usuarios que conectarem no seu ftp e digitar o comando ls -l vera que seus arquivos pertencem ao grupo ftp (informacao correta) e ao usuario joao (informacao incorreta). Isso nao altera no bom funcionamento do servidor, porem por motivo de estetica eu recomendo criar o primeiro usuario com o nome ftp (caso nao for usalo, remova sua senha no passwd.ftp, mude seu home para /home/ftp e remova o diretorio /home/ftp/ftp) sendo assim todo o usuario que conectar em seu ftp e dar o comando ls -l vera que o dono dos seus arquivos e o usuario ftp e grupo ftp.
Agradecimento aos criadores do script que é uma verdadeira mão na roda 🙂
Hobosic
Amazing! Not clear for me, how offen you updating your oraculum.blog.br.
Thank you
Hobosic
oraculum
Thanks man
Elissandro
Quero muito aprender linux, tipo instalação de servidores, vc não dá aula prática de instalação.
oraculum
@Elissandro, Caro amigo, eu particularmente não sou muito fã de dar aulas pelo simples fato de acreditar que as pessoas não aprendem nada no metodo de ensino atual, enfim isso pode ser assunto até para um post a parte, o que não cabe aqui debater sobre isso, mas vai algumas dicas para aprender linux e qualquer outra coisa:
1 – Instale no seu pc e comece a usar em seu dia-a-dia só assim você deparará com os problemas e aprenderá a resolve-los
2 – Leia sobre o assunto que você está interessano na net, busque conteudo rico sobre o mesmo.
3 – Pricipalmente participe de foruns sobre o assunto em especial o linux temos o forumdebian.com.br que é uma grande fonte de conhecimento, coisa que você não vai aprender em escola alguma e nenhum professor vai lhe passar.