Linux

Как в Linux монтировать шару CIFS

CIFS (Common Internet File System) - это сетевой протокол для обмена файлами между различными операционными системами, такими как Windows, Linux и MacOS. CIFS также известен как SMB (Server Message Block). Часто мы сталкиваемся с ситуацией, когда нам нужно получить доступ к общим папкам или дискам на удаленном сервере Windows с нашего компьютера Linux. Для этого нам необходимо монтировать шару CIFS в Linux. В этой статье мы рассмотрим, как это сделать с помощью различных методов и опций.

Установка необходимых пакетов

Для работы с CIFS в Linux нам нужно установить пакет cifs-utils, который содержит утилиты для доступа к файловой системе CIFS. Команда для установки зависит от вашего дистрибутива Linux. Например, для Ubuntu или Debian вы можете использовать команду sudo apt install cifs-utils. Для CentOS или Fedora вы можете использовать команду sudo yum install cifs-utils

Для работы CIFS/SMB необходимы порты:

  • TCP 445
  • UDP 137
  • UDP 138
  • UDP 139

Для предоставления удалённого доступа используется TCP 445. Для разрешения имен NetBios используются порты UDP 137, 138 и TCP 139, без них будет работать только обращение по IP адресу.

В Windows поддержка CIFS/SMB есть по умолчанию. В Linux CIFS/SMB реализуется с помощью samba.

Монтирование CIFS вручную

Самый простой способ монтировать шару CIFS в Linux - это использовать команду mount с опцией -t cifs. Синтаксис команды следующий:

mount -t cifs //server/share /mount_point -o options

Здесь:

  • //server/share - это путь к общей папке или диску на удаленном сервере Windows. Вы можете использовать IP-адрес или имя сервера, а также имя шары.
  • /mount_point - это локальная директория, которая будет служить точкой монтирования для шары CIFS. Вы должны создать ее заранее с помощью команды sudo mkdir /mount_point.
  • -o options - это дополнительные опции для монтирования, такие как имя пользователя, пароль, домен, права доступа и т.д.

Например, чтобы монтировать шару CIFS с именем share на сервере с IP-адресом 192.168.1.100 в локальную директорию /mnt, вы можете использовать такую команду:

sudo mount -t cifs //192.168.1.100/share /mnt

Если шара CIFS требует аутентификации, то вам нужно указать имя пользователя, пароль и домен (если есть) для доступа к шаре. Вы можете сделать это с помощью опции -o user=username,password=password,domain=domain. Например:

sudo mount -t cifs //192.168.1.100/share /mnt -o user=alice,password=secret,domain=workgroup

Вам может потребоваться ввести пароль, если вы не указали его в команде. Вы также можете использовать опцию -o credentials=file, где file - это файл, содержащий имя пользователя, пароль и домен в отдельных строках. Это повышает безопасность и удобство. Например:

username=alice
password=secret
domain=workgroup

Затем вы можете монтировать шару CIFS с помощью команды:

sudo mount -t cifs //192.168.1.100/share /mnt -o credentials=/home/alice/.cifs_credentials

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

sudo chown root: /home/alice/.cifs_credentials
sudo chmod 600 /home/alice/.cifs_credentials

После монтирования шары CIFS вы можете работать с удаленными файлами, как с локальными, используя директорию /mnt. Вы можете проверить, что шара успешно смонтирована, используя команду mount или df -h.

Монтирование CIFS через fstab

Если вы хотите, чтобы шара CIFS монтировалась автоматически при загрузке системы или по запросу, вы можете добавить соответствующую запись в файл /etc/fstab. Это файл, содержащий информацию о разделах диска и точках монтирования. Синтаксис записи для шары CIFS такой:

//server/share /mount_point cifs options 0 0

Здесь:

  • //server/share - это путь к общей папке или диску на удаленном сервере Windows, как и в предыдущем методе.
  • /mount_point - это локальная директория, которая будет служить точкой монтирования для шары CIFS, как и в предыдущем методе.
  • cifs - это тип файловой системы, указывающий на CIFS.
  • options - это дополнительные опции для монтирования, такие как имя пользователя, пароль, домен, права доступа и т.д., как и в предыдущем методе.
  • 0 - это индикатор резервной копии, указывающий, что шара CIFS не нуждается в резервном копировании.
  • 0 - это порядок проверки раздела, указывающий, что шара CIFS не нуждается в проверке.

Например, чтобы монтировать шару CIFS с именем share на сервере с IP-адресом 192.168.1.100 в локальную директорию /mnt при загрузке системы, вы можете добавить такую запись в файл /etc/fstab:

//192.168.1.100/share /mnt cifs user=alice,password=secret,domain=workgroup 0 0

Или, если вы используете файл с учетными данными, то такую:

//192.168.1.100/share /mnt cifs credentials=/home/alice/.cifs_credentials 0 0

После добавления записи в файл /etc/fstab вы можете монтировать шару CIFS с помощью команды sudo mount -a или перезагрузить систему.

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

В этом разделе мы рассмотрим некоторые полезные опции для монтирования шары CIFS в Linux, которые вы можете использовать в команде mount или в файле /etc/fstab.

  • vers=version - это опция, которая позволяет указать версию протокола SMB, используемую для монтирования шары CIFS. Это может быть полезно, если вы столкнулись с ошибкой mount error (112): Host is down или другими проблемами совместимости. Вы можете выбрать версию от 1.0 до 3.1.1 в зависимости от вашего сервера Windows. Например, vers=3.0
  • guest - это опция, которая позволяет монтировать шару CIFS без аутентификации, как гость. Это может быть полезно, если шара CIFS открыта для общего доступа. Например, guest.
  • uid=uid,gid=gid - это опции, которые позволяют указать владельца и группу для смонтирован