Периодически, при работе на Linux системах, требуется примонтировать расшаренную SMB-папку к файловой системе.

Для этой цели нам потребуется установленный пакет `cifs-utils`, установленный командой:
=== "в Ubuntu и Debian"
    ```bash
    sudo apt-get install cifs-utils ntfs-3g ntfs-confiп
    ```
=== "в Fedora, CentOS и других RedHat based дистрибутивах"
    ```bash
    sudo yum install cifs-utils ntfs-3g ntfs-confi
    ```
Что нужно чтобы монтировать расшаренные папки вручную. Потребуется создать путь куда будем монтировать SMB-папку, пусть это, к примеру, будет `/mnt/sharefolder`:
```bash
sudo mkdir /mnt/sharefolder
```
Вот такой командой можно примонтировать папку, требующую авторизации по логину и паролю:
```bash
sudo mount -t cifs //192.168.80.10/share /mnt/sharefolder -o username=windowsuser,password=windowspass,iocharset=utf8,file_mode=0777,dir_mode=0777
```
где вместо:

-   `//192.168.80.10/share` – ip-адрес и имя необходимой общей папки (если имя расшаренной папки содержит пробел, то необходимо заключить весь путь в кавычки, как это показано в следующем примере)
-   `/mnt/sharefolder` – путь куда будет монтироваться ресурс,
-   `windowsuser` – имя пользователя с необходимыми правами доступа к этому ресурсу Windows,
-   `windowspass` – пароль этого пользователя.

Если необходимая папка не требует обязательной авторизации, то подключить ресурс можно такой командой:
```bash
sudo mount -t cifs "//192.168.0.11/общие документы" /media/sharefolder -o guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777
```
Если гостевой доступ к необходимой папке включен только в режиме чтения, то будет достаточно такой команды:
```bash
sudo mount -t cifs //192.168.0.11/общие /media/sharefolder -o guest,iocharset=utf8
```
При удачном выполнении этих команд не должно произойти никакого уведомления – можете смело проверять как примонтировалась папка перейдя по вашему пути (в нашем примере – `/mnt/sharefolder`).  
Отмонтируется папка командой:
```bash
sudo umount /mnt/sharefolder
```
Для того чтобы осуществить автомонтирование таких папок нам придется отредактировать системный файл **fstab**. Также, если доступ к необходимому windows-ресурсу требует обязательной авторизации, то потребуется предварительно создать файл, в котором будут прописаны логин и пароль доступа (сделать это можно текстовым редактором nano):
```bash
sudo nano /root/.smbcredentials
```
В этот новый файл добавьте две строки:
```
username=windowsuser
password=windowspass
```
где, соответственно
 - **windowsuser** – имя пользователя с необходимыми правами доступа к ресурсу Windows, 
 - **windowspass** – пароль этого пользователя.

Измените права созданного файла так, что редактировать и смотреть его смог только root, то есть сама система:
```bash
sudo chmod 700 /root/.smbcredentials
```
Сохраните изменения и переходите к редактированию файла /etc/fstab:
```bash
sudo nano /etc/fstab
```
И здесь в самом конце добавьте строку типа:
```
//192.168.0.11/share /media/sharefolder cifs credentials=/root/.smbcredentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
```
Если авторизации по имени и паролю не требуется, а требуется только гостевой доступ, то создавать файл **.smbcredentials** не потребуется, этот шаг можно было пропустить и сразу в `/etc/fstab` добавить строку:
```
//192.168.0.11/общие\040документы /media/sharefolder cifs guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
```
Обратите внимание, что здесь если ваша папка содержит пробелы, то вариант аналогичный командной строке – заключении пути в кавычки – не поможет, для того, чтобы **fstab** понял пробелы – их необходимо заменить на четыре символа: `\040 `
И, соответственно, если требуется только лишь гостевой доступ в режиме чтения к windows-папке, то будет достаточно такой строки:
```
//192.168.0.11/общие /media/sharefolder cifs guest,iocharset=utf8 0 0
```
Для того, чтобы проверить корректно ли монтируется shared-папка из fstab без перезагрузки нужно выполнить такую команду:
```bash
sudo mount -a
```
Также к этому стоит добавить, что если вы хотите получать доступ к windows-шаре не через ip-адрес, а через имя машины, то вам потребуется установить winbind:
=== "в Debian-based"
    ```bash
    sudo apt-get install winbind
    ```
=== "в RedHat-based"
    ```bash
    sudo yum install samba-winbind
    ```
После этого отредактируйте файл **/etc/nsswitch.conf**:
```bash
sudo nano /etc/nsswitch.conf
```
Где в строке:
`hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4`
перед dns добавьте wins, то есть после редактирования она должна выглядеть вот так:
`hosts: files mdns4_minimal [NOTFOUND=return] wins dns mdns4`

После перезагрузки для получения доступа к windows-ресурсу через CIFS можно будет указывать не только ip, но и сетевое имя windows-ресурса (netbios name). Но мы все же рекомендую использовать непосредственно ip-адрес, т.к. к нему обращение идет напрямую, быстрее.

Также стоит отметить, что таким образом можно монтировать только конкретные общие папки (например: `//192.168.0.11/share`), но не весь windows-ресурс целиком (то есть просто: `//192.168.0.11`).