+ Responder ao Tópico



  1. #1
    hardcode
    Visitante

    Padrão adduser: unable to lock password file

    pessoal,
    estive fazendo um script para adicionar utilizadores de sistema em PHP.
    Tenho a seguite configuração (não estou rodando o Apache como root):

    #/etc/sudoers
    # User privilege specification
    root ALL=(ALL) ALL
    apache ALL = (ALL) NOPASSWD: /usr/sbin/adduser


    no script php para registo:

    system("/usr/bin/sudo -u apache /usr/sbin/adduser ".$email." -p ".$passwd." -s /bin/false",$rf);

    quando tento registar um utilizador com este script não consigo... e no error_log do Apache aparece a seguinte linha:
    adduser: unable to lock password file

    estive vendo várias coisas no google sobre o assunto mas não consegui solução... isto é sem duvida um problema de permissões (digo eu...)

    Agradecia qualquer tipo de ajuda :wink:

    (este script tem o objectivo de adicionar utilizadores ao sistema para usar o e-mail.)

  2. #2
    Beto
    Visitante

    Padrão Re: adduser: unable to lock password file

    Citação Postado originalmente por hardcode
    pessoal,
    estive fazendo um script para adicionar utilizadores de sistema em PHP.
    Tenho a seguite configuração (não estou rodando o Apache como root):

    #/etc/sudoers
    # User privilege specification
    root ALL=(ALL) ALL
    apache ALL = (ALL) NOPASSWD: /usr/sbin/adduser


    no script php para registo:

    system("/usr/bin/sudo -u apache /usr/sbin/adduser ".$email." -p ".$passwd." -s /bin/false",$rf);

    quando tento registar um utilizador com este script não consigo... e no error_log do Apache aparece a seguinte linha:
    adduser: unable to lock password file

    estive vendo várias coisas no google sobre o assunto mas não consegui solução... isto é sem duvida um problema de permissões (digo eu...)

    Agradecia qualquer tipo de ajuda :wink:

    (este script tem o objectivo de adicionar utilizadores ao sistema para usar o e-mail.)
    Blz,

    Cheque as permissões do arquivo onde ele está criando esse usuário, provavelmente /etc/passwd /etc/shadow /etc/groups

    Fiz um script parecido mas em shell mesmo e funcionou legal, inclusive ele ativa ou desativa a conta para usar o squid.
    Dê uma olhada:

    #!/bin/bash

    # Variáveis de Ambiente

    BASE=/etc/passwd
    BASENOMES=/bkp/alunos/base.dat

    clear
    echo
    echo " ***************************OPÇOES DE CONTROLE******** "
    echo
    echo " [1] - Cadastrar usuário novo "
    echo " [2] - Cadastrar nova senha de usuário "
    echo " [3] - Cadastrar usuários na base "
    echo " [4] - Consultar usuários existentes na base "
    echo " [5] - Controle de contas "
    echo " [0] - Sair "
    echo
    echo -n " Entre com a opção desejada: "
    read OPCAO




    if [ $OPCAO -eq 1 ]; then

    clear

    echo "************************CADASTRO DE USUÁRIO*******"
    echo
    echo -n " Entre com o RA/RE do usuário: "
    read NOME
    useradd -g acessonet -s /bin/false $NOME
    passwd $NOME
    echo
    echo " Operação realizada com sucesso !!! "
    echo
    fi

    ###############################################

    if [ $OPCAO -eq 2 ]; then

    clear

    echo "*********************CADASTRO DE SENHAS DE USUÁRIOS**"
    echo
    echo -n " Entre com o RA/RE do usuário a ser alterado: "
    read NOME
    passwd $NOME
    echo
    echo " Senha alterada com sucesso !!! "
    echo
    fi

    ###############################################


    if [ $OPCAO -eq 3 ]; then

    clear

    echo "********************CADASTRO DE USUÁRIOS NA BASE******"
    echo
    echo " FORMATO DO CADASTRO: 000000000000:nomenomenome:11111111 "
    echo
    echo -n " Entre com o RA - NOME - CPF do usuário: "
    read NOME
    echo $NOME >> $BASENOMES
    echo
    echo " Base atualizada com sucesso !!! "
    echo
    fi


    ###############################################

    if [ $OPCAO -eq 4 ]; then

    clear

    echo "************************PESQUISA DE USUÁRIOS*****"
    echo
    echo -n " Entre com o RA/RE/NOME ou CPF a ser localizado: "
    read NOME
    echo
    grep -i $NOME $BASE
    echo
    fi

    ###############################################

    if [ $OPCAO -eq 5 ]; then

    clear
    echo "*********ATIVAR/DESATIVAR USUÁRIOS NA BASE************"
    echo
    echo " O que deseja fazer ? "
    echo
    echo " [1] - Bloquear a conta "
    echo " [2] - Desbloquear a conta "
    echo " [3] - Verificar Status "
    echo " [4] - Excluir conta "

    echo
    echo -n " Entre com a opção: "
    read FUNCAO

    if [ $FUNCAO -eq 1 ]; then
    echo -n " Entre com a conta a Bloquear: "
    read NOME
    passwd -l $NOME
    echo " Conta bloqueada com sucesso !!! "
    fi

    if [ $FUNCAO -eq 2 ]; then
    echo -n " Entre com a conta a Desbloquear: "
    read NOME
    passwd -u $NOME
    echo " Conta desbloqueada com sucesso !!! "
    fi

    if [ $FUNCAO -eq 3 ]; then
    echo -n " Entre com a conta para Status: "
    read NOME
    passwd -S $NOME
    fi

    if [ $FUNCAO -eq 4 ]; then
    echo -n " Entre com a conta a excluir: "
    echo
    read NOME
    userdel -r $NOME
    echo " Conta excluída com sucesso !!! "
    fi
    fi

    ###############################################

  3. #3
    hardcode
    Visitante

    Padrão adduser: unable to lock password file

    cara valeu... tentei modificar as permissões e continua dando o mesmo erro. No error_log do apache diz adduser: unable to lock password file ...
    Eu estive vendo e tenho um processo passwd correndo... ja tentei dar um skill nele mas ele sempre volta a correr...
    estou ficando desesperado...
    valeu

    PS: em ultimo caso rodo o apache com o utilizador root... o q acham???