SMB/CIFS/Windows megosztás becsatolása Linux alá

kami911 képe

Gyakran előforduló feladat, hogy egy távoli Windows gép megosztását, vagy egy Linux gép Samba megosztását kell rendszerünkbe felcsatolni.

Előkészületek

Írja be egy fájlba a felhasználónevet és jelszót, hogy az aztán ne legyen szem előtt – mint például mount paraméterei között:

/root/.smbpasswd tartalma:

username=YOURUSERNAME
password=YOURPASSWORD
domain=HAKELLAKKORADJUKMEG

Rejtse el a fájlt világ kíváncsi szeme elől:

chown root. /root/.smbpasswd
chmod 600 /root/.smbpasswd

Ha egy usernek kell és mondjuk néha változik a tartalma:

A /root/.smbpasswd helyett legyen /home/user/.smbpasswd

chown-nál meg az adott felhasználót adja meg.

Felvétel fstab-ba (működik régivel, újjal, mindenhol)

Szekessze az fstab fájlt:

mcedit /etc/fstab

és végére illesszünk be egy új sort:

//ip/share /media/ide/akarom/ cifs credentials=/root/.smbpasswd,iocharset=utf8,file_mode=0664,dir_mode=0775,_netdev,x-systemd.after=network-online.target,noexec,nosuid 0 0

A _netdev és a x-systemd.after=network-online.target paraméterekkel bevárja a hálózat éledését.

Ha nem akarja automatikusan csatolni a fájlrendszert, használhatja ezt az fstab fájlban megadható sort is:

//ip/share /media/ide/akarom/ cifs credentials=/root/.smbpasswd,iocharset=utf8,file_mode=0664,dir_mode=0775,_netdev,x-systemd.after=network-online.target,noauto,x-systemd.automount,x-systemd.idle-timeout=30,noexec,nosuid 0 0

(Természetesen a megfelelő //ip/share (távoli kiszolgáló) és /media/ide/akarom/ (hely csatolási pont) értékekkel)

Ezek után a

mount -a
mount

parancsokkal meg tudjuk nézni, hogy sikerül-e a mount az fstab alapján.

Másik megoldás fstab helyett, systemd-vel – az újabb, systemd-s rendszerekhez

Hozza létre egy fájlt media-ide-akarom.mount néven ebben a mappában: /etc/systemd/system. Fontos, hogy a mount neve a "Where" résznél megadott legyen, csak per jelek helyett "-" (minusz) jellel megadva.

[Unit]
Description=My CIFS Mount
Requires=network-online.target
After=network-online.service
Before=samba.service

[Mount]
What=//ip/share
Where=/media/ide/akarom/
Options=credentials=/root/.smbpasswd,iocharset=utf8,file_mode=0664,dir_mode=0775,noexec,nosuid
Type=cifs

[Install]
WantedBy=multi-user.target

Ha nem akarja azonnali felcsatolást, csak a használat esetén, akkor egy fájlt media-ide-akarom.automount néven hozza létre a fájlt ebben a mappában: /etc/systemd/system.

[Unit]
Description=My CIFS Mount
Requires=network-online.target
After=network-online.service
Before=samba.service

[Automount]
What=//ip/share
Where=/media/ide/akarom/
Options=credentials=/root/.smbpasswd,iocharset=utf8,file_mode=0664,dir_mode=0775,noexec,nosuid
Type=cifs
TimeoutIdleSec=30

[Install]
WantedBy=multi-user.target

Hibaelhárítás

A „CIFS: Unknown mount option x-systemd.after” hiba

Ha a "CIFS: Unknown mount option x-systemd.after" hibát kapjuk akkor távolítsa el a x-systemd.after=network-online.target paramétert.

A „CIFS VFS: No username specified” hiba

Ha a "CIFS VFS: No username specified" hiba jelentkezik, telepítse a cifs-utils csomagot:

sudo apt install cifs-utils

Vagy CentOS/Fedora rendszerek esetében:

sudo yum install cifs-utils

A "mount error(112): Host is down" és "CIFS VFS: cifs_mount failed w/return code = -112" hiba

Ha a SMB/CIFS kiszolgáló elérhető és ennek ellenére a felcsatolás során a

mount error(112): Host is down

hibát jelez a mount parancs, illetve az automatikus csatoláskor a /etc/fstab fájlban vagy systemd szervizként végzett csatolása dmesg rendszernaplóban az alábbi hibaüzenetet produkálja:

CIFS VFS: cifs_mount failed w/return code = -112

akkor érdemes magasabb (vagy éppen alacsonyabb - bár az alacsonyabb verziók biztonsági megfontolásból nem ajánlottak) SMB protokoll verziót megadni a CIFS mount számára. Erre a "vers" paraméter szolgál, amely a SMB protokoll verziót adja meg. Engedélyezett értékek:

  • 1.0 - A klasszikus CIFS/SMBv1 protokoll.
  • 2.0 - Az SMBv2.002 protokoll. Ezt először a Windows Vista Service Pack 1-ben, és a Windows Server 2008-ban vezették be. Ne feledje, hogy a Windows Vista kezdeti kiadásának egy kicsit más nyelvjárása (2.000) nem támogatott.
  • 2.1 - Az SMBv2.1 protokoll, amelyet a Microsoft Windows 7-ben és a Windows Server 2008R2-ben vezettek be.
  • 3.0 - Az SMBv3.0 protokoll, amelyet a Microsoft Windows 8-ban és a Windows Server 2012-ben vezettek be.
  • 3.02 vagy 3.0.2 - Az SMBv3.0.2 protokoll, amelyet a Microsoft Windows 8.1-ben és a Windows Server 2012R2-ben vezettek be.
  • 3.11 vagy 3.1.1 - Az SMBv3.1.1 protokoll, amelyet a Microsoft Windows 10-ben és a Windows Server 2016-ban vezettek be.
  • 3 - Az SMBv3.0 protokoll verziója és felette.
  • default- Megpróbálja megállapodni a kliens és a szerver által támogatott legmagasabb SMB2+ verzióban.

A fenti példát átalakítva a "vers=3.11" beállítást használva:

//ip/share /media/ide/akarom/ cifs credentials=/root/.smbpasswd,iocharset=utf8,file_mode=0664,dir_mode=0775,_netdev,x-systemd.after=network-online.target,noauto,x-systemd.automount,x-systemd.idle-timeout=30,noexec,nosuid,vers=3.11 0 0