Unter Linux- und UNIX-Betriebssystemen kann eine Windows-Freigabe mit der cifs
-Option des mount
Befehls an einen bestimmten Einhängepunkt im lokalen Verzeichnisbaum eingehängt werden.
Das Common Internet File System (CIFS) ist ein Netzwerkprotokoll zur Dateifreigabe. CIFS ist eine Form von SMB.
In dieser Anleitung wird erklärt, wie man Windows-Freigaben auf Linux-Systemen manuell und automatisch einbinden kann.
Installation der CIFS-Dienstprogramme
Um eine Windows-Freigabe auf einem Linux-System einzubinden, müssen Sie zunächst das CIFS-Dienstprogramm installieren.
-
Installation der CIFS-Utilities unter Ubuntu und Debian:
sudo apt update
sudo apt install cifs-utils
-
Installation der CIFS-Utilities unter CentOS und Fedora:
sudo dnf install cifs-utils
Der Paketname kann sich je nach Linux-Distribution unterscheiden.
Mounten einer CIFS-Windows-Freigabe
Das Mounten einer entfernten Windows-Freigabe ist ähnlich wie das Mounten eines regulären Dateisystems.
Erstellen Sie zunächst ein Verzeichnis, das als Einhängepunkt für die entfernte Windows-Freigabe dient:
sudo mkdir /mnt/win_share
Führen Sie den folgenden Befehl als root oder Benutzer mit sudoprivileges aus, um die Freigabe einzuhängen:
sudo mount -t cifs -o username=<win_share_user> //WIN_SHARE_IP/<share_name> /mnt/win_share
Sie werden aufgefordert, das Passwort einzugeben:
Password:
Bei Erfolg wird keine Ausgabe erzeugt.
Um zu überprüfen, ob die entfernte Windows-Freigabe erfolgreich eingehängt wurde, verwenden Sie entweder den mount
oder df -h
Befehl.
Wenn die Freigabe eingehängt ist, wird der Einhängepunkt zum Stammverzeichnis des eingehängten Dateisystems. Sie können mit den entfernten Dateien arbeiten, als wären es lokale Dateien.
Das Passwort kann auch auf der Kommandozeile angegeben werden:
sudo mount -t cifs -o username=<win_share_user>,password=<win_share_password> //WIN_SHARE_IP/<share_name> /mnt/win_share
Wenn der Benutzer in einer Windows-Arbeitsgruppe oder Domäne ist, können Sie es wie folgt festlegen:
sudo mount -t cifs -o username=<win_share_user>,domain=<win_domain> //WIN_SHARE_IP/<share_name> /mnt/win_share
Für eine bessere Sicherheit empfiehlt es sich, eine Anmeldedatei zu verwenden, die den Freigabebenutzernamen, das Passwort und die Domäne enthält.
Die Credentials-Datei hat folgendes Format:
username=userpassword=passworddomain=domain
Die Datei darf nicht von Benutzern lesbar sein. Um die richtigen Berechtigungen und den Besitz zu setzen, führen Sie aus:
sudo chown root: /etc/win-credentials
sudo chmod 600 /etc/win-credentials
Um die Datei credentials zu verwenden, definieren Sie sie wie folgt:
sudo mount -t cifs -o credentials=/etc/win-credentials //WIN_SHARE_IP/<share_name> /mnt/win_share
Standardmäßig ist die gemountete Freigabe im Besitz von root und die Berechtigungen sind auf 777 gesetzt.
Mit der Option dir_mode
können Sie die Verzeichnisberechtigung und mit file_mode
die Dateiberechtigung einstellen:
sudo mount -t cifs -o credentials=/etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
Die Standard-Benutzer- und Gruppenrechte können mit den Optionen uid
und gid
geändert werden:
sudo mount -t cifs -o credentials=/etc/win-credentials,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
Um weitere Optionen zu setzen, fügen Sie diese als kommagetrennte Liste hinter der Option -o
ein. Um eine Liste aller Einhängeoptionen zu erhalten, geben Sie man mount
in Ihr Terminal ein.
Automatisches Einhängen #
Wenn die Freigabe manuell mit dem Befehl mount
eingehängt wird, bleibt sie nach einem Neustart nicht bestehen.
Die Datei /etc/fstab
enthält eine Liste von Einträgen, die definieren, wo welches Dateisystem beim Systemstart eingehängt wird.
Um eine Windows-Freigabe beim Start Ihres Linux-Systems automatisch einzuhängen, definieren Sie das Einhängen in der Datei /etc/fstab
. Die Zeile muss den Hostnamen oder die IP-Adresse des Windows-PCs, den Freigabenamen und den Einhängepunkt auf dem lokalen Rechner enthalten.
Öffnen Sie die /etc/fstab
-Datei mit Ihrem Texteditor:
sudo nano /etc/fstab
Fügen Sie die folgende Zeile in die Datei ein:
# <file system> <dir> <type> <options> <dump> <pass>//WIN_SHARE_IP/share_name /mnt/win_share cifs credentials=/etc/win-credentials,file_mode=0755,dir_mode=0755 0 0
Rufen Sie den folgenden Befehl auf, um die Freigabe einzuhängen:
sudo mount /mnt/win_share
Der mount
-Befehl liest den Inhalt der /etc/fstab
und mountet die Freigabe.
Nächstes Mal, wenn Sie das System neu starten, wird die Windows-Freigabe automatisch eingehängt.
Windows-Freigabe aushängen
Der umount
-Befehl löst (unmountet) das eingehängte Dateisystem aus dem Verzeichnisbaum.
Um eine eingehängte Windows-Freigabe zu lösen, verwenden Sie den umount
-Befehl, gefolgt von dem Verzeichnis, in das sie eingehängt wurde, oder der Remote-Freigabe:
sudo umount /mnt/win_share
Wenn die CIFS-Einhängung einen Eintrag in der fstab
-Datei hat, entfernen Sie diesen.
Der umount
-Befehl kann die Freigabe nicht lösen, wenn sie in Gebrauch ist. Um herauszufinden, welche Prozesse auf die Windows-Freigabe zugreifen, verwenden Sie den fuser
Befehl:
fuser -m MOUNT_POINT
Wenn Sie die Prozesse gefunden haben, können Sie sie mit dem kill
Befehl anhalten und die Freigabe aushängen.
Wenn Sie immer noch Probleme beim Aushängen der Freigabe haben, verwenden Sie die -l
-Option (--lazy
), mit der Sie ein beschäftigtes Dateisystem aushängen können, sobald es nicht mehr beschäftigt ist.
sudo umount -l MOUNT_POINT
Fazit
Unter Linux können Sie eine Windows-Freigabe mit dem Befehl mount
mit der Option cifs
einhängen.