Taille: 7297
Commentaire: simplification de la requête + suppression du bashisme
|
← Version 6 à la date du 2016-10-18 14:13:52 ⇥
Taille: 10470
Commentaire: procedure nettoyage des utilisateurs owncloud
|
Texte supprimé. | Texte ajouté. |
Ligne 25: | Ligne 25: |
:: | .. code-block:: sh |
Ligne 35: | Ligne 35: |
:: VERSION=`wget -q https://owncloud.org/changelog -O- | \ sed -n '/Version [0-9\.]\+/{s/^.*Version \([0-9\.]\+\).*$/\1/p;q}'` |
.. code-block:: sh VERSION=`wget https://owncloud.org/changelog -O - |\ sed -n '/Version [0-9\.]\+/{s/^.*Version \([0-9\.]\+\).*$/\1/p;q}'` |
Ligne 43: | Ligne 43: |
:: | .. code-block:: sh |
Ligne 50: | Ligne 50: |
:: | .. code-block:: sh |
Ligne 56: | Ligne 56: |
:: | .. code-block:: sh |
Ligne 62: | Ligne 62: |
:: | .. code-block:: sh |
Ligne 69: | Ligne 69: |
Pour installer owncloud depuis un dépôt Debian/Ubuntu, veuillez suivre les instructions à la page:: `https://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud <https://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud>`_ |
Pour installer owncloud depuis un dépôt Debian/Ubuntu, veuillez suivre les instructions à la page: - `https://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud <https://software.opensuse.org/download/package?project=isv:ownCloud:community&package=owncloud>`_ |
Ligne 74: | Ligne 75: |
:: | .. code-block:: sh |
Ligne 87: | Ligne 88: |
:: | .. code-block:: sh |
Ligne 98: | Ligne 99: |
:: | .. code-block:: php |
Ligne 113: | Ligne 114: |
:: <VirtualHost default:80> |
.. code-block:: xml <VirtualHost _default_:80> |
Ligne 117: | Ligne 118: |
Redirect permanent / `https://nuage.auf.org <https://nuage.auf.org>`_ | Redirect permanent / https://nuage.auf.org |
Ligne 120: | Ligne 121: |
<IfModule mod\_ssl.c> <VirtualHost default:443> |
<IfModule mod_ssl.c> <VirtualHost _default_:443> |
Ligne 135: | Ligne 136: |
ErrorLog ${APACHE\_LOG\_DIR}/nuage.auf.org\_error.log CustomLog ${APACHE\_LOG\_DIR}/nuage.auf.org\_access.log combined LogLevel warn <FilesMatch "\\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> |
ErrorLog ${APACHE_LOG_DIR}/nuage.auf.org_error.log CustomLog ${APACHE_LOG_DIR}/nuage.auf.org_access.log combined # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> |
Ligne 151: | Ligne 154: |
:: | .. code-block:: sh |
Ligne 175: | Ligne 178: |
Nettoyage de la liste des utilisateurs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Le nettoyage doit être fait lors du départ d'un utilisateur car les partages d'un utilisateur absent bloquent la visualisation des dossiers Owncloud dans l'interface web pour les utilisateurs avec qui il a partagé. Cette procédure n'est pas idéale car elle néccesite de faire les commandes plusieurs fois et ne garantie pas que tous les utilisateurs absents seront supprimés. Ceci est possiblement causé par un bug de concurrence entre la recherche LDAP et la recherche dans le cache des utilisateurs de Owncloud. Pour faire le nettoyage déplacez-vous dans le dossier **/var/www/owncloud/**: Rouler cette commande un bon nombre de fois (10-15) .. code-block:: sh for i in $(./occ ldap:search --limit 9999 "" | sed "s/.*(\(.*\))/\1/"); do ./occ ldap:check-user $i; done Ensuite, afficher la liste des utilisateurs à supprimer .. code-block:: sh ./occ ldap:show-remnants Supprimer les utilisateurs partis avec la commande (faire de multiple fois aussi) .. code-block:: sh ./occ user:delete [courriel de l'utilisateur] |
|
Ligne 181: | Ligne 214: |
:: | .. code-block:: html |
Ligne 191: | Ligne 224: |
Ensuite, les templates de courriels doivent être traduits. - Notification d'activité .. code-block:: php <?php /** @var OC_L10N $l */ /** @var array $_ */ $l = $_['overwriteL10N']; print_unescaped($l->t('Bonjour %s,', array($_['username']))); p("\n"); p("\n"); if ((int) $_['timeframe'] === \OCA\Activity\UserSettings::EMAIL_SEND_HOURLY) { print_unescaped($l->t('Vous recevez ce courriel car dans la dernière heure les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } else if ((int) $_['timeframe'] === \OCA\Activity\UserSettings::EMAIL_SEND_DAILY) { print_unescaped($l->t('Vous recevez ce courriel car depuis hier les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } else { print_unescaped($l->t('Vous recevez ce courriel car dans la dernière semaine les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } p("\n"); p("\n"); foreach ($_['activities'] as $activityData) { print_unescaped($l->t('* %1$s - %2$s', $activityData)); p("\n"); } if ($_['skippedCount']) { print_unescaped($l->n('* et %n de plus ', '* et %n de plus ', $_['skippedCount'])); p("\n"); } p("\n"); |
|
Ligne 194: | Ligne 262: |
Pour rendre disponible le modmellon depuis owncloud vous devez Installer le plugin suivant:: `https://apps.owncloud.com/content/show.php/user_servervars?content=158863 <https://apps.owncloud.com/content/show.php/user_servervars?content=158863>`_ |
Pour rendre disponible le modmellon depuis owncloud vous devez Installer le plugin suivant: - `https://apps.owncloud.com/content/show.php/user_servervars?content=158863 <https://apps.owncloud.com/content/show.php/user_servervars?content=158863>`_ |
Ligne 198: | Ligne 268: |
:: | .. code-block:: sh |
Ligne 209: | Ligne 279: |
:: | .. code-block:: sh |
Ligne 217: | Ligne 287: |
Faire les mêmes étapes que lors de l'installation pour le téléchargement. | Pour vérifier la version courante utilisez la commande: .. code-block:: sh owncloud/occ status Pour télécharger la dernière version, suivre les mêmes étapes décrite dans la section `1.1 Installation`_. |
Ligne 220: | Ligne 298: |
:: | .. code-block:: sh |
Ligne 226: | Ligne 304: |
:: | .. code-block:: sh |
Ligne 233: | Ligne 311: |
:: | .. code-block:: sh |
Ligne 239: | Ligne 317: |
:: | .. code-block:: sh |
Ligne 248: | Ligne 326: |
:: | .. code-block:: sh |
Ligne 254: | Ligne 332: |
:: | .. code-block:: sh |
Ligne 264: | Ligne 342: |
:: | .. code-block:: sh |
Ligne 280: | Ligne 358: |
:: mysql owncloud -e "select * from oc_appconfig where appid='user_ldap';" |
.. code-block:: sh mysql owncloud -e "select configkey, configvalue from oc_appconfig where appid='user_ldap';" |
Ligne 286: | Ligne 364: |
:: | .. code-block:: sh |
Guide d'installation, configuration et mise-à-jour de Owncloud
Author: Patrick Hetu
1 Serveur
1.1 Installation
Notez que l'ensemble des commandes doivent être exécutées en tant que super utilisateur.
1.1.1 Via le code source
1.1.1.1 Dépendances
apt-get update apt-get install mysql-server apache2 php5 php5-gd php5-imagick php5-ldap php5-mcrypt php5-curl git bzip2
1.1.1.2 Installation
Vérification de la dernière version disponible et sauvegarde dans la variable VERSION:
VERSION=`wget https://owncloud.org/changelog -O - |\ sed -n '/Version [0-9\.]\+/{s/^.*Version \([0-9\.]\+\).*$/\1/p;q}'` echo $VERSION
Télécharger l'archive compressé du code source et sa somme sha256:
wget https://download.owncloud.org/community/owncloud-$VERSION.tar.bz2 wget https://download.owncloud.org/community/owncloud-$VERSION.tar.bz2.sha256
Vérifier la somme:
sha256sum -c owncloud-$VERSION.tar.bz2.sha256 < owncloud-$VERSION.tar.bz2
Si la somme est correcte, extraire l'archive dans le dossier courant:
tar jxvf owncloud-$VERSION.tar.bz2
Rendre l'outil en ligne de commande exécutable.
chmod a+x owncloud/occ
1.1.2 ou via le dépôt Deb
Pour installer owncloud depuis un dépôt Debian/Ubuntu, veuillez suivre les instructions à la page:
Puis installer le paquet:
apt-get update apt-get install owncloud
1.2 Configuration
1.2.1 Mysql
Première étape, création de la base de données et d'un utilisateur avec les commandes:
mysql -e "create database owncloud;" mysql -e "grant usage on *.* to owncloud@localhost identified by 'VOTRE_MOT_DE_PASSE';"
1.2.2 Owncloud
Les données de configuration de owncloud spécifique à l'AUF suivantes doivent être ajouter dans le fichier owncloud/config/config.php:
'datadirectory' => '/srv/data',
'ldapIgnoreNamingRules' => false,
'mail_domain' => 'auf.org',
'trusted_domains' =>
array (
0 => 'nuage.auf.org',
),
1.2.3 Apache
Apache doit être configurer avec les VirtualHost suivant:
<VirtualHost _default_:80> ServerName nuage.auf.org Redirect permanent / https://nuage.auf.org </VirtualHost> <IfModule mod_ssl.c> <VirtualHost _default_:443> ServerName nuage.auf.org DocumentRoot /var/www/owncloud <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/owncloud> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/nuage.auf.org_error.log CustomLog ${APACHE_LOG_DIR}/nuage.auf.org_access.log combined # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory /usr/lib/cgi-bin> SSLOptions +StdEnvVars </Directory> </VirtualHost> </IfModule>
Puis les modules ssl et rewrite doivent être activés:
a2enmod ssl a2enmod rewrite service apache2 reload
1.2.4 AUF
1.2.4.1 LDAP
Configurer ldap dans l'interface d'administration: https://nuage.auf.org/index.php/settings/admin
Nettoyage de la liste des utilisateurs
Le nettoyage doit être fait lors du départ d'un utilisateur car les partages d'un utilisateur absent bloquent la visualisation des dossiers Owncloud dans l'interface web pour les utilisateurs avec qui il a partagé.
Cette procédure n'est pas idéale car elle néccesite de faire les commandes plusieurs fois et ne garantie pas que tous les utilisateurs absents seront supprimés. Ceci est possiblement causé par un bug de concurrence entre la recherche LDAP et la recherche dans le cache des utilisateurs de Owncloud.
Pour faire le nettoyage déplacez-vous dans le dossier /var/www/owncloud/:
Rouler cette commande un bon nombre de fois (10-15)
for i in $(./occ ldap:search --limit 9999 "" | sed "s/.*(\(.*\))/\1/"); do ./occ ldap:check-user $i; done
Ensuite, afficher la liste des utilisateurs à supprimer
./occ ldap:show-remnants
Supprimer les utilisateurs partis avec la commande (faire de multiple fois aussi)
./occ user:delete [courriel de l'utilisateur]
1.2.4.2 Theme
Le fichier owncloud/core/templates/login.php doit être copié vers owncloud/themes/auf/core/templates/ et la ligne suivante doit être ajouter avant le formulaire de connexion:
<a href="/mellon/login?ReturnTo=https%3A%2F%2F<?php p($_SERVER['HTTP_HOST']); ?>%2F%3Fapp%3Duser_servervars" onMouseOver="document.idauf_bouton.src='/themes/auf/core/img/idauf_bouton_survol.png';" onMouseOut="document.idauf_bouton.src='/themes/auf/core/img/idauf_bouton.png';"> <img id="idauf_bouton" width="200" height="32" src="/themes/auf/core/img/idauf_bouton.png" /> </a>
Puis les fichiers images doivent être téléchargés dans leurs répertoires respectifs.
Ensuite, les templates de courriels doivent être traduits.
- Notification d'activité
<?php /** @var OC_L10N $l */ /** @var array $_ */ $l = $_['overwriteL10N']; print_unescaped($l->t('Bonjour %s,', array($_['username']))); p("\n"); p("\n"); if ((int) $_['timeframe'] === \OCA\Activity\UserSettings::EMAIL_SEND_HOURLY) { print_unescaped($l->t('Vous recevez ce courriel car dans la dernière heure les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } else if ((int) $_['timeframe'] === \OCA\Activity\UserSettings::EMAIL_SEND_DAILY) { print_unescaped($l->t('Vous recevez ce courriel car depuis hier les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } else { print_unescaped($l->t('Vous recevez ce courriel car dans la dernière semaine les activités suivantes ont eu lieu à %s', array($_['owncloud_installation']))); } p("\n"); p("\n"); foreach ($_['activities'] as $activityData) { print_unescaped($l->t('* %1$s - %2$s', $activityData)); p("\n"); } if ($_['skippedCount']) { print_unescaped($l->n('* et %n de plus ', '* et %n de plus ', $_['skippedCount'])); p("\n"); } p("\n");
1.2.4.3 SSO
Pour rendre disponible le modmellon depuis owncloud vous devez Installer le plugin suivant:
dans le dossier apps/ et l'activer avec la commande:
owncloud/occ app:enable user_servervars
et finir sa configuration dans l'interface d'administration.
1.2.4.4 Apps
Les applications suivantes doivent aussi être activées:
owncloud/occ app:enable user_ldap owncloud/occ app:enable activity
1.3 Mise-à-jour
Pour vérifier la version courante utilisez la commande:
owncloud/occ status
Pour télécharger la dernière version, suivre les mêmes étapes décrite dans la section 1.1 Installation.
Démarrer le mode "Maintenance":
owncloud/occ maintenance:mode
Puis faire une sauvegarde de la base de données en cas de problème:
NOW=$(date +"%m_%d_%Y") mysqldump owncloud > owncloud_backup_$NOW.sql
Corriger les permissions du répertoire:
chown www-data:www-data owncloud/
Copier les fichiers aux bons endroits:
cp -rf $OLD/config/ owncloud cp -rf $OLD/theme/ owncloud/ cp -r $OLD/apps/user_servervars owncloud/apps/ cp $OLD/data owncloud/
Lancer le script de mise-à-jour de owncloud:
owncloud/occ upgrade
Mettre le dossier en production et fermer le mode "Maintenance":
mv owncloud owncloud-prod/ owncloud-prod/occ maintenance:mode
1.4 Vérification
Des applications activées:
owncloud/occ app:list
Il faut vérifier que les modules suivantes sont bien activés:
- activity
- files_pdfviewer
- user_ldap
- user_servervars
Vérification de la configuration LDAP
mysql owncloud -e "select configkey, configvalue from oc_appconfig where appid='user_ldap';"
Vérification de la configuration de user_servervars
mysql owncloud -e "select * from oc_appconfig where appid='user_servervars;"