203 - Wie funktioniert der Zugriff auf den Cloud Storage unter Linux?
Hinweis: Sie müssen sich für den Zugriff im Münchner Wissenschaftsnetz befinden oder via VPN damit verbunden sein.
Ab dem wird der Zugriff nur noch für das Protokoll SMB3 oder höher unterstützt. Der Zugriff für SMB1 und SMB2 wurde aus Sicherheitsgründen deaktiviert!
Unterstützte Betriebssystemversionen
Offizieller Support besteht bei SUSE Linux Enterprise Desktop 12. Andere Versionen (z. B. andere Linux-Distributionen und andere Unix-Distributionen wie Solaris) funktionieren ebenfalls, können aber nicht vollständig unterstützt werden.
Laufwerk mounten unter Linux
Neuere Linux-Kernel der Version 2.6 verfügen über ein CIFS-Dateisystemmodul. Die meisten Distributionen benötigen zusätzlich noch das Paket "cifs-utils
" um SMB-Shares mounten zu können. Damit kann der persönliche Speicherplatz der LRZ Cloud Storage wie folgt gemountet werden:
sudo mount -t cifs //nas.ads.mwn.de/<share_name> <mountpoint> -o username=<lrz-kennung>,domain=ADS,nodfs
wobei <mountpoint>
der Pfad zum Verzeichnis auf dem lokalen Rechner ist, innerhalb dessen die Dateien des <share>
mit dem Namen <share_name>
lokal eingebunden werden.
Beispielsweise könnte der <mountpoint>
wie folgt angegeben werden: /home/ne23mek/online_daten
. Hier würden die Dateien des <share>
im Heimverzeichnis home des Benutzers ne23mek
mit der LRZ-Kennung <lrz-kennung>
im Ordner online_daten eingebunden werden.
Unter Umständen ist es nötig beim mounten eine UID und eine GID des lokalen Nutzers mit anzugeben, z.B. wenn nach dem Mounten in dem Bereich nicht geschrieben werden kann:
sudo mount -t cifs //nas.ads.mwn.de/<share_name> <mountpoint> -o username=<lrz-kennung>,domain=ADS,nodfs,uid=<UID>,gid=<GID>
Um die UID bzw. GID des lokalen Nutzers zu erhalten, kann der id
Befehl verwendet werden:
id -u # to get the UID id -g # to get the GID
Das Mounten funktioniert aber nur, wenn Sie root-Rechte besitzen. In Linux könnte die Befehlseingabe beispielsweise folgendermaßen aussehen (bei manchen Clientversionen muss die Option „vers=
“ mit angegeben werden! Hier sollte mindestens „vers=3
“ besser noch „vers=3.1.1
“ verwendet werden):
sudo mount -t cifs //nas.ads.mwn.de/ne23mek /home/ne23mek/online_daten -o username=ne23mek,domain=ADS,vers=3.1.1,nodfs
Aufgrund des voranstehenden sudo-Befehls müssen Sie Ihr Passwort an der Kommandozeile eingeben. Alternativ könnte das Passwort genauso über eine Umgebungsvariable, aus einer Datei oder eine Pipe heraus gelesen werden (siehe manpage zu mount.cifs
).
Die von Linux angezeigten Zugriffsrechte (etwa bei einem 'ls -l
'-Kommando) eines CIFS-Shares sind praktisch bedeutungslos, da die Zugriffskontrolle die ACLs bereits auf dem Server prüft. Das bedeutet konkret, dass jeder Benutzer seine eigene Verbindung unter seiner eigenen Kennung zu einem Share besitzt (und nicht – wie z. B. bei NFS – ein Mountpunkt gemeinsam genutzt wird).
Das Auslesen und Setzen von ACLs unter Linux ist möglich, allerdings recht umständlich. Für diesen Zweck kann das setfacls
Programm benutzt werden (man setfacls
). Um setfacls
zu verwenden ist es nicht notwendig eine Dateifreigabe zu mounten.
Native Home-Verzeichnisse für Linux/Unix-Server sind derzeit nicht möglich, da kein NFS angeboten wird und die CIFS-Clients einige Unix-Spezialitäten (Softlinks) nicht unterstützen. Wie man bereits gesehen hat, ist es aber ohne weiteres möglich, den persönlichen Speicher oder den Projektspeicher als Unterverzeichnis im Home-Verzeichnis durch Mounten bereitzustellen. Die CIFS-Semantik bereitet dann keine Probleme bei der gemeinsamen Nutzung von z. B. Office-Dokumenten.