Drobo, DroboShare und Multiuser

drobo-and-droboshareVor ca. einer Woche habe ich mich zur Abdeckung des ständig wachsenden Speicherbedarfs für die Anschaffung einer Drobo und dem dazugehörigen DroboShare entschieden. Hauptgrund für die Alternative, welche nicht die Günstigste ist, war die Tatsache, dass ich mich um nichts kümmern muss und bei Bedarf einfach Platten nachstecken kann. Es gibt einige Lösungen am Markt die dies unterstützen, jedoch ist der laufende Upgrade durch das Ersetzen einer vorhandenen Platte schon eine Ausnahme und das bei gute Performance über das eingebaute Gigabit-Interface.

Die DroboShare ist eigentlich nicht notwendig um auf den Storage zuzugreifen, aber ich möchte kurzfristig einen Server abschaffen um zentral meine Daten zu erreichen. Die Installation der Drobo und der dazugehörigen DroboShare lief problemlos und obwohl ich die Konfiguration via Webinterface bevorzugen würde, kommt man mit dem Drobo-Dashboard auf Mac gut klar.

Aber nun zum eigentlichen Thema. Ich hatte mich nicht genauer informiert und bin einfach davon ausgegangen, dass die DroboShare die Freigabe verschiedener Verzeichnisse und fein granulierte Benutzerberechtigungen auf Diese zulässt, was jedoch genau nicht der Fall ist.

Die Oberfläche bietet hier nur die Möglichkeit einen Freigabenamen zu definieren und dann entweder für alle oder für einen Benutzer freizugeben, was mir einfach zu wenig ist. Auch die Knowledge Base gibt klar zu erkennen, dass out of the box nicht mehr möglich ist.

Natürlich würde ich mein technisches Versagen bei der Geräteauswahl hier nicht publizieren, wenn ich nicht ein Lösung gefunden hätte, welche wie nachfolgend beschrieben aussieht:

  1. DroboApps aktivieren
  2. Dropbear SSH einspielen
  3. Benötigte Benutzer auf der DroboShare anlegen
  4. Eigene SambaApp deployen und Basiseinstellungen überschreiben

Nachfolgend die notwendigen Schritte im Detail:

1. DroboApps aktivieren

Dies kann im Dashboard erfolgen und sorgt dafür, dass Apps welche in den Ordner DroboApps kopiert werden müssen, nach Neustart der DroboShare entpackt und danach gestartet werden.

2. Dropbear SSH einspielen

Nach Aktivierung der Apps und Neustart der Share ist der Ordner DroboApps vorhanden und die auf der Drobo-Website verfügbare App Dropbear SSH kann einfach in das Verzeichnis kopiert werden.

3. Benutzer anlegen

Sobald die DroboShare erneut gestartet wurde, kann man sich bequem via SSH auf der Drobo anmelden. Das Defaultpasswort “giveit2me” sollte man gleich zuerst ändern. Leider kann die vorhandene Samba-Konfiguration (/etc/smb.conf) sowie das dazugehörige Passwortfile zwar angepasst werden, alle Änderungen werden jedoch nach Neustart wieder überschrieben.

Erhalten bleiben jedoch Basiseinstellungen wie z.B. User in der /etc/passwd. Genau diese Benutzer benötigen wir für die spätere Erweiterung der Freigabefunktionalität und somit besteht der erste Schritt auf der DroboShare in der Anlage aller benötigten Benutzer. Die User-IDs sind hier wichtig, da Diese später mit der smbpasswd zusammenpassen müssen, welche wir im nächsten Schritt anlegen.

4. SambaApp deployen

Um ein Überschreiben der Einstellungen zu verhindern und die Konfiguration der Freigaben ohne spätere Konfigurationsfilemanipulation zu ermöglichen, habe ich mich dazu entschieden, eine eigene App zu erstellen. Dies ist grundsätzlich nur ein gezipptes Tar-Archive, welches ein Start- und Stopscript sowie die eigene smb.conf und das Passwortfile enthält.

Die einzelnen Dateien sehen wie folgt aus:

smb.conf (wichtig ist der Pfad zum smbpasswd-File)

[global]
workgroup = WORKGROUP
server string = DroboShare
netbios name = Drobo
socket options = TCP_NODELAY SO_RCVBUF=65536 SO_SNDBUF=65536
local master = no
encrypt passwords = yes
dns proxy = no
qos enable = yes
level1 file extensions = avi wmv wma
level2 file extensions = mpeg mpg
security = user
use mmap = yes
use sendfile = yes
max log size = 20
dns proxy = no
#map to guest = bad password
log file = /var/log/smb.log
log level = 0
show add printer wizard = no
load printers = no
smb passwd file = /mnt/DroboShares/Drobo/DroboApps/samba/private/smbpasswd
force user = root
force group = root
max stat cache size = 256

[Drobo]
comment = Drobo
valid users = berk
path = /mnt/DroboShares/Drobo
#public = yes
writable = yes
printable = no
#ok guest = yes

[music]
comment = Music
valid users = berk test1 test2
path = /mnt/DroboShares/Drobo/music
#public = yes
writable = yes
printable = no
#ok guest = yes

smbpasswd (wichtig ist die Übereinstimmung der IDs)

berk:501:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:fadfafdaadfafafafdaaaaafdafdafafadf:[U          ]:LCT-4b294433:
test1:502:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:fadfafdaadfafafafdaaaaafdafdafafadf:[U          ]:LCT-4B277FCE:
test2:503:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:fadfafdaadfafafafdaaaaafdafdafafadf:[U          ]:LCT-4B277FD8:

samba-start.sh (wichtig sind hier ebenfalls die Pfadangaben und das Killen der bereits laufenden Samba-Prozesse)

#!/bin/sh

killall nmbd
killall smbd
/usr/sbin/smbd -s /mnt/DroboShares/Drobo/DroboApps/samba/etc/smb.conf
/usr/sbin/nmbd -s /mnt/DroboShares/Drobo/DroboApps/samba/etc/smb.conf

samba-stop.sh

#!/bin/sh

killall nmbd
killall smbd

All diese Files müssen in eine entsprechende Ordnerstruktur gepackt werden, damit der Start richtig funktioniert:

– etc
|- smb.conf
– private
|-smbpasswd
– samba-start.sh
– samba-stop.sh

Nachdem kopieren des gepackten Archives in den DroboApps-Ordner und Neustart der DroboSahre mit dem Kommando “reboot”, werden die Änderungen übernommen und die eigene Samba-Konfigurationa aktiviert.

Anhand dieses Beispiels lässt sich erkennen, was man aus dem kleinen Linuxrechner alles machen kann und ich denke nicht, dass das die letzte Trickserei mit der Kiste war.

Soweit …. Daumen hoch!

Sharing is caring!

6 thoughts on “Drobo, DroboShare und Multiuser

  1. Tedddy

    Hi Bernd,
    tolles Teil was du dir zugelegt hast. Ich spiele auch mit den Gedanken, mir ein neues NAS zuzulegen. Aktuell habe ich von IcyBox das NAS2000, welches ebenfalls sehr fein zu modden ist ;).
    Gerne würde ich ebenfalls auf ein redundantes System wechseln, aber der Preis der Drobo+Share ist nicht gerade ohne.
    – Wäre der Betrieb der Drobo auch an einer Fritzbox!WLan mit USB-Connector denkbar?
    – Was kann den Droboshare alles ausser 2 Drobos anzubinden?
    – Wie verwaltet Drobo den Space? Wenn ich eine 320GB und 1TB Platte einbauen würde, wieviel Platz steht mir dann zur Verfügung? Wie hast du die Drobo bestückt?

    Cheers,
    10000 ;)

  2. Bernd Erk

    Hi Teddy,

    wenn ich ehrlich bin hatte ich mir von der Drobo mehr Features in Richtung Benutzerverwaltung (Ordner, Freigaben und Multiuser versprochen) und war hinsichtlich dessen eigentlich enttäuscht.

    Die DroboShare macht den Zugriff auf den Festplatte ohne Rechner möglich. In wie weit die FritzBox mit
    sowas klar kommt weiss ich nicht. Da man ja aber selber entscheiden kann, wie das Ding formatiert werden soll, müsste das klappen.

    Mittlerweile habe ich die DroboShare richtig lieb gewonnen. Ist halt ein kleiner Unix-Server der gepimmpt mit Firefly und einigen anderen Apps echt spass macht. Ich werde demnächst mal versuchen Bind darauf zum laufen zu bringen und dann habe ich gepaart mit Firefly und Lighttp eigentlich alles was ich brauche :-)

    Das Ding ist nicht ganz billig aber hinsichtlich Storage habe ich in den letzten Jahren immer wieder Geld in Einzellösungen investiert und hoffe nun mal für die nächste Zeit ruhe zu haben. Der gerade der Rolling Upgrade aktiver Disks und Ersatz durch größere ist einfach geil.

    Grüsse

    Bernd

  3. koder

    How do you create such a smbpasswd file? There is a smbpasswd command on my Ubuntu 9.10, but it creates a binary file that doesn’t resemble the one you are showing.

  4. koder

    Nevermind, I found it out for myself. I’ll post it here in case anyone else is looking for the same thing:

    The /usr/private/smbpasswd file mentioned in this article will have to be created for your own needs. The Drobo does not have the tools to do this, so you’ll have to do it on another Linux machine.

    On my Ubuntu Linux, I changed /etc/samba/smb.conf on line:

    passdb backend = tdbsam

    into:

    passdb backend = smbpasswd:/tmp/smbpasswd

    This will make sure we are using an smbpasswd file instead of a newer tbd database one would use on a modern full-blown Linux machine.

    Then, execute the following for every user, still on your full-blown Linux machine:

    smbpasswd -c /tmp/smbpasswd -a username

    You can do that as many times as you like, replacing ‘username’ by a user name of course. It the article above, that would be ‘berk’.

    Put this file into your /tmp/smbpasswd in your own samba.tgz as shown above, it should be located in the etc/ dir.

    Then, we’ll have to prepare our DroboShare for this! SSH onto your DroboShare. You can do this thanks to the “Dropbear SSH” DroboApp. The default password for root will be giveit2me.

    Execute the following for every user you put into your smbpasswd file earlier on:

    adduser username
    passwd username

    Of course, once again, changing ‘username’ in the user names you need.

    Now install your own samba.tgz DroboApp onto your DroboShare by dropping it in the correct dir and rebooting your DroboShare. Everything should work now. If it doesn’t, you’ll find the errors in /var/log/smb.log

    Thanks to berk for this great article. It took a while to get it working, but you gave me the idea! I hope this helps others.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.