Arquivo mensal 27 de novembro de 2017

porplague70

Reset root password no MySQL 5.7.*

Estava muito tempo sem postar, mas hoje eu passei uma dor de cabeça muito grande até resolver este problema, então eu tinha que postar essa solução.

Eu estava com o Ubuntu 14.10 e resolvi atualizar ele para a última versão hoje (17/09/2016), Ubuntu 16.04.

Tudo estava correndo bem, mesmo tendo que reinstalar/reconfigurar algumas bibliotecas/aplicativos.

O último passo da verificação foi tentar rodar meus aplicativos web que usam MySQL. A surpresa inicial foi que o MySQL havia sido desinstalado. Verifiquei se os arquivos de dados, com todos os meus bancos de dados, estavam salvos. Graças a minha sorte tudo estava a salvo.

Primeiramente eu apenas fiz a instalação dos pacotes do MySQL, onde a versão mais nova era a 5.7:

$ sudo apt-get install mysql-server-5.7 mysql-client-5.7

Após finalizar a instalação, eu tentei logar. O problema ocorreu justamente nesse momento, quando eu tentei logar no MySQL:

$ mysql -u root
ERROR 1045: Access denied for user: 'root'@'localhost'

Antes de fazer a atualização do Ubuntu meu MySQL não tinha senha de root. Ela era vazia. Eu apenas fazia mysql -u root e o acesso seguia com sucesso.

Então o que eu deveria fazer? Bem, provavelmente a senha de root foi alterada ou qualquer outro problema que eu não sei o que foi. A solução então era alterar a senha de root. Eu passe mais de 5 horas tentando alterar a senha, lendo vários sites, blogs, jornais, revistas, contato extra-terrestre, …, inclusive o site oficial do MySQL, e tudo repetia as mesmas coisas. Até que uma luz veio e me levou até uma postagem no StackOverflow com um erro não tão igual, mas com a mesma solução.

Todos os sites diziam a mesma coisa, mas eu acabei encontrando o que faltava. Segue abaixo:

1. Primeiro devemos parar o serviço do MySQL:

$ sudo service mysql stop

2. Em seguida iniciamos o MySQL em modo seguro, sem as opções de permissões. Isso vai servir para você alterar a senha. Mas o segredo vem depois:

$ sudo mysqld_safe --skip-grant-tables &

Poderá ocorrer o seguinte erro:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.

Caso ocorra, execute o seguinte comando para criar o diretório onde ficará o socket do mysql:

$ sudo mkdir -p /var/run/mysqld
$ sudo chown mysql:mysql /var/run/mysqld

3. Após iniciar o servidor você vai acessar o cliente MySQL com usuário root, sem senha:

$ mysql -u root

4. Agora vamos alterar a senha do usuário root.

Aqui é que está o SEGREDO. No MySQL 5.7 foi alterado algumas coisas no banco de dados de sistema mysql. A tabela user não possui mais a coluna password, o nome agora se chama authentication_string. Então faça a alteração da senha da seguinte maneira:

mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("SuaSenha") where User='root';

Bom, a maioria dos sites paravam aí, o que não resolvia o problema. O que faltava era um pequeno detalhes, devemos alterar o campo plugin setando o mecanismo padrão de verificação do password. Então segue abaixo:

mysql> update user set plugin="mysql_native_password";
mysql> flush privileges;
mysql> quit;

Fieto isso, a senha do root foi alterada e está pronto para ser acessado.

5. Dê um stop no MySQL e depois inicie normalmente o serviço:

$ sudo mysqladmin shutdown # essa foi a forma mais fácil que eu achei para matar o mysqld_safe

Caso não dê certo, você também pode tentar matar o MySQL localizando o id do processo e dando um kill nele:

$ ps -ef | grep mysql
$ sudo kill -9 [id dos processos que você achou no comando anterior]

Após parar o serviço, inicie ele normalmente:

$ sudo service mysql start

Pronto, agora é só conectar e correr para o abraço:

$ mysql -u root -p

Então era isso galera. Queria apenas registrar este detalhe para ajudar mais pessoas, já que a maioria dos sites possui informações bem antigas.

porplague70

Senha do WebGUI e Console do PFSense foram perdidas, o que fazer.

Acompanhando o Fórum do PFSense, vi que tiveram vários tickets referente ao seguinte assunto… Perdi a senha de admin do WebGUI e o console era protegido por senha, na qual também foi perdida.. O QUE EU FAÇO..??

Bom, não precisam entrar em pânico, vamos aos passos abaixo para que possamos contornar este problema. Digo contornar porque não será possível descobrir a senha, e sim iremos resetar a senha padrão de instalação do PFSense, isso inclui resetar os usuários de acesso.

Para continuar você precisará de um teclado, um monitor e ter acesso físico ao PFSense. Bom, vamos ao que interessa….

1– Reinicie o PFSense
2– Ao iniciar, selecione a opção “Single User Mode” no menu de boot. (dependendo da versão pode ser a opção 2 ou 4)
3– Fique atento após selecionar essa opção, pois no decorrer do processo de inicialização irá aparecer “Start /bin/sh”, então pressione “Enter”
4– Remonte as unidades de forma que seja possível sobrescrever os dados
/sbin/mount/ -o rw / (após pressione enter)
5– Em seguida digite o comando de reset de password
/etc/rc.initial.password
Após pressionar enter, siga os passos solicitados pelo Wizard.
6– Ao concluir reinicie
/sbin/reboot

Agora seu PFSense estará acessível com o usuário “admin” e a senha “pfsense”.

porplague70

Use wget Command To Download Files From HTTPS Domains

How do I download a file using https://example.com/dl/foo.tar.gz using wget command line utility?

GNU Wget is a free utility for non-interactive download of files from the Web. It supports HTTP, HTTPS, and FTP protocols, as well as retrieval through HTTP proxies. The syntax is:

wget https://cyberciti.biz/foo/bar.tar.gz

If you don’t want about checking the validity of the certificate just pass the option --no-check-certificate to the wget command-line:

wget --no-check-certificate https://cyberciti.biz/foo/bar.tar.gz

You can pass the --no-proxy option to the wget command. This option tells wget not to use proxies, even if the appropriate `*_proxy’ environment variable is defined:

wget --no-proxy https://cyberciti.biz/foo/bar.tar.gz

Set https proxy using httpd_proxy variable:

export https_proxy="https://USERNAME-HERE:PASSWORD-HERE@Server-Name-Here:PORT-NUMBER-HERE/"
export https_proxy="https://vivek:[email protected]:3128/"
wget https://cyberciti.biz/foo/bar.tar.gz</kbd>

Or pass proxy server username and password to the server using wget command as follows:

export https_proxy="https://server1.cyberciti.biz:3128/"
wget --http-user="USER" --http-password="PASSWORD" https://cyberciti.biz/foo/bar.tar.gz</kbd>
porplague70

Clone a live linux system with Rsync over SSH.

Sync filesystems with Rsync over SSH (Ex: 1.2.3.4 is source machine)

rsync -aHxv --numeric-ids --progress [email protected]:/* /mount --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/tmp
rsync -aHxv --numeric-ids --progress [email protected]:/boot/* /mount/boot --exclude=/dev --exclude=/proc --exclude=/sys --exclude=/tmp  ## Only if /boot is on separate partition in source machine
------
rsync -aAXx  / /mnt/somedir/ 
   --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}