ZaLinux.ru

Как смонтировать сетевую папку Windows/Samba в Linux

Сетевая папка Windows может быть доступна в файловых менеджерах Linux как любая другая локальная папка. Для этого её нужно смонтировать в файловую систему Linux. После монтирования не придётся использовать консоль для просмотра списка файлов и скачивания или закачивания файлов.

Начните с установки пакета cifs-utils.

В Debian, Linux Mint, Ubuntu, Kali Linux и производных выполните:

sudo apt install cifs-utils

В Arch Linux, BlackArch и производных выполните:

sudo pacman -S cifs-utils

Команды smbtree и smbclient понимают имена компьютеров Windows, такие имена как HACKWARE-MIAL. Монтирование выполняется с помощью команды mount, которая такие имена не умеет обрабатывать без помощи преобразования имён DNS. Поэтому при монтировании можно либо:

  1. Использовать вместо имён компьютеров IP адрес. В этом случае у компьютера с сетевой папкой должен быть постоянный (статичный) IP адрес
  2. Либо настроить преобразование имён для компьютеров Windows. Это можно сделать, например, с помощью файла /etc/hosts. Кстати, в этом случае у компьютера с общей папкой также должен быть постоянный IP адрес (смотрите Как настроить локальный DNS используя файл /etc/hosts в Linux)

В общем, в любом случае настройте в роутере или в самой Windows постоянный локальный IP.

Если вы хотите настроить преобразование имён с помощью файла /etc/hosts, то откройте его:

sudo gedit /etc/hosts

И добавьте туда запись вида

IP_АДРЕС	ИМЯ_КОМПЬЮТЕРА

Например, у меня IP_АДРЕС это 192.168.0.101, а именем компьютера является HACKWARE-MIAL, тогда я добавляю следующую запись:

192.168.0.101	HACKWARE-MIAL

Пингуем по имени компьютера Windows, чтобы убедиться, что всё сработало:

ping HACKWARE-MIAL

Теперь нам нужно создать точку монтирования — папку, где появятся файлы из шары. Я создаю папку /mnt/share:

sudo mkdir /mnt/share

Теперь для монтирования сетевой шары Windows нужно запустить команду вида:

sudo mount -t cifs -o username=guest,password=,uid=1000,iocharset=utf8 //ИМЯ-КОМПЬЮТЕРА/Папка /точка/монтирования

В этой команде вы должны вставить свои значения для

  • //ИМЯ-КОМПЬЮТЕРА/Папка
  • /точка/монтирования

Значение других элементов команды:

  • sudo — монтировать шару можно и без прав суперпользователя, но использовать опцию -o, после которой указываются опции для монтирования, можно только с правами root
  • -t cifs выбор файловой системы для монтирования
  • -o означает, что после этой опции будут перечислены опции для монтирования:
  • username=guest,password= - произвольное имя пользователя без пароля — используется для подключение к общей папки, для которой не требуется вход. Вместо этой конструкции можно указать просто guest, но в этом случае на некоторых системах всё равно запрашивается пароль. По моим наблюдениям, пароль запрашивается когда имя текущего пользователя на Linux совпадает с именем пользователя на Windows
  • uid=1000 — в качестве владельцев всех файлов в шаре будет указан текущий пользователь Linux
  • iocharset=utf8 — эта кодировка позволяет работать с именами файлов, в которых используются не только латинские буквы

К примеру, путь до сетевой шары у меня //HACKWARE-MIAL/Share, её я хочу смотрировать в папку /mnt/share, тогда команда будет следующей:

sudo mount -t cifs -o username=guest,password=,uid=1000,iocharset=utf8 //HACKWARE-MIAL/Share /mnt/share

Вид сетевой папки Windows в Double Commander:

Вид сетевой папки в стандартном проводнике Linux:

Для размонтирования нужно запустить следующую команду (укажите либо точку монтирования, либо ресурсы, который был смонтирован):

sudo umount /mnt/share

Напомню, что в предыдущей части я не только настроил папку для входа без пароля, но на том же самом компьютере и настроил вторую папку с именем ShareRestricted. У этой папки владелец ShareOverlord, а пароль для входа 1234. Для подключения папки, доступ к которой возможен только по паролю, используется та же самая команда, но нужно указать реальные учётные данные:

 sudo mount -t cifs -o username=ShareOverlord,password=1234,uid=1000,iocharset=utf8 //HACKWARE-MIAL/ShareRestricted /mnt/share

Чуть дальше очень похожий набор опций, в том числе пароль в открытом виде, мы будем использовать в файле /etc/fstab для настройки автоматического монтирования сетевой папки. Файл /etc/fstab доступен для чтения всем а, следовательно, также доступен всем ваш пароль от Windows в нём. Чтобы обойти эту проблему, можно использовать файл с учётными данными. Это файл содержит только имя пользователя и пароль.

Используя текстовый редактор, создайте файл с учётными данными для входа на ваш удалённый сервер:

gedit ~/.smbcredentials

В этот файл введите имя пользователя и пароль от Windows:

username=ИМЯ-ПОЛЬЗОВАТЕЛЯ
password=ПАРОЛЬ

В моём примере это:

username=ShareOverlord
password=1234

Сохраните файл и закройте редактор.

Измените права доступа к этому файлу, чтобы предотвратить нежелательный доступ к вашим учётным данным:

chmod 600 ~/.smbcredentials

Посмотрите абсолютный путь до этого файла:

realpath ~/.smbcredentials

В моём случае абсолютный путь:

/home/mial/.smbcredentials

Теперь вместо двух опций:

username=ПОЛЬЗОВАТЕЛЬ,password=ПАРОЛЬ

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

credentials=/home/ПОЛЬЗОВАТЕЛЬ/.smbcredentials

Моя команда стала выглядеть так:

sudo mount -t cifs -o credentials=/home/mial/.smbcredentials,uid=1000,iocharset=utf8 //HACKWARE-MIAL/ShareRestricted /mnt/share

Настройка автоматического монтирования сетевой папки в Linux

Автоматически монтируемые файловые системы прописываются в файле /etc/fstab. Откроем этот файл:

sudo gedit /etc/fstab

Теперь в него нужно добавить строку вида:

//ИМЯ-КОМПЬЮТЕРА/Папка	/точка/монтирования	cifs	credentials=/home/mial/.smbcredentials,uid=1000,iocharset=utf8,nofail	0	0

Для моего примера это строка:

//HACKWARE-MIAL/ShareRestricted	/mnt/share	cifs	credentials=/home/mial/.smbcredentials,uid=1000,iocharset=utf8,nofail	0	0

Сохраним и закроем этот файл. Для проверки выполним:

sudo mount -a

Если сетевая папка успешно смонтировалась, значит можно выполнить проверку перезагрузкой. 

Рекомендуемые статьи:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *