Comment insérer des retour à la ligne dans un mailto ?
Inutile d'utiliser la balise <br> ou \n, ça ne fonctionne pas. En revanche, l'expression %0A donne les résultats escomptés.
mardi 25 août 2015
vendredi 5 juin 2015
SELinux sur CentOS
J'ai récemment migré un site php sous apache hosté sur un serveur Ubuntu vers un serveur CentOS.
Le premier problème rencontré après ma migration vers CentOS a été l'upload de fichiers qui ne fonctionne plus.
Pourtant, après avoir vérifié sur le web, les droits de mon répertoire d'upload étaient bien ajustés :
sudo chown apache:apache /var/www/upload_dir
sudo chmod 774 /var/www/upload_dir
Rien à faire, j'ai toujours un « permission denied » dans mon /etc/httpd/logs/ssl_error_log …
Que s'est-t-il passé ? La gestion traditionnelle des droits sur les répertoires est soumises à SELinux (Security-Enhanced Linux). Le principe est que les utilisateurs et les applications peuvent changer les droits d'accès aux répertoires du serveur et pas toujours de la bonne manière. L'administrateur ne peut contrôler tous ces changements de droits.
SELinux va donc recouvrir tous les dossiers du serveur par un niveau ré-haussé de sécurité. Par exemple, il va interdire les accès autres que lecture seule pour http (apache) dans mon /var/www/.
On peut changer le statut de SELinux en modifiant /etc/selinux/config (selinux=enfocing, permissive ou disabled) ou en écrivant
Setenforce 0
Cette commande va permettre de désactiver SELinux mais ne résiste pas à un reboot. Si on modifie le fichier /etc/selinux/config, ça résiste à un reboot.
Passer en disabled ou permissive permet de retrouver l'accès écriture à mon dossier et donc l'upload des fichiers fonctionne à nouveau. Le problème, c'est qu'on perd l'avantage de SELinux.
Comment configurer le système pour ouvrir les droits d'écriture sur certains répertoires (/var/www/upload_dir) et pas sur le reste ?
Voici quelques commandes utiles de SELinux.
Tout d'abord, on peut afficher le « contexte SELinux » associé à un fichier :
ls -Z /var/www/index.php
=> -rw-r--r-- username username system_u:object_r:httpd_sys_content_t /var/www/html/index.html
system_u:object_r:httpd_sys_content_t nous renseigne sur le contexte SELinux sous le format utilisateur:rôle:type:mls. (mls n'est pas affiché)
On peut tester cette commande sur quelques fichiers du serveur pour mieux cerner son fonctionnement.
Pour résumé, apache (httpd_t) peut lire des fichier de type httpd_sys_content_t. Par exemple, apache ne pourrait pas lire un fichier dans le home d'un utilisateur.
Comment modifier le contexte des fichiers ?
chcon -v --type=httpd_sys_content_t /var/www/newfile.php
En récursif :
chcon -vR –type=httpd_sys_content_t /var/www/newdir
Finalement, voici le type qu'on va appliquer aux fichiers dans lesquels on souhaite uploader des fichiers :
chcon -vR unconfined_u:object_r:httpd_sys_rw_content_t:x0 /var/www/upload_dir
Maintenant qu'on a ouvert l'accès à l'upload de fichier, il reste à faire ça correctement en modifiant le code php pour :
Le premier problème rencontré après ma migration vers CentOS a été l'upload de fichiers qui ne fonctionne plus.
Pourtant, après avoir vérifié sur le web, les droits de mon répertoire d'upload étaient bien ajustés :
sudo chown apache:apache /var/www/upload_dir
sudo chmod 774 /var/www/upload_dir
Rien à faire, j'ai toujours un « permission denied » dans mon /etc/httpd/logs/ssl_error_log …
Que s'est-t-il passé ? La gestion traditionnelle des droits sur les répertoires est soumises à SELinux (Security-Enhanced Linux). Le principe est que les utilisateurs et les applications peuvent changer les droits d'accès aux répertoires du serveur et pas toujours de la bonne manière. L'administrateur ne peut contrôler tous ces changements de droits.
SELinux va donc recouvrir tous les dossiers du serveur par un niveau ré-haussé de sécurité. Par exemple, il va interdire les accès autres que lecture seule pour http (apache) dans mon /var/www/.
On peut changer le statut de SELinux en modifiant /etc/selinux/config (selinux=enfocing, permissive ou disabled) ou en écrivant
Setenforce 0
Cette commande va permettre de désactiver SELinux mais ne résiste pas à un reboot. Si on modifie le fichier /etc/selinux/config, ça résiste à un reboot.
Passer en disabled ou permissive permet de retrouver l'accès écriture à mon dossier et donc l'upload des fichiers fonctionne à nouveau. Le problème, c'est qu'on perd l'avantage de SELinux.
Comment configurer le système pour ouvrir les droits d'écriture sur certains répertoires (/var/www/upload_dir) et pas sur le reste ?
Voici quelques commandes utiles de SELinux.
Tout d'abord, on peut afficher le « contexte SELinux » associé à un fichier :
ls -Z /var/www/index.php
=> -rw-r--r-- username username system_u:object_r:httpd_sys_content_t /var/www/html/index.html
system_u:object_r:httpd_sys_content_t nous renseigne sur le contexte SELinux sous le format utilisateur:rôle:type:mls. (mls n'est pas affiché)
On peut tester cette commande sur quelques fichiers du serveur pour mieux cerner son fonctionnement.
Pour résumé, apache (httpd_t) peut lire des fichier de type httpd_sys_content_t. Par exemple, apache ne pourrait pas lire un fichier dans le home d'un utilisateur.
Comment modifier le contexte des fichiers ?
chcon -v --type=httpd_sys_content_t /var/www/newfile.php
En récursif :
chcon -vR –type=httpd_sys_content_t /var/www/newdir
Finalement, voici le type qu'on va appliquer aux fichiers dans lesquels on souhaite uploader des fichiers :
chcon -vR unconfined_u:object_r:httpd_sys_rw_content_t:x0 /var/www/upload_dir
Maintenant qu'on a ouvert l'accès à l'upload de fichier, il reste à faire ça correctement en modifiant le code php pour :
- vérifier que l'extension du fichier est dans une « white list » (gif, jpg, png, pdf, doc, etc.) ;
- vérifier que le type du fichier correspond bien à ce que son extension prétend être.
mercredi 27 mai 2015
Auto-correction dans calc (libreoffice)
Si vous aussi vous en avez marre de voir calc faire systématiquement des auto-corrections lorsque vous encodez des valeurs, sachez qu'il est possible de configurer l'outil selon votre bon vouloir.
Par exemple, l'ajout automatique de majuscules en début de phrase peut être utile dans le writer mais devient vite insupportable dans calc.
Il suffit de se rendre dans le menu Outils / AutoCorrection et de consulter les options disponibles. Par exemple, dans le troisième onglet, on peut désactiver les majuscules en début de phrase.
Par exemple, l'ajout automatique de majuscules en début de phrase peut être utile dans le writer mais devient vite insupportable dans calc.
Il suffit de se rendre dans le menu Outils / AutoCorrection et de consulter les options disponibles. Par exemple, dans le troisième onglet, on peut désactiver les majuscules en début de phrase.
Apache - redirection
Voici deux méthodes de redirection sur un serveur apache.
- Je souhaite rediriger le port 80 vers le port 443
=> on ajoute la ligne suivante dans le VirtualHost 80 :
Redirect / https://%{HTTP_HOST} - Je souhaite rediriger l'adresse ip du serveur vers mon nom de domaine
=> il faut installer le module Rewrite :
sudo a2enmod rewrite
=> on ajoute les lignes suivantes dans le VirtualHost 443 :
RewriteEngine on
RewriteCond %{HTTP_HOST} !^<nomdedomaine>$
RewriteRule (.*) https://<nomdedomaine>
vendredi 22 mai 2015
Nettoyer son pc - fichier de sauvegarde
voici une petite ligne de commande utile pour retrouver les fichiers de sauvegarde qui ont tendance à s'accumuler sur le pc. Exemple : test.php~.
find /chemin/ -name '*~'
find /chemin/ -name '*~'
Inscription à :
Articles (Atom)