Catégorie : Linux

5 mai 2016 /

Si vous tombez sur cette erreur:

mysql> create database nom_utilisateur;

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

Pour la résoudre, il suffit de définir un password à l’utilisateur (ici root) qui sert d’opérateur :

mysql

set password for root@'localhost' = PASSWORD('nouveau_passwd');

 

2 mai 2016 /

Voici un petit mémo qui montre comment changer le répertoire de données MySQL par défaut, puis à régler SELinux pour qu’il tienne compte des changements.

Arrêt du serveur MySQL:

service mysqld stop

Création d’un nouveau répertoire de données:

mkdir /nouveau/repertoire/mysql
chown mysql:mysql /nouveau/repertoire/mysql

Déplacer la base de données d’origine:

mv /var/lib/mysql/* /nouveau/repertoire/mysql

Modification du fichier de configuration MySQL:

vi /etc/mysql/my.cnf

Et on y change cette ligne:

datadir = /var/lib/mysql

devient:

datadir = /nouveau/repertoire/mysql

ainsi que celle la:

socket = /var/lib/mysql/mysql.sock

qui devient:

socket = /nouveau/repertoire/mysql/mysql.sock

Mappage du contexte SELinux pour le répertoire /nouveau/repertoire/mysql/ , avec la commande semanage:

semanage fcontext -a -t mysqld_db_t "/nouveau/repertoire/mysql(/.*)?"

Application du contexte pour une prise en compte par le système à chaud:

restorecon -Rv /nouveau/repertoire/mysql/

Démarrage du serveur MySQL:

service mysqld start

Vérification de l’accès et de la connectivité:

mysql -u root -p

mysql> show databases;

Si cela fonctionne, vous avez changé le répertoire par défaut de MySQL avec une prise en compte par SELinux avec succès.

Par contre si vous obtenez un message de ce genre:

ERROR 2002 (HY000): Impossible de se connecter au serveur MySQL local par socket '/var/lib/mysql/mysql.sock'

Il faudra ajouter cela à votre fichier /etc/my.cnf :

[client]
socket = /srv/mysql/mysql.sock

Et dernière chose, pour éviter la connexion via le socket:

mysql -u root -p --protocol tcp

1 mai 2016 /

Telnet, (depuis un serveur distant)

telnet 192.168.0.14 20000

Si le port est ouvert:

Trying 192.168.0.14...
Connected to entropia (192.168.0.14).
Escape character is '^]'.

Si le port est fermé (ou service non démarré):

Trying 192.168.0.14...
telnet: connect to address 192.168.0.14: Connection refused
telnet: Unable to connect to remote host: Connection refused

Netstat, (pour tester en local)

netstat -paunt | grep 3306; echo $?

Si le port est ouvert:

tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1979/mysqld
0

Si le port est fermé (ou service non démarré):

1

Netcat, (depuis un serveur distant)

nc -v -z 192.168.0.14 3306; echo $?

Si le port est ouvert:

Connection to 192.168.0.14 3306 port [tcp/mysql] succeeded!
0

Si le port est fermé (ou service non démarré):

nc: connect to 192.168.0.14 port 3306(tcp) failed: Connection refused
1

nc  192.168.0.14 3306< /dev/null ; echo $?

Si le port est ouvert:

4
5.1.73▒d))4f*<,i▒N*'%#~rC8/#`0

Si le port est fermé (ou service non démarré):
1

Wget pour tester un serveur web, (depuis un serveur distant)

wget -qO- 192.168.0.14:80 ; echo $?

wget -q --spider 192.168.0.14:80 ; echo $?

Curl, (depuis un serveur distant)

curl telnet://192.168.0.14:22

Si le port est ouvert, la commande restera bloquée car elle attend que l’on saisisse quelque chose. ctrl+c pour sortir.

Si le port est fermé:

curl: (7) couldn't connect to host

Bash, (depuis un serveur distant)

timeout 1 bash -c 'cat < /dev/null > /dev/tcp/192.168.0.14/22' ; echo $?

Si le port est ouvert:
0
Si le port est fermé:

bash: connect: Connexion refusée
bash: /dev/tcp/192.168.0.14/22: Connexion refusée
1

Nmap, (depuis un serveur distant)

nmap -p 80 192.168.0.14

Si le port est ouvert:

Starting Nmap 5.51 ( http://nmap.org ) at 2016-03-29 10:00 CEST
Nmap scan report for entropia.local (192.168.0.14)
Host is up (0.00068s latency).
PORT   STATE SERVICE
80/tcp open  http
MAC Address: 00:50:56:01:27:55 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds

Si le port est fermé:

Starting Nmap 5.51 ( http://nmap.org ) at 2016-03-29 10:06 CEST
Nmap scan report for entropia.local (192.168.0.14)
Host is up (0.00045s latency).
PORT   STATE  SERVICE
80/tcp closed http
MAC Address: 00:50:56:01:27:55 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

Pour tester plusieurs port en même temps:

nmap -p 22,1944,20000 192.168.0.14

Python, (depuis un serveur distant)

python
import socket
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('192.168.0.14' , 80))
clientsocket.sent('\n')

Si le port est ouvert, vous arriverez à faire un « clientsocket.sent(‘\n’) » (qui vous retournera surement cette une erreur):
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: '_socketobject' object has no attribute 'sent'

Si le port est fermé, au moment du « clientsocket.connect((‘192.168.0.14’ , 80)) » :
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<string>", line 1, in connect
socket.error: [Errno 111] Connection refused

28 avril 2016 /

Il peut être parfois utile de pouvoir identifier facilement un port réseau sur un serveur lors des opération de brassage.
Pour identifier facilement une carte, on peut utiliser la commande ethtool et son option -p (ou –identify) pour faire clignoter la diode d’activitée (celle des données) durant une durée déterminé.

Pour faire clignoter la carte eth0 pendant 5 seconde:

ethtool -p eth0 5

Pour faire clignoter la carte eth0 indéfiniment:

ethtool -p eth0

26 avril 2016 /

Le timestamp désigne le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit UTC précise. Noter le temps de cette façon, indépendamment du fuseau horaire, est très pratique pour comparer des dates, mais cela s’avère difficile à lire pour l’utilisateur.

giphy

Heureusement, sous Linux on peut facilement y parvenir.

Pour obtenir le timestamp de la date et de l’heure courante :

date +%s

Pour avoir le timestamp d’une date précise:

date -d "2016-02-22 04:30:00" +%s

Et enfin, convertir un timestamp en date:

date -d @1461655272.314