+ Responder ao Tópico



  1. #1
    sonnenhohl
    Visitante

    Padrão 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!???

  2. #2

    Padrão 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.

  3. #3
    slackrio
    Visitante

    Padrão 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 !!

  4. #4
    sonnenhohl
    Visitante

    Padrão mto obrigado...

    pow galera vlw msm ai!!! essas dicas vão me ajudar bastante! Eu havia conseguido já para fazer cair na pasta do WWW mas o q eu n queria eh q eles ficassem como users do linux tb! Então vlw pelos scripts ai! Thx a lot!