Configuration SELinux¶
Quand SELinux est activé sur votre distribution Linux, vous pouvez rencontrer des problèmes de permissions après une nouvelle installation d’ownCloud et voir des erreurs permission denied dans vos journaux ownCloud.
Les paramètres suivants devraient fonctionner pour la plupart des systèmes SELinux utilisant les profils par défaut de la distribution. Exécutez ces commandes en tant que root et ajustez les chemins d’accès des fichiers en fonction de votre installation :
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/data(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/apps(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/assets(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/.htaccess'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud/.user.ini'
restorecon -Rv '/var/www/html/owncloud/'
Si vous désinstallez ownCloud, vous devez supprimer les libellés de répertoires d’ownCloud. Pour cela, exécutez les commandes suivantes en tant que root après avoir désinstallé ownCloud :
semanage fcontext -d '/var/www/html/owncloud/data(/.*)?'
semanage fcontext -d '/var/www/html/owncloud/config(/.*)?'
semanage fcontext -d '/var/www/html/owncloud/apps(/.*)?'
semanage fcontext -d '/var/www/html/owncloud/assets(/.*)?'
semanage fcontext -d '/var/www/html/owncloud/.htaccess'
semanage fcontext -d '/var/www/html/owncloud/.user.ini'
restorecon -Rv '/var/www/html/owncloud/'
Note : Le dossier « assets » n’est nécessaire que si « JavaScript and CSS Asset Management » est activé. ('asset-pipeline.enabled' => true, dans le fichier config.php).
Si vous avez des politiques SELinux personnalisées et que ces exemples ne fonctionnent pas, vous devez donner les droits en écriture au serveur HTTP sur ces répertoires :
/var/www/html/owncloud/data
/var/www/html/owncloud/config
/var/www/html/owncloud/apps
/var/www/html/owncloud/assets
Activation des mises à jour via l’interface Web¶
Pour activer les mises à jour via l’interface Web d’ownCloud, vous aurez peut-être besoin d’autoriser l’écriture dans les répertoires d’ownCloud
setsebool httpd_unified on
Quand la mise à jour est terminée, enlever les droits en écriture
setsebool -P httpd_unified off
Empêcher l’accès en écriture sur tout le répertoire Web¶
Pour des raisons de sécurité, il est suggéré de désactiver l’accès en écriture sur tous les répertoires dans /var/www/ (par défaut)
setsebool -P httpd_unified off
Autorisation d’accès à une base de données distante¶
Un paramètre supplémentaire est nécessaire si votre installation se connecte sur une base de données distante :
setsebool -P httpd_can_network_connect_db on
Autorisation d’accès à un serveur LDAP¶
Utiliser ce paramètre pour autoriser les connexions LDAP :
setsebool -P httpd_can_connect_ldap on
Autorisation d’accès à un réseau distant¶
ownCloud nécssite d’accéder à des réseaux distants pour des fonctions comme le partage de serveur à serveur, les stockages externes our le magasin d’applications. Pour permettre ceci, utiliser le paamètre suivant :
setsebool -P httpd_can_network_connect on
Autorisation d’accès au réseau memcache¶
Ce paramètre n’est pas nécessaire si httpd_can_network_connect est déjà défini à « on » :
setsebool -P httpd_can_network_memcache on
Autorisation d’accès à SMTP/sendmail¶
Si vous voulez autoriser ownCloud à envoyer des courriels de notification par sendmail, utilisez le paramètre suivant :
setsebool -P httpd_can_sendmail on
Autorisation d’accès à CIFS/SMB¶
Si le répertoire de données est situé sur un partage CIFS/SMB, utiliser le paramètre suivant :
setsebool -P httpd_use_cifs on
Autorisation d’accès à FuseFS¶
Si votre dossier data d’ownCloud réside sur une système de fichiers Fuse (par ex. : EncFS etc), ce paramètre est également requis
setsebool -P httpd_use_fusefs on
Autorisation d’accès de GPG pour Rainloop¶
ISi vous utilisez un client de messagerie Web Rainloop qui gère GPG/PGP, vous pourriez avoir besoin de ceci
setsebool -P httpd_use_gpg on
Dépannage¶
Pour le dépannage de SELinux et de ses profils, essayez d’installer setroubleshoot et exécutez la commande :
sealert -a /var/log/audit/audit.log > /path/to/mylogfile.txt
pour obtenir un rapport qui vous aidera à configurer vos profils SELinux.
Un autre outil pour le dépannage est d’activer une règle dans votre répertoire ownCloud
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/owncloud(/.*)?'
restorecon -RF /var/www/html/owncloud
Il est beaucoup plus sûr d’avoir une granularité des règles comme dans les exemples décrits au début, aussi, n’utilisez ceci que pour les tests et le dépannage. Cela a un effet similaire à la désactivation de SELinux, n’utilisez donc pas ceci sur des systèmes en production.
Consulter cette discussion sur GitHub pour en apprendre plus la configuration correcte de SELinux pour ownCloud.