Монтирование шары CIFS

Thank you for reading this post, don't forget to subscribe!

CIFS —

один из спо­со­бов (про­то­кол) пере­да­чи дан­ных по сети с одно­го устрой­ства на дру­гое. Самый рас­про­стра­нен­ный при­мер исполь­зо­ва­ния — сете­вой диск или сете­вая пап­ка для обще­го досту­па. CIFS (Common Internet File System) так­же назы­ва­ют SMB (Server Message Block) — по сути, это одно и тоже.

Вер­сии:

  1. SMB или CIFS
  2. SMB 2.0
  3. SMB 3.0

Для рабо­ты CIFS/SMB необ­хо­дим порт 445 — по нему предо­став­ля­ет­ся уда­лен­ный доступ к сете­вым ресур­сам. А так­же для раз­ре­ше­ния имен NetBios исполь­зу­ют­ся пор­ты 137, 138 ,139 — без них обра­ще­ние к ресур­су воз­мож­но толь­ко по IP-адресу.

В Windows кли­ент и сер­вер встро­е­ны в опе­ра­ци­он­ную систе­му. В Linux про­то­кол может быть реа­ли­зо­ван с помо­щью samba.

 

Подготовка

Для мон­ти­ро­ва­ния общей пап­ки необ­хо­ди­мо уста­но­вить набор ути­лит для рабо­ты с CIFS.

yum install cifs-utils

Синтаксис

mount.cifs <пап­ка на сер­ве­ре> <во что мон­ти­ру­ем> <-o опции>

* вме­сто mount.cifs мож­но напи­сать mount -t cifs.

При­мер:

mount.cifs //192.168.1.1/public /mnt

* про­стой при­мер мон­ти­ро­ва­ния пап­ки public на сер­ве­ре 192.168.1.1 в локаль­ный ката­лог /mnt.

Ручное монтирование

Теперь мон­ти­ро­ва­ние мож­но выпол­нить сле­ду­ю­щей командой:

mount.cifs //192.168.1.10/share /mnt -o user=andr

* в дан­ном при­ме­ре будет при­мон­ти­ро­ван ката­лог share на сер­ве­ре 192.168.1.10 в локаль­ную пап­ку /mnt под учет­ной запи­сью andr.

То же самое, с исполь­зо­ва­ни­ем домена:

mount.cifs //192.168.1.10/share /mnt -o user=andr,domain=andr.local

Автоматическое монтирование CIFS через fstab

Для нача­ла созда­ем файл, в кото­ром будем хра­нить дан­ные авто­ри­за­ции при под­клю­че­нии к общей папке:

vi /root/.smbclient

И добав­ля­ем в него дан­ные сле­ду­ю­ще­го вида:

username=andr
password=dPassw0rd
domain=andr.local

* в этом при­ме­ре созда­на пара логин/пароль — andr/dPassw0rddomain ука­зы­вать не обя­за­тель­но, если аутен­ти­фи­ка­ция выпол­ня­ет­ся без него.

Теперь откры­ва­ем кон­фи­гу­ра­ци­он­ный файл fstab:

vi /etc/fstab

и добав­ля­ем в него следующее:

//192.168.1.10/share /mnt cifs user,rw,credentials=/root/.smbclient 0 0

* в дан­ном при­ме­ре выпол­ня­ет­ся мон­ти­ро­ва­ние общей пап­ки share на сер­ве­ре с IP-адре­сом 192.168.1.10 в ката­лог /mnt. Пара­мет­ры для под­клю­че­ния — user: поз­во­ля­ет выпол­нить мон­ти­ро­ва­ние любо­му поль­зо­ва­те­лю, rw: с пра­вом на чте­ние и запись, credentials: файл, кото­рый мы созда­ли на преды­ду­щем шаге.

Что­бы про­ве­рить пра­виль­ность настро­ек, вво­дим сле­ду­ю­щую команду:

mount -a

Примеры использования опций

Версии SMB

Если на сто­роне Windows исполь­зу­ет­ся ста­рая или слиш­ком новая вер­сия про­то­ко­ла SMB, при попыт­ке мон­ти­ро­ва­ния мы можем полу­чить ошиб­ку mount error(112): Host is down. Что­бы это испра­вить, ука­зы­ва­ем версию:

mount.cifs //192.168.1.10/share /mnt/ -o vers=1.0

* мон­ти­ро­ва­ние по про­то­ко­лу SMB1.0

Монтирование от гостевой учетной записи

Если сер­вер при­ни­ма­ет запро­сы без логи­на и паро­ля, то кли­ент под­клю­ча­ет­ся, как гость:

mount.cifs //192.168.1.10/share /mnt -o guest

или в fstab:

//192.168.1.10/share    /mnt    cifs    guest    0 0

Права на примонтированные каталоги

При мон­ти­ро­ва­нии пап­ки мы можем ука­зать опре­де­лен­ные права:

mount.cifs //192.168.1.10/share /mnt -o file_mode=0777,dir_mode=0777