Einbinden von Azure-SMB-Dateifreigaben auf Linux-Clients

Gilt für: ✔️ SMB Dateifreigaben

Sie können Azure-Dateifreigaben in Linux-Distributionen mit dem SMB kernel client einbinden.

In diesem Artikel wird gezeigt, wie Sie eine Azure-Dateifreigabe über SMB mithilfe der NTLMv2-Authentifizierung (Speicherkontoschlüssel) einbinden. Aus Sicherheitsgründen empfiehlt Microsoft identitätsbasierte Authentifizierung. Siehe Aktivieren der Active Directory-Authentifizierung über SMB für Linux-Clients, die auf Azure Files zugreifen.

Protokolle

Standardmäßig erzwingt Azure Files die Verschlüsselung während der Übertragung. Die SMB-Verschlüsselung ist ab SMB 3.0 verfügbar. Azure Files unterstützt auch SMB 2.1, was die SMB-Verschlüsselung nicht unterstützt. Aus Sicherheitsgründen erlaubt Azure Files daher nicht das Einbinden von Dateifreigaben über SMB 2.1 aus einer anderen Azure-Region oder von einem lokalen Netzwerk ohne zusätzliche Netzwerkkonfiguration. Sie sollten SMB 3.1.1 verwenden, es sei denn, Ihre Anwendung erfordert eine ältere Version.

Verteilung SMB 3.1.1 (Empfohlen) SMB 3.0
Linux-Kernelversion
  • Basic 3.1.1-Unterstützung: 4.17
  • Standard-Bereitstellung: 5.0
  • AES-128-GCM-Verschlüsselung: 5.3
  • AES-256-GCM-Verschlüsselung: 5.10
  • Basic 3.0-Unterstützung: 3.12
  • AES-128-CCM-Verschlüsselung: 4.11
Ubuntu AES-128-GCM-Verschlüsselung: 18.04.5 LTS+ AES-128-CCM-Verschlüsselung: 16.04.4 LTS+
Red Hat Enterprise Linux (RHEL)
  • Einfach: 8,0+
  • Standard-Bereitstellung: 8.2+
  • AES-128-GCM-Verschlüsselung: 8.2+
7.5 und höher
Debian Basic: 10 und höher AES-128-CCM-Verschlüsselung: 10+
SUSE Linux Enterprise Server AES-128-GCM-Verschlüsselung: 15 SP2+ AES-128-CCM-Verschlüsselung: 12 SP2+

Wenn Ihre Linux-Verteilung nicht in der vorherigen Tabelle aufgeführt ist, überprüfen Sie die Linux-Kernelversion mithilfe des uname Befehls:

uname -r

Voraussetzungen

Installieren Sie cifs-utils

  • Stellen Sie sicher, dass das cifs-utils-Paket installiert ist. Installieren Sie die neueste Version des cifs-utils-Pakets mithilfe des Paket-Managers auf der Linux-Verteilung Ihrer Wahl.

Verwenden Sie auf Ubuntu und Debian den apt Paketmanager.

sudo apt update
sudo apt install cifs-utils

Verwenden Sie bei anderen Distributionen den entsprechenden Paket-Manager, oder kompilieren Sie den Quellcode.

Überprüfen Sie die Verbindung von Port 445

  • Die neueste Version der Azure-Befehlszeilenschnittstelle (CLI). Informationen zum Installieren der Azure CLI finden Sie unter Installieren der Azure CLI und wählen Sie Ihr Betriebssystem aus. Wenn Sie lieber das Azure PowerShell Modul in PowerShell 6+ verwenden möchten, können Sie dies erreichen. Die Anweisungen in diesem Artikel gelten jedoch für die Azure CLI.

  • Stellen Sie sicher, dass Port 445 geöffnet ist: SMB kommuniziert über TCP-Port 445. Stellen Sie sicher, dass Ihre Firewall oder Ihr ISP den TCP-Port 445 nicht vom Clientcomputer blockiert. Ersetzen Sie <your-resource-group> und <your-storage-account>, und führen Sie dann das folgende Skript aus:

    RESOURCE_GROUP_NAME="<your-resource-group>"
    STORAGE_ACCOUNT_NAME="<your-storage-account>"
    
    # This command assumes you have logged in with az login
    HTTP_ENDPOINT=$(az storage account show \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $STORAGE_ACCOUNT_NAME \
        --query "primaryEndpoints.file" --output tsv | tr -d '"')
    SMBPATH=$(echo $HTTP_ENDPOINT | cut -c7-${#HTTP_ENDPOINT})
    FILE_HOST=$(echo $SMBPATH | tr -d "/")
    
    nc -zvw3 $FILE_HOST 445
    

    Wenn die Verbindung erfolgreich ist, wird die Ausgabe ähnlich wie folgt angezeigt:

    Connection to <your-storage-account> 445 port [tcp/microsoft-ds] succeeded!
    

    Sie können eine VPN-Verbindung oder Azure ExpressRoute verwenden, wenn Port 445 in Ihrem Netzwerk blockiert ist. Weitere Informationen finden Sie unter Überlegungen zum Netzwerk für den direkten Zugriff auf Azure-Dateifreigaben.

Berechtigungen

Alle Montageskripts in diesem Artikel stellen die Dateifreigaben mithilfe der Standardberechtigungen für 0755 Linux-Dateien und -Ordner fest. Diese Berechtigungseinstellung gewährt Lese-, Schreib- und Ausführungsrechte für den Datei- oder Verzeichnisbesitzer sowie Lese- und Ausführungsrechte für Benutzer in der Besitzergruppe und anderen Benutzern. Je nach den Sicherheitsrichtlinien Ihrer Organisation sollten Sie möglicherweise alternative Berechtigungen uid/gid oder dir_mode und file_mode in den Bereitstellungsoptionen festlegen. Weitere Informationen zum Festlegen von Berechtigungen finden Sie unter UNIX-Symbolnotation. Eine Liste der Einbindungsoptionen finden Sie unter Einbindungsoptionen.

Unterstützung von Berechtigungen im Unix-Stil

Sie können auch Unterstützung für Berechtigungen im UNIX-Format für Azure-SMB-Dateifreigaben erhalten, indem Sie die durch den Client erzwungene Zugriffssteuerung verwenden und modefromsid,idsfromsid-Einbindungsoptionen zu Ihrem Einbindungsbefehl hinzufügen. Damit diese Unterstützung funktioniert:

  • Alle Clients, die auf die Freigabe zugreifen, müssen diese unter Verwendung von modefromsid,idsfromsid einbinden.
  • Die UIDs und GIDs müssen für alle Clients einheitlich sein.
  • Clients müssen eine der folgenden unterstützten Linux-Distros ausführen: Ubuntu 20.04+, SLES 15 SP3+.

Verzögertes Schließen und Dual-Protokoll-Zugriff

Der Linux-SMB-Client verwendet eine Leistungsoptimierung namens verzögertes Schließen (Handle Caching). Wenn eine Anwendung eine Datei schließt, kann der Client das Senden der SMB CLOSE-Anforderung an den Server verzögern, standardmäßig für bis zu eine Sekunde, falls die Datei schnell erneut geöffnet wird. Wenn Azure Files die CLOSE-Anforderung empfängt, die einem Schreibvorgang folgt, aktualisiert sie die Zeit der letzten Änderung (LMT) der Datei und daher das ETag.

Wenn Sie über SMB und die FileREST-API auf dieselbe Dateifreigabe zugreifen (Zugriff über zwei Protokolle), kann diese Verzögerung zu einer Racebedingung führen. Nachdem ein SMB-Client das Schreiben und Schließen einer Datei abgeschlossen hat, kann ein REST-Client, der das ETag der Datei liest und einen bedingten Vorgang startet, mit einem Fehler "Datei wurde gleichzeitig geändert" (HTTP 412-Vorbedingungsfehler) fehlschlagen, wenn die verzögerte CLOSE-Anforderung eingeht und die LMT und ETag aktualisiert.

Bei Workloads, die Dateien von einem SMB-Writer an einen REST-basierten Reader übergeben, deaktivieren Sie das verzögerte Schließen, indem Sie die Mount-Option closetimeo=0 hinzufügen. Diese Option zwingt den Client, die SMB-CLOSE-Anforderung sofort zu senden (und damit LMT und ETag abzuschließen), wodurch die Racebedingung bei geringfügigen Einbußen bei der Öffnungs- und Schließleistung beseitigt wird.

Bedarfsgesteuertes Einbinden der Azure-Dateifreigabe mit „Einbinden“

Wenn Sie eine Dateifreigabe unter einem Linux-Betriebssystem einbinden, wird Ihre Remotedateifreigabe als Ordner in Ihrem lokalen Dateisystem angezeigt. Du kannst Dateifreigaben überall auf deinem System einbinden. Im folgenden Beispiel wird die Dateifreigabe unter dem Pfad /media eingebunden. Du kannst diesen Pfad ändern, indem du die Variable $MNT_ROOT änderst.

Ersetzen Sie <resource-group-name>, <storage-account-name> und <file-share-name> durch die entsprechenden Informationen für Ihre Umgebung:

RESOURCE_GROUP_NAME="<resource-group-name>"
STORAGE_ACCOUNT_NAME="<storage-account-name>"
FILE_SHARE_NAME="<file-share-name>"

MNT_ROOT="/media"
MNT_PATH="$MNT_ROOT/$STORAGE_ACCOUNT_NAME/$FILE_SHARE_NAME"

sudo mkdir -p $MNT_PATH

Initialisieren Sie als Nächstes die Anmeldeinformationsdatei, indem Sie das folgende Skript ausführen.

# Create a folder to store the credentials for this storage account and
# any other that you might set up.
CREDENTIAL_ROOT="/etc/smbcredentials"
sudo mkdir -p "/etc/smbcredentials"

# Get the storage account key for the indicated storage account.
# You must be logged in with az login and your user identity must have
# permissions to list the storage account keys for this command to work.
STORAGE_ACCOUNT_KEY=$(az storage account keys list \
    --resource-group $RESOURCE_GROUP_NAME \
    --account-name $STORAGE_ACCOUNT_NAME \
    --query "[0].value" --output tsv | tr -d '"')

# Create the credential file for this individual storage account
SMB_CREDENTIAL_FILE="$CREDENTIAL_ROOT/$STORAGE_ACCOUNT_NAME.cred"
if [ ! -f $SMB_CREDENTIAL_FILE ]; then
    echo "username=$STORAGE_ACCOUNT_NAME" | sudo tee $SMB_CREDENTIAL_FILE > /dev/null
    echo "password=$STORAGE_ACCOUNT_KEY" | sudo tee -a $SMB_CREDENTIAL_FILE > /dev/null
else
    echo "The credential file $SMB_CREDENTIAL_FILE already exists, and was not modified."
fi

# Change permissions on the credential file so only root can read or modify the password file.
sudo chmod 600 $SMB_CREDENTIAL_FILE

Nun können Sie die Dateifreigabe mithilfe des Befehls mount unter Verwendung der Anmeldeinformationsdatei einbinden. Im folgenden Beispiel wird der Befehl $SMB_PATH mit dem vollqualifizierten Domänennamen für den Dateiendpunkt des Speicherkontos ausgefüllt. Siehe Mount-Optionen für eine Liste der SMB-Mount-Optionen.

Hinweis

Ab der Linux-Kernelversion 5.0 ist SMB 3.1.1 das ausgehandelte Standardprotokoll. Wenn Sie eine Version des Linux-Kernels verwenden, die älter als 5.0 ist, geben Sie in der Liste der Bereitstellungsoptionen vers=3.1.1 an.

# This command assumes you have logged in with az login
HTTP_ENDPOINT=$(az storage account show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $STORAGE_ACCOUNT_NAME \
    --query "primaryEndpoints.file" --output tsv | tr -d '"')
SMB_PATH=$(echo $HTTP_ENDPOINT | cut -c7-${#HTTP_ENDPOINT})$FILE_SHARE_NAME

STORAGE_ACCOUNT_KEY=$(az storage account keys list \
    --resource-group $RESOURCE_GROUP_NAME \
    --account-name $STORAGE_ACCOUNT_NAME \
    --query "[0].value" --output tsv | tr -d '"')

sudo mount -t cifs $SMB_PATH $MNT_PATH -o credentials=$SMB_CREDENTIAL_FILE,serverino,nosharesock,actimeo=30,mfsymlinks

Falls gewünscht, können Sie dieselbe Azure-Dateifreigabe auch in mehrere Bereitstellungspunkte einbinden.

Wenn Sie die Azure-Dateifreigabe nicht mehr benötigen, heben Sie deren Einbindung mit sudo umount $mntPath auf.

Automatisches Einbinden von Dateifreigaben

Wenn Sie eine Dateifreigabe unter einem Linux-Betriebssystem einbinden, wird Ihre Remotedateifreigabe als Ordner in Ihrem lokalen Dateisystem angezeigt. Du kannst Dateifreigaben überall auf deinem System einbinden. Im folgenden Beispiel wird die Dateifreigabe unter dem Pfad /media eingebunden. Du kannst diesen Pfad ändern, indem du die Variable $MNT_ROOT änderst.

MNT_ROOT="/media"
sudo mkdir -p $MNT_ROOT

Verwenden Sie den Namen des Speicherkontos als Benutzernamen der Dateifreigabe und den Speicherkontoschlüssel als Kennwort. Weil die Anmeldeinformationen für das Speicherkonto im Laufe der Zeit geändert werden können, sollten Sie diese getrennt von der Einbindungskonfiguration speichern.

Wenn du die Zugangsdatei im vorherigen Abschnitt bereits erstellt hast, überspringe zu statischem Mount oder dynamischem Mount mit Autofs. Ansonsten befolgen Sie diese Schritte, um es zu erstellen. Ersetzen Sie <resource-group-name> und <storage-account-name> durch die entsprechenden Angaben für Ihre Umgebung.

RESOURCE_GROUP_NAME="<resource-group-name>"
STORAGE_ACCOUNT_NAME="<storage-account-name>"

# Create a folder to store the credentials for this storage account and
# any other that you might set up.
CREDENTIAL_ROOT="/etc/smbcredentials"
sudo mkdir -p "/etc/smbcredentials"

# Get the storage account key for the indicated storage account.
# You must be logged in with az login and your user identity must have
# permissions to list the storage account keys for this command to work.
STORAGE_ACCOUNT_KEY=$(az storage account keys list \
    --resource-group $RESOURCE_GROUP_NAME \
    --account-name $STORAGE_ACCOUNT_NAME \
    --query "[0].value" --output tsv | tr -d '"')

# Create the credential file for this individual storage account
SMB_CREDENTIAL_FILE="$CREDENTIAL_ROOT/$STORAGE_ACCOUNT_NAME.cred"
if [ ! -f $SMB_CREDENTIAL_FILE ]; then
    echo "username=$STORAGE_ACCOUNT_NAME" | sudo tee $SMB_CREDENTIAL_FILE > /dev/null
    echo "password=$STORAGE_ACCOUNT_KEY" | sudo tee -a $SMB_CREDENTIAL_FILE > /dev/null
else
    echo "The credential file $SMB_CREDENTIAL_FILE already exists, and was not modified."
fi

# Change permissions on the credential file so only root can read or modify the password file.
sudo chmod 600 $SMB_CREDENTIAL_FILE

Zum automatischen Einbinden einer Dateifreigabe haben Sie die Wahl zwischen einem statischen Einbinden über das Hilfsprogramm /etc/fstab oder einem dynamischen Einbinden über das Hilfsprogramm autofs.

Statisches Einbinden mit „/etc/fstab“

Erstellen Sie mithilfe der zuvor beschriebenen Umgebung einen Ordner für Ihr Speicherkonto und Ihre Dateifreigabe unter Ihrem Einbindungsordner. Ersetzen Sie <file-share-name> durch den entsprechenden Namen Ihrer Azure-Dateifreigabe.

FILE_SHARE_NAME="<file-share-name>"

MNT_PATH="$MNT_ROOT/$STORAGE_ACCOUNT_NAME/$FILE_SHARE_NAME"
sudo mkdir -p $MNT_PATH

Erstellen Sie abschließend einen Datensatz in der Datei /etc/fstab für Ihre Azure-Dateifreigabe. Im folgenden Befehl werden die standardmäßigen Linux-Datei- und Ordnerberechtigungen von 0755 verwendet. Diese Berechtigungen bedeuten Lese-, Schreib- und Ausführungsvorgänge für den Besitzer (basierend auf der Datei oder des Verzeichnis-Linux-Besitzers), Lesen und Ausführen für Benutzer in der Besitzergruppe und Lesen und Ausführen für andere Im System. Möglicherweise möchten Sie beim Einhängen je nach Bedarf alternative Berechtigungen für uid und gid oder dir_mode und file_mode festlegen. Weitere Informationen zum Festlegen von Berechtigungen finden Sie unter UNIX numeric notation (Numerische UNIX-Notation). Siehe Mount-Optionen für eine Liste der SMB-Mount-Optionen.

Tipp

Wenn Docker-Container, die .NET Core-Anwendungen ausführen, in der Lage sein sollen, in die Azure-Dateifreigabe zu schreiben, nehmen Sie nobrl in die SMB-Bereitstellungsoptionen auf, um zu verhindern, dass Anforderungen für Bytebereichssperrungen an den Server gesendet werden.

HTTP_ENDPOINT=$(az storage account show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $STORAGE_ACCOUNT_NAME \
    --query "primaryEndpoints.file" --output tsv | tr -d '"')
SMB_PATH=$(echo $HTTP_ENDPOINT | cut -c7-${#HTTP_ENDPOINT})$FILE_SHARE_NAME

if [ -z "$(grep $SMB_PATH\ $MNT_PATH /etc/fstab)" ]; then
    echo "$SMB_PATH $MNT_PATH cifs _netdev,nofail,credentials=$SMB_CREDENTIAL_FILE,serverino,nosharesock,actimeo=30,mfsymlinks" | sudo tee -a /etc/fstab > /dev/null
else
    echo "/etc/fstab was not modified to avoid conflicting entries as this Azure file share was already present. You might want to double check /etc/fstab to ensure the configuration is as desired."
fi

sudo mount -a

Hinweis

Ab der Linux-Kernelversion 5.0 ist SMB 3.1.1 das ausgehandelte Standardprotokoll. Sie können alternative Protokollversionen mithilfe der vers Bereitstellungsoption angeben. Protokollversionen sind 3.1.1, 3.0und 2.1.

Dynamisches Einbinden mit „autofs“

Um eine Dateifreigabe dynamisch mit dem autofs-Dienstprogramm einzubinden, installieren Sie es mit Hilfe des Paketmanagers auf der Linux-Distribution Ihrer Wahl.

Verwenden Sie bei Ubuntu- und Debian-Distributionen den Paket-Manager apt:

sudo apt update
sudo apt install autofs

Aktualisieren Sie als Nächstes die Konfigurationsdateien autofs. Eine Liste der SMB-Einhängeoptionen finden Sie unter Einhängeoptionen.

FILE_SHARE_NAME="<file-share-name>"

HTTP_ENDPOINT=$(az storage account show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $STORAGE_ACCOUNT_NAME \
    --query "primaryEndpoints.file" --output tsv | tr -d '"')
SMB_PATH=$(echo $HTTP_ENDPOINT | cut -c7-$(expr length $HTTP_ENDPOINT))$FILE_SHARE_NAME

echo "$FILE_SHARE_NAME -fstype=cifs,credentials=$SMB_CREDENTIAL_FILE,serverino,nosharesock,actimeo=30,mfsymlinks :$SMB_PATH" > /etc/auto.fileshares

echo "/fileshares /etc/auto.fileshares --timeout=60" > /etc/auto.master

Der letzte Schritt ist ein Neustart des Diensts autofs.

sudo systemctl restart autofs

Einrichten mit Passwortrotation

Das regelmäßige Drehen von Kennwörtern (Speicherkontoschlüssel) ist eine bewährte Methode für die Sicherheit. In der Vergangenheit erforderte diese Praxis jedoch einige geplante Ausfallzeiten. Jetzt können Sie die Bereitstellungsoption password2= angeben, sodass die Dateifreigabebereitstellung auch dann ohne Ausfallzeiten für Benutzer verfügbar bleibt, wenn das primäre Kennwort abläuft oder geändert wird. Dieser optionale zweite geheime Wert, den Sie an den Linux-SMB-Client übergeben, ermöglicht eine nahtlose Rotation der Anmeldeinformationen, ohne die Freigabe auszuhängen oder E/A zu unterbrechen.

Wenn diese Mount-Option vorhanden ist, akzeptiert der Client sowohl password als auch password2 beim Sitzungsaufbau und bei erneuten Verbindungen, sodass Sie einen neuen Schlüssel einführen können, während der alte Schlüssel noch verwendet wird.

Sie können password2 auf eine von zwei Arten angeben:

  • In der SMB-Anmeldeinformationsdatei, die den Benutzernamen und das Kennwort enthält
  • Zum Aktualisieren einer vorhandenen Volume-Bereitstellung in der Befehlszeile: -o password2=new-secret, auch über -o remount während der Rotation

Voraussetzungen

Sie benötigen cifs-utils, Version 7.4 oder höher, um die password2 Mount-Option zu verwenden. Zusätzlich zum richtigen Cifs-utils-Paket muss Ihre Linux-Verteilung die mindestens erforderlichen Kernelversionen unterstützen, wie in der folgenden Tabelle hervorgehoben:

Distribution Loslassen Unterstützte Kernel-Version
Ubuntu 22.04 LTS 6.8-1027
Ubuntu 24,04 LTS 6.14.0-1006
RHEL (Red Hat Enterprise Linux) 9.5 5.14.0-503.11.1.el9_5
RHEL (Red Hat Enterprise Linux) 9.6 5.14.0-570.12.1.el9_6
Alma 9.6 5.14.0-570.12.1
Rocky 9.6 5.14.0-570.17.1

Hinweis

Wenn Ihre Verteilung nicht in der Liste enthalten ist, verfügt sie derzeit nicht über die erforderlichen Backports aus Kernel 6.6 Stable Branch.

Per Anmeldeinformationsdatei

Platzieren Sie beide geheimen Schlüssel in Ihrer Anmeldeinformationsdatei, und binden Sie sie dann mit diesen Anmeldeinformationen ein. Aktualisieren Sie zunächst password2 auf den neuen Schlüssel, binden Sie neu ein, oder warten Sie auf die erneute Verbindung, und tauschen Sie dann die Werte im nächsten Wartungsfenster aus, damit der neue Schlüssel zu password wird.

# /etc/smbcredentials/<storage-account-name>.cred
username=<storage-account-name>
password=<current-key>
password2=<new-rotating-key>

Vorhandene Volume-Einbindung aktualisieren

Wenn Sie bereits ein Volume auf einer unterstützten Distribution mit einer geeigneten Version von cifs-utils eingebunden haben, können Sie den folgenden Befehl verwenden, um die Einhängeoption durch Hinzufügen der Option password2= zu ändern.

# During rotation:
sudo mount -o remount,password2=<new-rotating-key> /mnt/share

Einbindungsoptionen

Verwenden Sie beim Einbinden von SMB-Azure-Dateifreigaben unter Linux die folgenden Einbindungsoptionen.

Bereitstellungsoption Empfohlener Wert Beschreibung
username= Speicherkontoname Erforderlich für die NTLMv2-Authentifizierung.
password= Primärschlüssel des Speicherkontos Erforderlich für die NTLMv2-Authentifizierung.
password2= Sekundärschlüssel des Speicherkontos Zur Schlüsselrotation ohne Ausfallzeit verwenden.
mfsymlinks Empfohlen. Erzwingt die Unterstützung symbolischer Links durch den Einbindungsvorgang, sodass Anwendungen wie Git Repositories mit Symlinks klonen können.
actimeo= 30–60 Empfohlen. Die Zeit in Sekunden, die der CIFS-Client Attribute einer Datei oder eines Verzeichnisses zwischenspeichert, bevor es Attributinformationen von einem Server anfordert. Die Verwendung eines Werts unter 30 Sekunden kann zu Leistungsbeeinträchtigungen führen, weil Attributcaches für Dateien und Verzeichnisse zu schnell ablaufen. Legen Sie actimeo zwischen 30 und 60 Sekunden fest.
nosharesock Wahlfrei. Erzwingt, dass der Client immer eine neue Verbindung mit dem Server herstellt, auch wenn er über eine vorhandene Verbindung mit der SMB-Bereitstellung verfügt. Diese Verbindung kann die Leistung verbessern, da jeder Bereitstellungspunkt einen anderen TCP-Socket verwendet. In einigen Fällen kann nosharesock die Leistung beeinträchtigen, weil dieselbe Datei nicht zwischengespeichert wird, wenn sie über zwei Mounts auf demselben Client geöffnet wird.
remount Bindet die Dateifreigabe neu ein und ändert die Einbindungsoptionen (sofern angegeben). Verwenden Sie dies mit der Option password2, um ein alternatives Kennwort anzugeben, mit dem ein abgelaufenes Kennwort nach dem ursprünglichen Einhängen korrigiert werden kann.
nobrl Verwendung in Szenarien mit einem einzelnen Client, wenn Empfehlungssperren erforderlich sind. Azure Files unterstützt keine Hinweissperren, und diese Einstellung verhindert das Senden von Sperranforderungen für Bytebereiche an den Server.
snapshot= time Binden Sie eine bestimmte Momentaufnahme der Dateifreigabe ein. Die Zeit muss eine positive ganze Zahl sein, die die angeforderte Momentaufnahme in 100-Nanosekunden-Einheiten identifiziert, die seit dem 1. Januar 1601 vergangen sind, oder alternativ kann die Zeit im GMT-Format angegeben werden, z. B. @GMT-2024.03.27-20.52.19.
closetimeo= 1 Konfiguriert das Timeout für verzögertes Schließen (Cache behandeln) in Sekunden oder deaktiviert es, wenn er auf 0 festgelegt ist. Der Standardwert ist 1 Sekunde. Legen Sie closetimeo=0 für Dual-Protocol-Workloads fest, z. B. wenn auf eine Dateifreigabe sowohl über SMB als auch über die REST-API zugegriffen wird. Weitere Informationen finden Sie unter verzögertes Schließen und Zugriff über zwei Protokolle.
nostrictsync Weisen Sie den Server nicht an, bei „fsync()“ zu leeren. Einige Server führen standardmäßig nicht gepufferte Schreibvorgänge aus, und in diesen Fällen wäre das Leeren redundant. Diese Option kann die Leistung für Workloads verbessern, bei denen ein Client viele kleine Schreib- und fsync-Kombinationen ausführt und die Netzwerklatenz viel höher ist als die Serverlatenz.
multiuser Ordnen Sie beim Zugriff auf den Server die Benutzerzugriffe einzelnen Anmeldeinformationen zu. Standardmäßig verwenden CIFS-Bereitstellungen beim Zugriff auf eine Freigabe nur einen Satz von Benutzeranmeldeinformationen (die Bereitstellungsanmeldeinformationen). Mit dieser Option erstellt der Client eine neue Sitzung auf dem Server mit den Anmeldeinformationen des Nutzers, wenn ein neuer Nutzer auf die Einbindung zugreift. Weitere Zugriffe durch diesen Benutzer verwenden auch diese Anmeldeinformationen. Da der Kernel nicht zur Eingabe von Kennwörtern auffordern kann, sind Mehrbenutzerbereitstellungen nur möglich, wenn bei Verwendung der sec=-Optionen keine Kennwörter erforderlich sind.
cifsacl Dient zum Zuordnen von CIFS/NTFS-ACLs zu und von Linux-Berechtigungsbits, Zuordnen von SIDs zu und von UIDs und GIDs sowie Abrufen und Festlegen von Sicherheitsdeskriptoren. Dies wird nur bei der NTLMv2-Authentifizierung unterstützt.
idsfromsid,modefromsid Wird verwendet, wenn der Client eine clientseitig erzwungene Autorisierung durchführen muss. Aktiviert Berechtigungen im Unix-Stil. Funktioniert nur, wenn UIDs und GIDs für alle Clients einheitlich sind. Dies wird nur bei der NTLMv2-Authentifizierung unterstützt.
cruid= Benutzer-ID oder Benutzername Wahlfrei. Legt die Benutzer-ID des Besitzers des Anmeldeinformationencaches fest. Dieser Wert ist in erster Linie nützlich bei sec=krb5. Die Standardeinstellung ist die echte Benutzer-ID des Prozesses, der das Einbinden ausführt. Setzen Sie diesen Parameter auf die UID bzw. den Benutzernamen des Benutzers, dessen Standard-Datei für den Anmeldeinformationscache die erforderlichen Kerberos-Tickets enthält. Dadurch wird der Upcall angewiesen, nach einem Cache für Anmeldeinformationen zu suchen, der diesem Benutzer gehört.
sec= krb5 Erforderlich für die Kerberos-Authentifizierung. Um den Kerberos-Sicherheitsmodus zu aktivieren, legen Sie sec=krb5 fest. Beispiel: sudo mount -t cifs $SMB_PATH $MNT_PATH -o sec=krb5,cruid=$UID,serverino,nosharesock,actimeo=30,mfsymlinks. Lassen Sie benutzernamen und kennwort bei Verwendung dieser Option weg. Der Linux-Client muss in eine Domäne eingebunden sein. Weitere Informationen finden Sie unter Aktivieren der Active Directory-Authentifizierung über SMB für Linux-Clients.
uid= 0 Wahlfrei. Legt die UID fest, die alle Dateien oder Verzeichnisse im bereitgestellten Dateisystem besitzt, wenn der Server keine Besitzerinformationen bereitstellt. Geben Sie den Wert entweder als Benutzernamen oder als numerische UID an. Wenn keine Angabe erfolgt, wird der Standardwert 0 (null) verwendet.
gid= 0 Wahlfrei. Legt den Gid fest, der alle Dateien oder Verzeichnisse im bereitgestellten Dateisystem besitzt, wenn der Server keine Besitzerinformationen bereitstellt. Geben Sie diese entweder als Gruppennamen oder als numerische GID an. Wenn keine Angabe erfolgt, wird der Standardwert 0 (null) verwendet.
file_mode= Wahlfrei. Wenn der Server die CIFS Unix-Erweiterungen nicht unterstützt, überschreibt dieser Wert den Standarddateimodus.
dir_mode= Wahlfrei. Wenn der Server die CIFS Unix-Erweiterungen nicht unterstützt, überschreibt dieser Wert den Standardmodus für Verzeichnisse.
handletimeout= Wahlfrei. Die Zeit in Millisekunden, für die der Server das Dateihandle nach einem Failover reservieren soll, während er darauf wartet, dass der Client die Verbindung wiederherstellt.
max_channels= 4 Aktiviert SMB Multichannel auf Linux CIFS-Mounts. Verwenden Sie immer den empfohlenen Wert (4) von SMB Multichannel-Verbindungen beim Zugriff auf Azure Files von Linux-Clients.

Nächster Schritt

Weitere Informationen zur Verwendung von Azure-SMB-Dateifreigaben mit Linux finden Sie unter: