quarta-feira, 31 de março de 2010

Salvando arquivo usando VIM / VI sem ser ROOT

Isto acontece varias vezes. Por exemplo: Estou logado com usuário normal e início uma edição de um arquivo (httpd.conf ou lighttpd.conf) de configuração onde somente o root tem permissão para escrita com o editor VIM / VI. De qualquer maneira eu não tenho permissão para salvar as mudanças. Como faço para salvar o arquivo sem criar um arquivo temporário  (/tmp/httpd.conf) para depois renomeá-lo (mv /tmp/httpd.conf /etc/httpd) como root ? 

Você pode usar a combinação dos comandos "tee" e "sudo" (sendo que sudo deve estar configurado para sua conta) para salvar um arquivo sem criar um outro arquivo temporário.


Edite o arquivo "/etc/apache2/conf.d/mediawiki.conf" como usuário normal:

$ vim /etc/apache2/conf.d/mediawiki.conf

Faça algumas alterações e tente salvar (:w, enter).


Para salvar o arquivo, simplimente digite o comando:

:w !sudo tee %
 
 
Onde,
  • :w - Escreve/salva o arquivo. 
  • !sudo - Executa no shell o comando "sudo". 
  • tee - A saída do comando de escrita (vim :w) é redirecionada para o comando "tee". O "%" representa o arquivo atual (/etc/apache2/conf.d/mediawiki.conf). Em outras palavras o comando "tee" é executado como "root" e recebe como entrada a escrita do arquivo atual. Logo depois será perguntado se deseja recarregar o arquivo.



    domingo, 14 de fevereiro de 2010

    WAMP - Configurando senha para o MySQL (através do phpMyAdmin)

    Por padrão, o MySQL vem sem senha e com um usuário ROOT, isto é, um usuário que tem acesso total ao seu banco de dados.

    1. Clique uma vez com o botão esquerdo no WAMP, e clique em phpMyAdmin.

    2. Clique em 'Privilégios' e no usuário ROOT clique em 'Editar' (uma pequena figura ao final da descrição do mesmo). Adicione uma senha e salve. (Observe que agora seu phpMyAdmin ficou trancado! Nem você mesmo conseguirá acessar!)

    3. Para corrigir, com todos os serviços parados (Stop all services) acesse o arquivo config.inc.php que está na pasta PHPMyAdmin no diretório do WAMP e localize esta linha:
    $cfg['Servers'][$i]['password'] = '';

    Inclua aqui mesma senha adicionada no painel do phpMyAdmin.
    Como exemplo, ficaria assim:
    $cfg['Servers'][$i]['password'] = 'SUASENHA';

    Agora procure a seguinte linha:
    $cfg['Servers'][$i]['auth_type'] = 'config';
     
    E altere para:
    $cfg['Servers'][$i]['auth_type'] = 'http';

    Pronto! Seu MySQL está com senha (usuário ROOT) e o phpMyAdmin voltou a funcionar!
    Salve o arquivo e clique em 'Star all Services'.

    Fonte: Clube do Hardware, Guia do Hardware