Importante! Urgente Proftpd!
Pessoal quero que alguém se possível me de umas dicas de como fazer para que no proftpd a lista de usuário fique num arquivo separado, e como também posso fazer para o proftpd jogar os arquivos integrando os com o apache, ex: user digita www.meusite.com/username << dai vai para o site dele e se ele for ftp://meusite.com << ele estara mexendo nos arquivos do site, automaticamente, o que eu quero é integrar o apache com o proftpd da melhorar maneira possivel! como fazer!???
Importante! Urgente Proftpd!
Olá sonnenhohl, bom para que o proftpd leia os usuarios de um arquivo separado vc tem que criar primeiro um arquivo de senhas separado para ele com o comando touch /etc/passwd.ftp, depois de criado o arquivo eu uso os seguintes scripts para fazer esse serviço de adicionar os usuarios no arquivo de senhas e criar os diretorios para os mesmos:
Script que adiciona o usuario:
Código :
#!/bin/sh
#######################################
# Script desenvolvido por Gilberto Villani Brito ([email protected]) e
# Salustiano Ribeiro Neto/Packard ([email protected]).
# 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/bin/htpasswd
# passwd.ftp
PASSWD=/etc/passwd.ftp
# passwd.tmp
PASSWDTEMP=/tmp/passwd.tmp
# home
HOME=/var/www/html
# 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
chmod 777 $HOME/$LOGIN
cd $HOME/$LOGIN
mkdir logs
touch logs/access.log
touch logs/error.log
mkdir cgi-bin
Script para Excluir o usuario:
Código :
#!/bin/sh
#######################################
# Script desenvolvido por Gilberto Villani Brito ([email protected]) e
# Salustiano Ribeiro Neto/Packard ([email protected]).
# 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=/var/www/html
# 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
Script para alterar a senha do usuario:
Código :
#!/bin/sh
#######################################
# Script desenvolvido por Gilberto Villani Brito ([email protected]) e
# Salustiano Ribeiro Neto/Packard ([email protected]).
# 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/bin/htpasswd
# passwd.ftp
PASSWD=/etc/passwd.ftp
# passwd.tmp
PASSWDTEMP=/tmp/passwd.tmp
# home
HOME=/var/www/html
# 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" >> $PASSWD
Nesses scripts basta vc alterar a linha deles que diz respeito ao HOME do seu apache, pq senão eles irão criar os diretorios no lugar errado :P e por ultimo, vc tem que adicionar as seguintes linhas no seu proftpd.conf para que o mesmo leia os usuarios do arquivo de senhas correto e para que os usuarios fiquem restritos apenas aos diretorios deles :P:
AuthUserFile /etc/passwd.ftp
DefaultRoot ~
Como vc não quer criar virtualhosts para os users eu não entrei em detalhes aqui, mas tem muito material sobre isso aqui no under mesmo é só vc dar uma olhada.
Flw.
Importante! Urgente Proftpd!
caro colega eu fiz o seguinte nao sei se e correto masi funciona, eu uso o slack ok
primeiro dentro de /etc/shells
la adicionei /bin/false (tirando permissao para ssh)
depois eu fui dentro de /etc/passwd
e la no final da linha do usuario exe.
teste:x:1000:100:teste sistema,,,:/home/teste:/bin/bash
(mudar para /bin/false) ficando assim
teste:x:1000:100:teste sistema,,,:/home/teste:/bin/false
bom agora o que eu fiz foi dentro do diretorio da pagina onde o apache deixa
os arquivos no meu caso ta em /var/www/htdocs
criei as pastas com o nome dos usuarios blz
aqui criei teste (ficando assim /var/www/htdocs/teste)
agora vc entra novamente dentro de /etc/passwd (no meu caso slackware)
teste:x:1000:100:teste sistema,,,:/home/teste:/bin/false (estara assim ok)
ai vc muda desta forma no exemplo
teste:x:1000:100:teste sistema,,,:/var/www/htdocs/teste:/bin/false
feito isso toda vez que os usuarios logarem no ftp ira cair dentro da pasta onde ficam os arquivos dos sites deles ou seja eles mesmo podem atualizar ou seja interagir com o propio site!!!
bom comigo funcionan legal assim, lembrando que caso nao queira que todos os usuarios tenham pasta dentro de /var/www/htdocs blz e so nao alterar a linha do usuario dentro de /etc/passwd ok
espero ter ajudado pq aqui tb tenho muita ajuda !!