Ich habe mir einen Raspberry Pi besorgt um diesen als Fileserver einzusetzten. Hierfür habe ich eine externe USB 2.0 HDD angeschlossen, auf der die Files abgelegt werden.

1) Raspberry Pi einrichten:

sudo raspi-config
sudo apt-get install samba samba-common samba-common-bin
sudo apt-get install vim
sudo apt-get install fuse ntfs-3g

2) neuen Benutzer anlegen:

sudo useradd -G users NAME

das Samba Passwort muss extra gesetzt werden:

smbpasswd - U NAME

3) Externe HDD einbinden

Da meine HDD mit NTFS formatiert ist musste ich noch folgendes Programm installieren:

sudo apt-get install cifs-utils

Jetzt ist es nötig ein Verzeichnis anzulegen, in welches die Festplatte eingebunden werden soll. Danach muss das Verzeichnis noch der Gruppe „users“ zugeordnet werden, damit diese Zugriff erhalten.

sudo mkdir /daten/server
sudo chgrp users -R /daten

danach die Festplatte in die „fstab“ Datei eintragen, damit sie automatisch gemountet wird

sudo vim /etc/fstab

ich habe folgendes eingetragen:

UUID=3C58E62B58E5E39C   /daten/server   ntfs    users,rw        0       0

die UUID kann so herausgefunden werden (gibt auch gleich Auskunft über das Device, bei mir „/dev/sda1“:

blkid

die Konfiguration kann getestet werden:

sudo mount -a

4) Samba Konfiguration anpassen:

sudo vim /etc/samba/smb.conf

dort dann nach „[printers]“ suchen, darüber für jede Freigabe folgendes einfügen:

[daten]
   comment = Daten
   browseable = yes
   path = /daten/server
   valid users = @users
   force group = users
   create mask = 664
   directory mask = 0775
   read only = no

danach Samba Service neustarten:

sudo service samba restart

5) Optional :: Debian – Package aus CVS Sourcen erzeugen

(Dieser Punkt kann überspruchen werden, also direkt weitermachen bei 6.)

Ist das alles geschaft hat man schon weitere Ansprüche an das System. Man verwendet ja nicht ohne Grund einen Raspberry Pi als Fileserver – man will Strom sparen. Das ist ja alles schön und gut, aber die externe 3.5″ HDD läuft einfach munter weiter, auch wenn kein User diese momentan verwendet. Abhilfe schaft hier das Programm „hd-idle“ welches zuerst kompiliert werden muss oder von hier (ganz unten) runterladen. Ich habe die bei mir auf dem Raspberry (Debian wheezy, Version 2013-02-09) kompilierte Datei angehängt.

Das Programm herunterladen mit einem CVS Client (der erste CVS Befehl muss einfach bei der Passwortabfrage mit ENTER bestätigt werden -> kein Passwort)

sudo apt-get install cvs
cvs -d:pserver:anonymous@hd-idle.cvs.sourceforge.net:/cvsroot/hd-idle login
cvs -z3 -d:pserver:anonymous@hd-idle.cvs.sourceforge.net:/cvsroot/hd-idle co -P hd-idle

um jetzt ein eigenes Debian Pakacke zu erzeugen benötigt man folgendes Programm

sudo apt-get install debhelper

danach das Paket erzeugen (zuerst in das neu angelegte Verzeichnis „hd-idle“ wechseln:

cd hd-idle
sudo dpkg-buildpackage -rfakeroot

Die fertig kompilierte Datei befindet sich ein Verzeichnis höher.

6) hd-idle installieren

Archiv des schon erzeugten Debian Packages: hd-idle_1.04.tar
falls Punkt 5) übersprungen wurde, dann einfach die verlinkte Datei auf den Raspi laden.
hd-idle installieren, anschließend den Service starten und den Autostart des Programms vorbereiten:

sudo dpkg -i hd-idle_*.deb
sudo service hd-idle start
sudo update-rc.d hd-idle defaults

getestet werden kann hd-idle folgendermaßen (Dieser Befehl setzt für die Festplatte „sda“ eine automatische Abschaltung nach 10s, mehrere Festplatten können mit einem weiteren „-a …“ hinten angefügt werden):

hd-idle -i 0 -a sda -i 10

Jetzt will man diese Prozedur natürlich nicht nach jedem reboot neu starten, daher automatisieren wir dies:
Also editieren wir die Konfigurationsdatei:

sudo vim /etc/default/hd-idle

und ändern ganz oben die Zeile in folgende:

START_HD_IDLE=true

und fügen ganz am Ende der Datei einen zu oben ähnlichen Befehl ein (auch hier ist die vom Mounten bekannte UUID notwendig, damit die Festplatte immer richtig angesprochen wird, auch wenn sich einmal der USB Port ändern sollte):

HD_IDLE_OPTS="-i 0 -a /dev/disk/by-uuid/3C58E62B58E5E39C -i 900"

7) Sicherheit erhöhen

Standardmäßig hat der Benutzer „pi“ das Passwort „raspberry“. Dieses muss geändert werden, zudem ist es nicht sinnvoll keine Passwortabfrage bei der Eingabe von „sudo“ zu bekommen.
Um dies zu ändern folgenden Befehl ausführen:

sudo visudo

hier habe ich folgende Zeilen geändert:

root    ALL=(ALL:ALL) ALL
lukas   ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

und die wichtigste:

#pi ALL=(ALL) NOPASSWD: ALL

Anhang

hd-idle_1.04.tar

4 comments on “RaspberryPi :: Fileserver

  • hallo,
    ich habe die Schritte 1-4 und 7 nach der Anleitung befolgt. Im Anschluss schaut alles sehr gut aus und ich komme über cd/daten/ und dann ls -l folgende Info: drwxr-xr-x 2 tom users…. Somit würde alles passen. Wenn ich den Pi neustarte, steht an dieser Stelle aber: drwxr-xr-x 2 root root…. Meine Frage ist nun, warum passiert das und wie bekommen ich die Einstellung wieder auf tom users?

    • Hallo Tom,

      ich habe mal bei mir nachgeschaut, bei mir ist es genau wie bei dir.
      Stellt dies bei dir Probleme dar? Ich habe damit keine Einschränkungen.

      Da in der fstab Datei es nicht anders angegeben ist, mountet er es als user und group „root“. Ändern kannst du es folgendermaßen:

      1) deine userid (uid) und groupid (gid) herausfinden:
      einfach „id“ ins Terminal eingeben, dann müsste sowas rauskommen
      uid=1001(lukas) gid=1002(lukas) groups=1002(lukas),100(users)

      2) fstab Datei editieren (z.B. sudo vim /etc/fstab):
      dort folgendes eintragen
      UUID=ABCDEFGH12345678 /daten/server ntfs users,rw,gid=100,uid=1001 0 0
      neu ist dieser Teil: „,gid=100,uid=1001“

      3) RPi rebooten, dann wie du es vorher schon gemacht hast ins Verzeichnis navigieren und die Datei-Rechte prüfen

      Lukas

      • Hallo Lukas,
        vielen Dank! Durch die von dir vorgeschlagenen Änderungen in fstab, passiert genau das was ich wollte. Die Datei-Rechte sind auch nach dem reboot des Pis bei tom users (laut ls -l).

        Mit der vorherigen Einstellung hatte ich keine Einschränkungen. Nur eben die anderen Pi-Accounts auch nicht (z.B. Benutzer Pi). Mit der dauerhaften Änderung der Datei-Rechte auf tom users hatte ich mir erhofft, dass der Benutzer tom allein den Ordner /daten/server sehen, lesen & bearbeiten kann; und eben nicht auch alle anderen Benutzer.
        Anscheinend muss ich hierfür noch weitere Einstellungen vornehmen… in smb.conf??
        Gruß,
        tom

  • I do accept as true with all of the concepts you have offered in your post. They’re really convincing and will definitely work. Still, the posts are very brief for beginners. May you please extend them a little from next time? Thanks for the post. deedkakkefad

Schreibe einen Kommentar zu lukas Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert