Das Einbinden einer Netzlaufwerk-Freigabe hat zwar unmittelbar nichts mit der Virtualisierung über die Oracle VM VirtualBox zu tun, steht hier aber zumindest in mittelbarem Zusammenhang mit diesem Miniprojekt. Der Ubuntu-Gast ist bisher lauffähig eingerichtet worden, hat aber noch keinen Kontakt zur Außenwelt. Daher soll im nächsten Schritt die Einbindung einer Netzlaufwerk-Freigabe in sein Dateisystem erfolgen. Zugriffe auf Freigaben seines Wirts sind nicht vorgesehen. Ein Dateiaustausch wird ausschließlich über ein NAS, hier ein Synology DS110+ mit DSM 3.2, erfolgen. Das Mounten der Freigaben soll durch den User und nur auf dessen Anforderung geschehen.
Zur Umsetzung sind folgende Schritte notwendig:
- Installation des Samba-Clients cifs-utils
- Anpassung der Datei /etc/fstab
- Mountpunkt im User-Verzeichnis anlegen
- Paßwortdatei im User-Verzeichnis anlegen
- Start-/Stop-Skript anlegen
Der erste Punkt ist selbstverständlich nur einmal durchzuführen. Die Punkte zwei bis fünf müssen allerdings für jeden User einzeln abgearbeitet werden. So erhält also jeder User, der auf eine Freigabe zugreifen darf, einen eigenen Eintrag in der /etc/fstab. Der Ubuntu-User muß natürlich zusätzlich auch auf auf dem Datei-Server bekannt sein. Zusätzliche Freigaben erfordern jeweils das Abarbeiten der Punkte zwei, drei und fünf.
1. Über das Protokoll CIFS (Common Internet File System) stellen Windows- und Samba-Server ihre Freigaben bereit. Das entsprechende Paket muß nachgeladen und installiert werden.
$ sudo apt-get install cifs-utils
Es wurde noch das zusätzliche Paket keyutils installiert. Vorgeschlagen, aber nicht installiert, wurde außerdem winbind.
2. In diesem Beispiel soll der User »karl« auf die Freigabe Zentraldaten lesend und schreibend zugreifen können, die auf dem Server 192.168.2.3 liegt. Gemountet werden soll alles auf /home/karl/Zentraldaten, und zur Authorisierung liegen Username und Paßwort in der Datei /home/karl/.cifscredentials bereit.
$ tail -n 1 /etc/fstab
//192.168.2.3/Zentraldaten /home/karl/Zentraldaten cifs
noauto,user,uid=1002,gid=1003,nounix,iocharset=utf8,
credentials=/home/karl/.cifscredentials 0 0
Die uid und gid läßt sich so ermitteln:
$ id
uid=1002(karl) gid=1003(karl) Gruppen=1003(karl)
3. Mountpunkt anlegen:
$ mkdir /home/karl/Zentraldaten
4. Die Berechtigung/Beglaubigung (credentials) liegt in der Datei ~/.cifscredentials im Home-Verzeichnis, andernfalls hätte das Paßwort in die /etc/fstab eingetragen werden müssen:
$ cat /home/karl/.cifscredentials
username=karl
password=karl-sein-passwort
Die Sicherheit könnte noch durch die weitere Einschränkung der Zugriffsberechtigung erhöht werden:
$ cd ~
$ chmod 0600 .cifscredentials
An dieser Stelle sind bereits alle Anforderungen an das mounten der Freigabe per cifs erfüllt:
$ sudo mount -a
$ mount /home/karl/Zentraldaten
$ mount | grep 'Zentraldaten'
//192.168.2.3/Zentraldaten on /home/karl/Zentraldaten type cifs
(rw,nosuid,nodev,user=karl)
$ umount /home/karl/Zentraldaten
5. Tatsächlich ist ein Ein/Aus-Skript zum mounten/unmounten gar nicht erforderlich. Der Dateimanager Nautilus 3.2.0 zeigt links oben unter »Geräte« die NAS Freigabe Zentraldaten bereits an. Mit einem einfachen Mausklick kann nun diese Freigabe in das bestehende Dateisystem eingebunden und wieder entfernt werden. Komfortabler geht das nicht. Hier dennoch das einfache Skript mountzentraldaten:
$ cd ~
$ mkdir bin
$ source ./.profile
$ cd bin
...
$ cat mountzentraldaten
#!/bin/bash # # Freigabe //192.168.2.3/Zentraldaten nach ~/Zentraldaten # mounten oder un-mounten (als Ein-/Ausschalter ausgelegt). # log() { logger -t user.info -p user.info "$1"; } mountpoint=`echo $HOME`/Zentraldaten # wenn Freigabe Zentraldaten bereits gemountet ist, dann un-mounten ... if [ $(mount | grep $mountpoint | wc -l) -eq "1" ]; then umount $mountpoint log "Nachricht von `basename $0` = umount //192.168.2.3/Zentraldaten" else # ... sonst mounten mount $mountpoint log "Nachricht von `basename $0` = mount //192.168.2.3/Zentraldaten" fi
Es gibt noch eine Vielzahl weiterer Möglichkeiten eine Netzlaufwerk-Freigabe in das Dateisystem einzubinden. Diese Lösung ist einfach und nachvollziehbar, auch wenn sie etwas Konfigurationsaufwand benötigt. Sie kommt sogar ohne ein zusätzliches Skript aus, wenn die Freigabe über Nautilus, Geräte, rechte Maustaste und Einhängen/Aushängen erfolgt. Die Stabilität muß sich noch beweisen. Denn gedit 3.2 hat offensichtlich Probleme Dateien, die auf dem Datei-Server liegen, zu editieren. Hier gibt es noch unplausible Störungsmeldungen über veränderte Dateiinhalte.
rh2011-10-007