Dateien aus FreeNAS in ownCloud Plugins Jail verfügbar machen

Im Artikel eines anderen Blogs ergab sich die Frage, wie man innerhalb der ownCloud Plugins-Jail die Dateien aus dem FreeNAS-Hostsystem verfügbar machen könne.

Grundsätzlich bietet bereits das FreeNAS WebUI unter Services > Plugins > Management > Mount Points > Add Mount Point die Möglichkeit, Verzeichnisse aus dem Hostsystem in die Jail einzuhängen.

Über diesen Punkt hängt man den entsprechenden Pfad und in ein Unterverzeichnis von files ein. Beispiel:

  • Source: /mnt/pfad/im/hostsytem/dateien
  • Destination: /mnt/pfad/zu/jail/usr/local/www/owncloud-4.5/data/BENUTZERNAME/files/dateien

(Details sind im FreeNAS Wiki-Artikelabschnitt Mount Points erläutert.)

Berechtigungen setzen

Selten wird der Benutzer www auch Besitzer der eingehängten Dateien sein. Um ownCloud dennoch Zugriff zu gewähren, gibt es mehrere Ansätze.

Unter Berücksichtigung diverser Überlegungen, wird der Folgende in vielen Fällen geeignet sein.

www-Benutzer der Jail zu berechtigtem Gruppenmitglied machen

In der Plugins-Jail muss sichergestellt werden, dass die Gruppe zumindest Leserechte auf die betreffende Verzeichnisstruktur hat.

# Zur besseren Nachvollziehbarkeit sollte owning_group im
# Folgenden auf den Gruppennamen laut Hostsystem gesetzt werden:
set GROUPNAME_ACCORDING_TO_HOSTSYSTEM="users"
set OWNCLOUD_USERNAME='dice'
set DIR="/mnt/pfad/zu/jail/usr/local/www/owncloud-4.5/data/${OWNCLOUD_USERNAME}/files/dateien"
set owning_gid=`ls -dln ${DIR} | awk '{ print $4 }'`

# Der Gruppe Leserechte gewähren
chmod -R g+rX ${DIR}

# www-Benutzer in die Gruppe aufnehmen
pw groupadd ${GROUPNAME_ACCORDING_TO_HOSTSYSTEM} -g ${owning_gid} -M www

# Dienste neu starten
/usr/local/etc/rc.d/nginx restart
/usr/local/etc/rc.d/php-fpm restart

chmod(1), pw(8)

So kann man den Benutzer www in alle notwendigen Gruppen aufnehmen. Der Einfachheit halber ist es allerdings sinnvoll, deren Anzahl so gering wie möglich zu halten.

Dateien neu einlesen

Da dieser Vorgang die ownCloud Datenbank umgeht, sind auf diese Art und Weise verfügbar gemachte Dateien für ownCloud grundsätzlich unsichtbar,

ownCloud scanFiles-Bookmarklet

Um sie einzulesen, zieht man folgenden Link in die Browser-Lesezeichen, navigiert im ownCloud WebUI zum Menüpunkt Dateien und klickt dann auf das soeben erstellte Lesezeichen.

ownCloud Dateien neu einlesen;