Translation in English (Google)  Übersetzung in Deutsch (Google)  Traducción en Español (Google) 
webmaster@smeserver.fr
 Version imprimable 

Astuces et howtos


But

Cette page sert à recenser le plus grand nombre d'astuces et de howtos utiles sous SME v7.x.
Comme il s'agit le plus souvent de modifier le comportement standard de SME et cela implique que vous soyez parfaitement conscient des altérations apportées au système avec les éventuels risques que cela peut comporter. Si vos connaissances de SME et de l'exploitation de la ligne de commande sont limitées, vous devriez absolument vous documenter sur le sujet avant d'exploiter le contenu de cette page.

Je vous encourage vivement à me faire part de nouvelles astuces à ajouter à cette liste en m'envoyant un mail. Merci d'avance pour votre aide.

Utilisateurs
Groupes
I-bays
Modifier le niveau complexité des mots de passe
Modifier le nombre maximal de caractères utilisables dans les noms
Autoriser un utilisateur à exploiter la ligne de commande
Réinitialiser le mot de passe du compte root
Apache Restreindre l'accès au service Apache ou le désactiver
Masquer le listing des fichiers dans les i-bays
Résoudre les noms d'hôte dans les logs
Personnaliser les messages d'erreur standards d'Apache
Créer une galerie de photos dans une i-bay avec phpWebGallery
PHP Visualiser les messages d'erreur PHP sous Apache
Autoriser les scripts PHP à accéder à certains répertoires
Autoriser l'accès aux fichiers distants
Modifier la taille des fichiers pouvant être envoyés sur le serveur
MySQL Créer des utilisateurs MySQL
Accéder au serveur MySQL depuis le réseau
Messagerie Modifier le nombre maximal de connexions IMAP simultanées
Visualiser dans le webmail les messages envoyés en HTML
Limiter la taille des courriels pouvant être envoyés
Supprimer les "double bounce"
Forcer un serveur SMTP tiers pour certains domaines destinataires
Supprimer les alertes de rkhunter concernant l'accès SSH par root
Samba Changer le commentaire associé au serveur
Autoriser tout le monde à utiliser les imprimantes
Système de fichiers Utiliser un disque dur supplémentaire pour stocker une ou plusieurs i-bay(s)
Réseau Ouvrir un port réseau sur l'interface externe pour un service
Limiter l'accès à certains services sur l'interface externe
Désactiver le proxy transparent
Créer et utiliser des paires de clés SSH
Modifier le niveau d'enregistrement des évènements du pare-feu
Mettre à jour plusieurs domaines DynDNS (service gratuit)
Bloquer de façon permanente des adresses IP externes


Convention typographique

Afin de vous faciliter la compréhension de qui apparait à l'écran, j'ai mis en place le code couleur suivant :

En blanc : ce que vous devez taper
En magenta : les éléments que vous devez taper, en fonction de vos besoins
En cyan : ce qui est affiché par le système


Créer des utilisateurs MySQL

Avant toute chose, comme nous touchons ici à un élément sensible du système, je vais supposer que vous possédez certaines connaissances sur les Systèmes de Gestion de Bases de Données et leur administration. Si tel n'est pas le cas, je vous recommande de lire l'abondante documentation disponible dans ce domaine.

A l'installation de SME, trois "utilisateurs" MySQL sont créés : 1 horde (depuis le localhost) qui est utilisé pour le WebMail et 2 root (depuis le localhost et l'alias du serveur) qui supporte la lourde tâche de DBA (Administrateur Base de Données).

Attention, une erreur courante est de confondre les comptes utilisateur du système d'exploitation et du serveur MySQL. Or, ils sont totalement indépendants à tous points de vue.

Par défaut, le compte MySQL root dispose d'un mot de passe de 76 caractères aléatoires (visible dans /root/.my.cnf). Ce mot de passe et ce fichier ne doivent JAMAIS être modifiés !!!
Comme ces 76 caractères sont impossibles à mémoriser, qu'il est assez pénible d'avoir à les copier/coller à chaque fois dans vos scripts, mais surtout parce qu'il est très dangereux d'utiliser un compte de DBA, l'idéal est de créer un ou plusieurs utilisateurs qui auront certains droits sur vos bases de données et/ou le SGBD.

Pour créer de nouveaux comptes MySQL, vous devez ouvrir une session root (l'administrateur SME) sur le serveur et lancer le client MySQL en tapant tout simplement :

mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>

Attention, à partir de maintenant, vous êtes DBA MySQL et toute erreur de manipulation peut être critique !

Commençons par le cas de la création d'un DBA avec accès depuis votre réseau local. Ceci est fort utile si vous souhaitez administrer votre serveur MySQL à partir d'une autre machine de votre réseau (il existe de sympathiques interfaces graphiques qui simplifient la vie).
Je supposerais ici que l'adresse de votre réseau est 192.168.10.0/255.255.255.0 ; vous pouvez même spécifier une adresse IP en particulier, pour plus de sécurité (dans ce cas, le masque serait 255.255.255.255) :

mysql> GRANT ALL PRIVILEGES ON *.* TO 'nouveau_dba'@'192.168.10.0/255.255.255.0' IDENTIFIED BY 'mot_de_passe' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
Nota : l'option "WITH GRANT OPTION" n'est pas indispensable et doit être évitée à chaque fois que c'est possible. Elle n'est présentée ici que pour être conforme aux droits que doit avoir un DBA (voir la documentation s'y rapportant pour plus d'informations).

Autre cas, création d'un utilisateur standard avec accès local sur une base de données existante (très utile pour les scripts PHP, notamment) :

mysql> GRANT SELECT, UPDATE, INSERT, DELETE ON base_de_données.* TO 'nouvel_utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe';
Query OK, 0 rows affected (0.01 sec)
Nota : ne modifiez pas le paramètre 'localhost'.

Il existe bien entendu de multiples variations et combinaisons, mais les deux cas que je viens de vous présenter correspond à l'immense majorité des besoins des utilisateurs sur SME.

Après la création de nouveaux utilisateurs, vous devez indiquer à MySQL de les prendre en compte et, ensuite, quitter le client :

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> QUIT;
Bye


Réinitialiser les comptes MySQL root

Au cas où vous auriez fait des bêtises et modifié les comptes MySQL root, il vous est toujours possible de réinitialiser leur mot de passe en tapant les commandes suivantes :

cd /service/mysqld
runsvctrl d .
cat set.password | /usr/libexec/mysqld --bootstrap --user=mysql --skip-grant-tables
runsvctrl u .

Et si vous avez vraiment tout cassé, voici l'opération de la dernière chance qui va réinitialiser entièrement le service MySQL et redémarrer le serveur.
Attention, vous perdrez le contenu de vos bases de données :

cd /service/mysqld
runsvctrl d .
/etc/e-smith/events/actions/mysql-delete-db-files
signal-event post-upgrade
signal-event reboot

Contrat Creative Commons smeserver.fr
Site consacré à la distribution Linux SME Server
Site sous licence Creative Commons (by, nc, sa)