terça-feira, 22 de dezembro de 2015

Alterar senha de usuário no Mysql

Para alterar a senha de um usuário no MySQL é simples, veja:

mysql> SET PASSWORD FOR 'lucio'@'%' = PASSWORD('nova senha');

Nesse caso o campo User da tabela user é lucio, e o campo Host é %. Dê um SELECT na tabela User para confirmar tais valores.

Veja todos os comandos, desde o acesso à base:

$ mysql -ulucio -p
Enter password: 

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select User, Host from user;
+------------------+-----------------+
| User             | Host            |
+------------------+-----------------+
| lucio            | %               |
| root             | 127.0.0.1       |
| root             | localhost       |
+------------------+-----------------+

mysql> SET PASSWORD FOR 'lucio'@'%' = PASSWORD('nova senha');
Query OK, 0 rows affected (0.03 sec));

Acessando pasta de linux para linux

Aí vai uma dica simples e bem útil.

Tenho uma VM Debian o qual uso como ambiente de desenvolvimento. Como sempre precisava enviar arquivos para essa VM ou até copiar arquivos dela, achei mais fácil configurar algumas pastas pelo samba. Então, sempre quando precisa, bastava acessar as pastas pelo Win+r, ou pelo próprio explorer do Windows, com a seguinte linha abaixo:

\\172.22.4.28\shared 
ou
\\172.22.4.28\www

Mas agora mudei meu SO e estou usando o LMDE2, e queria ter a mesma funcionalidade. Bom, é simples, basta entrar com a seguinte linha no gerenciador de arquivos, no meu caso o Caja:

smb://172.22.4.28/shared
ou
smb://172.22.4.28/www


Fácil!!

rdesktop no Linux Mint

Acessar remotamente uma máquina Windows pelo LMDE2 é simples, veja:

Instale o pacote rdesktop pelo apt-get:

$ sudo apt-get install rdesktop


Após a instalação, acesse a máquina Windows com o comando abaixo:

$ rdesktop -5 -a 24 -g 1024x768 172.22.4.10 &


Explicando o comando acima:
-5: versão do RDP
-a: indica a quantidade de bits de cores, no caso 24 bits, podendo ser também 16 ou 8
-g: indica a resolução de tela, no caso 1024x768, podendo ser, por exemplo, 800x600
&: executa o comando em segundo plano, liberando o prompt para outras tarefas.



Caso queira acessar com a tela cheia:

$ rdesktop -5 -a 24 -f 172.22.4.10 &

segunda-feira, 21 de dezembro de 2015

Colocar scripts na inicialização do Linux

Estou usando o LMDE 2, e quero colocar um script que fiz para que toda vez que eu inicialize a máquina, possa automaticamente, montar algumas pastas compartilhadas AD (Aactive Directory), que tenho aqui na rede Windows, onde trabalho.

Basicamente, o script é esse:

sudo mount -t cifs //172.22.4.250/Lucio /home/lucio/csi/lucio -o username=lucio,password=***
sudo mount -t cifs //172.22.4.250/Publico /home/lucio/csi/publico -o username=lucio,password=***

Assim, posso montar a pasta lucio e publico do AD.

Para executar automaticamente esse script, vamos copiar esse script para /etc/init.d, colocar um conteúdo necessário para o comando update-rc.d, e dar permissão 755.

O script completo fica assim:

#!/bin/sh
### BEGIN INIT INFO  
# Provides:          csiSharedFolder.sh
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Example initscript
# Description:       This file should be used to construct scripts to be
#                    placed in /etc/init.d.  This example start a
#                    single forking daemon capable of writing a pid
#                    file.  To get other behavoirs, implemend
#                    do_start(), do_stop() or other functions to
#                    override the defaults in /lib/init/init-d-script.
### END INIT INFO

sudo mount -t cifs //172.22.4.250/Lucio /home/lucio/csi/lucio -o username=lucio,password=lucius02
sudo mount -t cifs //172.22.4.250/Publico /home/lucio/csi/publico -o username=lucio,password=lucius02


Estando ele no diretório /etc/init.d, dada a permissão 755, vamos adiciona-lo à inicialização do sistema.
O nome do meu script é csiSharedFolder.sh

$ sudo  update-rc.d csiSharedFolder.sh defaults 

Provavelmente dará algumas mensagens de erro, mas teste-o usando o comando abaixo:

$ sudo service csiSharedFolder.sh start

Caso queira remover da inicialização:

$ update-rc.d csiSharedFolder.sh remove 

Certifique que as pastas estão sendo acessadas e pronto, deu tudo certo. Ainda estou pesquisando o porquê das mensagens de erro, assim que eu tiver uma solução atualizarei aqui.

Montar NTFS no LMDE2

Para montar um sistema de arquivos Windows no LMDE 2 use o comando abaixo:

$ sudo mkdir /mnt/win
$ sudo mount -t ntfs /dev/sda2 /mnt/win



*** Caso apareça a seguinte mensagem de erro:

The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Failed to mount '/dev/sda2': Operação não permitida
The NTFS partition is in an unsafe state. Please resume and shutdown
Windows fully (no hibernation or fast restarting), or mount the volume
read-only with the 'ro' mount option.

Execute o seguinte comando:

$ sudo ntfsfix /dev/sda2
Mounting volume... The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
FAILED
Attempting to correct errors... 
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Checking the alternate boot sector... OK
NTFS volume version is 3.1.
NTFS partition /dev/sda2 was processed successfully.


Após o término do comando ntfsfix, execute o comando mount de novo: 

$ sudo mount -t ntfs /dev/sda2 /mnt/win

Trocar monitor principal no Linux Mint


Tenho dois monitores, a minha esquerda o monitor de 22', e a minha direita, o monitor de 19'. Veja:


Veja que o monitor principal está configurado para que seja o da minha direita, ou seja, o de 19'. Contudo, gostaria que o monitor de 22' seja o padrão, através dessa tela de configuração não conseguia ter sucesso, o monitor principal ainda continuava sendo o de 19'.

Após algumas pesquisas consegui a configuração pretendida com duas linhas de comando. Segue:

$ xrandr | grep -w connected
DVI-I-1 connected primary 1366x768+1920+0 (normal left inverted right x axis y axis) 413mm x 234mm
HDMI-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm

A saída do comando acima detectou o DVI-I-1, que é o meu monitor de 19' e o HDMI-0 o de 22', repare que o DVI está configurado como primary. Vamos trocar para que o HDMI seja o monitor principal:

$ xrandr --output HDMI-0 --mode 1920x1080 --primary --left-of DVI-I-1 --output DVI-I-1 --mode 1366x768

Explicando, usei os dados do primeiro comando para preencher o comando acima. Pela pesquisa que fiz, ao invés de --left-of, tinha visto o comando --right-of, e executei-o, mas tive problemas na exibição entre os monitores. Troquei o comando para o que está acima e deu tudo certo.

Agora, executando o primeiro comando, tive a seguinte saída:

$ xrandr | grep -w connected
DVI-I-1 connected 1366x768+1920+0 (normal left inverted right x axis y axis) 413mm x 234mm
HDMI-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm

Reparem que agora, o monitor principal é o HDMI-0, como pretendido.


--- Editado em 23/12/2015

Apesar da configuração pelo xrandr, para de definir o monitor principal, tive a infelicidade de perceber que tal configuração não persistia ao reiniciar a máquina. Após profundas pesquisas cheguei a uma forma simples de configurar o monitor principal, veja:

Pelo terminal, vá ao diretório .config
$ cd ~/.config

Edite o arquivo monitors.xml
$ sudo vim monitors.xml

<monitors version="1">
  <configuration>
      <clone>no</clone>
      <output name="HDMI-1">
          <vendor>GSM</vendor>
          <product>0x5a26</product>
          <serial>0x01010101</serial>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>no</primary>
      </output>
      <output name="VGA-1">
      </output>
      <output name="DVI-I-1">
          <vendor>AOC</vendor>
          <product>0x1900</product>
          <serial>0x01010101</serial>
          <width>1366</width>
          <height>768</height>
          <rate>60</rate>
          <x>1920</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>no</primary>
      </output>
  </configuration>
  <configuration>
      <clone>no</clone>
      <output name="DVI-I-0">
      </output>
      <output name="VGA-0">
      </output>
      <output name="DVI-I-1">
          <vendor>AOC</vendor>
          <product>0x1900</product>
          <serial>0x01010101</serial>
          <width>1366</width>
          <height>768</height>
          <rate>60</rate>
          <x>1920</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>yes</primary>
      </output>
      <output name="HDMI-0">
          <vendor>GSM</vendor>
          <product>0x5a26</product>
          <serial>0x01010101</serial>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>no</primary>
      </output>
  </configuration>
</monitors>


Repare que no meu arquivo monitors.xml tem dois trechos com a tag configuration. Procure a que tem a tag primary com o valor yes
Veja que ela está configurando o monitor DVI como primary, mas eu gostaria que o monitor HDMI fosse o principal. Então troquei a configuração, ficando assim:
...
      <output name="DVI-I-1">
          <vendor>AOC</vendor>
          <product>0x1900</product>
          <serial>0x01010101</serial>
          <width>1366</width>
          <height>768</height>
          <rate>60</rate>
          <x>1920</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>no</primary>
      </output>
      <output name="HDMI-0">
          <vendor>GSM</vendor>
          <product>0x5a26</product>
          <serial>0x01010101</serial>
          <width>1920</width>
          <height>1080</height>
          <rate>60</rate>
          <x>0</x>
          <y>0</y>
          <rotation>normal</rotation>
          <reflect_x>no</reflect_x>
          <reflect_y>no</reflect_y>
          <primary>yes</primary>
      </output>
...

Salve o arquivo, reinicie a máquina, e pronto!

OBS: Configuração testada no LMDE2