Подключению сетевого диска по SMB протоколу с помощью GUI проводника для ОС RedOS 7.3, Astra Linux 1.7.5 и Rosa Chrome 12.4.
RedOS 7.3 (Caja 1.26.0)
1. Перейдите в проводник и выберите «Файл» – «Соединиться с сервером».
2. В открывшемся окне заполните информацию:
- Адрес сервера: адрес сетевого ресурса
- Тип: Ресурс Windows
- Папка: Имя подключаемого сетевого каталога
- Имя домена: Адрес подключаемого домена (ip-адрес или домен)
- Имя пользователя: Имя пользователя домена
- Пароль: Пароль пользователя домена.
После заполнения нажмите Подключиться.
Astra Linux 1.7.5 (fly 1.7.130)
1. Перейдите в проводник и выберите «Сеть» — «Создать сетевое место»
2. В окне введите название папки и адрес сетевого каталога и нажмите «Да»
- Название: Укажите желаемое название сетевого каталога.
- Адрес: Укажите адрес сетевого ресурса, с указанием протокола данного ресурса
3. При запросе учетных данных введите логин и пароль от сетевого ресурса и нажмите «Да»
- Пользователь: Укажите имя пользователя сетевого ресурса.
- Пароль: Укажите пароль от пользователя сетевого ресурса.
Rosa Chrome 12.4 (Dolphin 23.03.90)
1. Перейдите в диспетчер файлов и в разделе «Сеть» выберите «Добавить сетевую папку»
2. В открывшемся окне выберите «Сетевой диск Microsoft Windows» и нажмите «Далее»
3. Введите имя, адрес сетевого ресурса и название сетевого каталога, нажмите «Сохранить и подключиться».
- Имя: Укажите желаемое имя каталога, как он будет отображаться в вашем проводнике.
- Сервер: Укажите имя сервера с сетевым ресурсом (ip-адрес или имя домена).
- Папка: Укажите имя подключаемого каталога.
4. В окне запроса учетных данных введите логин и пароль для доступа к сетевому ресурсу.
- Имя пользователя: Укажите имя пользователя сетевого ресурса.
- Пароль: Укажите пароль от пользователя сетевого ресурса.
Поддержку сетевых дисков Windows в Linux обеспечивает пакет cifs-utils. Если он у вас еще не установлен, в командной строке от имени суперпользователя введите
apt-get install cifs-utils
Эта команда проверит, установлен ли указанный пакет и, если нет, установит его.
Создайте в /mnt (или любом другом месте) папку, в которую мы будем подключать сетевой диск Windows:
mkdir /mnt/winshare
И наконец само подключение сетевой папки Windows в Linux выполняется с помощью команды mount.cifs
mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o username=WIN_USER_NAME,password=WIN_USER_PASSWORD
Такая команда выполнит присоединение к фаловой системе Linux сетевого диска Windows с именем SHARE_NAME, расположенного на сервере с IP-адресом SERVER_IP от имени WIN_USER_NAME с паролем WIN_USER_PASSWORD. Следует понимать, что на стороне Windows уже логичным образом указанная папка должна быть расшарена и права на доступ к ней должны принадлежать указанному пользователю.
В большинстве случаев этого достаточно, если вы работаете от лица суперпользователя. Если же вы от лица суперпользователя производите только подключение сетевой папки Windows, а работать с ней планируете от лица обычного, непривелегированного пользователя, то в качестве опции команде mount.cifs необходимо передать значения UID и GID этого пользователя, иначе, скорее всего, вам не будут доступны операции редактирования файлов и каталогов. Получить UID и GID пользователя можно командой:
grep MY_USER_NAME /etc/passwd
Подставив вместо MY_USER_NAME имя пользователя, под которым вы работаете в Linux, вы получите примерно следующую строчку:
MY_USER_NAME:x:1000:1000:user,,,:/home/user:/bin/bash
где 3-е и 4-е поле как раз указывают на UID и GID пользователя MY_USER_NAME. Теперь просто подставим полученные значения в качестве дополнительных аргументов команды mount.cifs:
mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o username=WIN_USER_NAME,password=WIN_USER_PASSWORD,uid=1000,gid=1000
где uid=1000,gid=1000 — uid и gid, полученные из примера выше.
Напротив, если сетевой диск публичен, и для доступа к нему не нужен ни логин ни пароль, в опциях вместо имени пользователя и его пароля необходимо указать, что доступ является гостевым:
mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o guest
И наконец, чтобы в Linux автоматически подключать сетевую папку после перезагрузки, вносим соответствующую информацию в /etc/fstab (дописываем в конец файла):
//SERVER_IP/SHARE_NAME /MOUNT_POINT_PATH cifs ALL_OPTIONS 0 0
Т.е. должно получиться что-то вроде
//192.168.0.1/share /mnt/winshare cifs user=WIN_USER_NAME,password=WIN_USER_PASSWORD,uid=1000,gid=1000 0 0
Вы скажите, что это плохо — хранить пароль в открытом виде в файле, доступном для чтения всем, и будете правы. К счастью, разработчики об это позаботились. Создаем файл с помощью редактора, например, nano:
nano /etc/credentials #имя файла может быть любым
такого содержания:
username=WIN_USER_NAME
password=WIN_USER_PASSWORD
domail=WIN_WORKGROUP
Делаем его доступным для чтения и записи только для пользователя root:
chmod 600 /etc/credentials #указывайте файл, который создавали вы
и вместо всей обвязки из имен и паролей просто пишем в опциях credentials=/etc/credentials (или тот файл, который вы создали). Эта опция работает как при ручном монтировании сетевого диска Windows
mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o credentials=/etc/credentials,uid=1000,gid=1000
так и автоматическом, при внесении записи в /etc/fstab (из примера выше):
//192.168.0.1/share /mnt/winshare cifs credentials=/etc/credentials,uid=1000,gid=1000 0 0
Примечание. Если вы используете дистрибутив, основанный на SystemD (Debian версии 8 и выше, Ubuntu версии 15.04 и выше, Fedora, ArchLinux…), применение файла /etc/fstab для автоматического монтирования файловых систем является нежелательным, так как SystemD использует несколько другой механизм для монтирования файловых систем, хотя он и обратно совместим с /etc/fstab. Узнать, как можно использовать возможности SystemD для монтирования файловых систем можно в статье SystemD Automount
В этой статье мы рассмотрим, как в Linux смонтировать общую сетевую папку, расположенную на хосте Windows. В Windows для доступа к общим сетевым папкам используется протокол SMB (Server Message Block), который ранее назывался CIFS (Сommon Internet File System). В Linux для доступа к сетевым папкам Windows по протоколу SMB можно использовать клиент cifs-utils или Samba.
- Смонтировать сетевую папку в Linux с помощью cifs-util
- Автоматическое монтирование сетевой папки в Linux
- Linux: подключиться к сетевой папке с помощью клиента samba
Содержание:
Совет. Для доступа к сетевым папкам по SMB/CIFS используется порт TCP/445. Для разрешения имени используются порты UDP 137, 138 и TCP 139. Если эти порты закрыты, вы сможете подключиться к сетевой папке Windows только по IP адресу.
Смонтировать сетевую папку в Linux с помощью cifs-util
Вы можете смонтировать сетевую папку, находящуюся на Windows хосте, с помощью утилит из пакета cifs-util. Для установки пакета выполните команду:
- В Ubuntu/Debian:
$ sudo apt-get install cifs-utils - В CentOS/Oracle/RHEL:
$ sudo dnf install cifs-utils
Создайте точку монтирования:
$ sudo mkdir /mnt/share
Теперь вы можете смонтировать сетевую папку с компьютера Windows под пользователем User03с помощью команды:
$ sudo mount.cifs //192.168.31.33/backup /mnt/share -o user=User03
Укажите пароль пользователя Windows для подключения к сетевой папке.
При подключении сетевой SMB папки можно задать дополнительные параметры:
$ sudo mount -t cifs -o username=User03,password=PasswOrd1,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share
- //192.168.31.33/backup – сетевая папка Windows
- /mnt/share – точка монтирования
- -t cifs – указать файловую систему для монтирования
- -o опции монтирования (эту опцию можно использовать только с правами root, поэтому в команде используется sudo)
- username=User03,password=PasswOrd1 – имя и пароль пользователя Windows, у которого есть права доступа к сетевой папке. Можно указать имя пользователя guest, если разрешен анонимный доступ к сетевой папке
- iocharset=utf8 – включить поддержку кодировки UTF8 для отображения имен файлов
- uid=1000 – использовать этого пользователя Linux в качестве владельца файлов в папке
По умолчанию шары Windows монтируются в Linux с полными правами (0755). Если вы хотите изменить права по-умолчанию при монтировании, добавьте в команду опции:
dir_mode=0755,file_mode=0755
Если вы хотите использовать имя компьютера при подключении сетевого каталога Windows, добавьте в файл /etc/hosts строку:
IP_АДРЕС ИМЯ_КОМПЬЮТЕРА
Чтобы не указывать учетные данные пользователя Windows в команде монтирования сетевой папки, их можно сохранить в файле.
Например:
$ mcedit ~/.windowscredentials
Добавьте в файл:
username=User03 password=PasswOrd1
Для подключения к папке под анонимным пользователем:
username=guest password=
Если нужно указать учетную запись пользователя из определенного домена Active Directory, добавьте в файл третью строку:
domain = vmblog.ru
Измените права на файл:
$ chmod 600 ~/.windowscredentials
Теперь при подключении сетевой папки вместо явного указания имени пользователя и пароля можно указать путь к файлу:
$ sudo mount -t cifs -o credentials=/home/sysops/.windowscredentials,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share
Отмонтировать сетевую SMB папку:
$ sudo umount /mnt/share
Автоматическое монтирование сетевой папки в Linux
Можно настроить автоматическое монтирование сетевой папки Windows через /etc/fstab.
$ sudo mcedit /etc/fstab
Добавьте в файл следующую строку подключения SMB каталога:
//192.168.31.33/backup /mnt/share cifs user,rw,credentials=/home/sysops/.windowscredentials,iocharset=utf8,nofail,_netdev 0 0
- rw – смонтировать SBM папку на чтение и запись
- nofail – продолжить загрузку ОС если не удается смонтировать файловую систему
- _netdev – указывает что подключается файловая система по сети. Linux не будет монтировать такие файловые системы пока на хосте не будет инициализирована сеть.
Вы можете указать версию протокола SMB, которую нужно использовать для подключения (версия SMB 1.0 считается небезопасной и отключена по-умолчанию в современных версиях Windows). Добавьте в конец строки с настройками подключения параметр vers=3.0.
//192.168.31.33/backup /mnt/share cifs user,rw,credentials=/home/sysops/.windowscredentials,iocharset=utf8,nofail,_netdev,vers=3.0 0 0
Если на стороне хоста Windows используется несовместимая (старая версия) SMB, при подключении появится ошибка:
mount error(112): Host is downилиmount error(95): Operation not supported
Чтобы сразу смонтировать сетевую папку, выполните:
$ mount -a
Linux: подключиться к сетевой папке с помощью клиента samba
Установите в Linux клиент samba:
- В Ubuntu/Debian:
$ sudo apt-get install smbclient - В CentOS/Oracle/RHEL:
# dnf install smbclient
Для вывода всех SMB ресурсов в локальной сети:
$ smbtree -N
Вывести список доступных SMB папок на удаленном хосте Windows:
smbclient -L //192.168.31.33 -N
Если в Windows запрещен анонимный доступ, появится ошибка:
session setup failed: NT_STATUS_ACCESS_DENIED
В этом случае нужно указать учетную запись пользователя Windows, которую нужно использовать для подключения:
smbclient -L //192.168.31.33 -U User03
Если нужно использовать учетную запись пользователя домена, добавьте опцию –W:
smbclient -L //192.168.31.33 -U User03 –W Domain
Для интерактивного подключения к сетевой папке Windows используется команда:
smbclient //192.168.31.33/backup -U User03 -W Domain
или
smbclient //192.168.31.33/backup -U User03
Для анонимного доступа:
smbclient //192.168.31.33/backup -U Everyone
После успешного входа появится приглашение:
smb: \>
Вывести список файлов в сетевой папке:
dir
Скачать файл из сетевой папки Windows:
get remotefile.txt /home/sysops/localfile.txt
Сохранить локальный файл из Linux в SMB каталог:
put /home/sysops/localfile.txt remotefile.txt
Можно последовательно выполнить несколько команд smbclient:
$ smbclient //192.168.31.33/backup -U User03 -c "cd MyFolder; get arcive.zip /mnt/backup/archive.zip"
Полный список команд в smbclient можно вывести с помощью команды help. Команды smbclient схожи с командами ftp клиента.
При использовании команды smbclient может появиться ошибка:
Unable to initialize messaging contextsmbclient: Can't load /etc/samba/smb.conf - run testparm to debug it.
Чтобы исправить ошибку, создайте файл /etc/samba/smb.conf.
Если на хосте Windows отключен протокол SMB 1.0, то при подключении с помощью smbclient появится ошибка:
Reconnecting with SMB1 for workgroup listing. protocol negotiation failed: NT_STATUS_CONNECTION_RESET Unable to connect with SMB1 -- no workgroup available.
- 158
Работа с сетевыми папками происходит с использованием протокола CIFS. В данном примере мы разберем, как подключить выделенное Вам хранилище по сети. Так же рассмотрим, как настроить параметры таким образом, чтобы после перезагрузки сервера сетевой диск был виден в системе.
Подготовка
Для монтирования общей папки необходимо установить набор утилит для работы с CIFS.
В CentOS:
# yum install cifs-utils
В Debian/Ubuntu:
# apt-get install cifs-utils
Теперь создадим точку монтирования. В данном примере мы создадим путь — /mnt/fb1234. Вы можете казать любой удобный для вас путь.
Команда:
# mkdir /mnt/fb1234
Монтирование
Вы можете использовать 2 команды для монтирования сетевого диска. Обе они верные.
# mount -t cifs -o username=fb1234 //IP-адрес сервера/fb1234 /mnt/fb1234
# mount.cifs -o username=fb1234 //IP-адрес сервера/fb1234 /mnt/fb1234
Внимание! Пользователь и директория будут начинаться с fb и далее персональный номер, который мы вам выделим. В данной статье указан простой пример, как это должно выглядеть.
После ввода одной из команд, введите пароль. После этого проверьте, что диск действительно смонтирован командой:
# df -h
Автоматическое монтирование CIFS через /etc/fstab
Создаём файл, в котором буду хранится данные для авторизации при подключении к общей папке:
В CentOS:
# vi /root/.smbclient
В Debian/Ubuntu:
# nano /root/.smbclient
И добавляем в него данные — пользователя и пароль.
Теперь открываем конфигурационный файл /etc/fstab и добавляем в него следующее:
//IP-адрес сервера/fb1234 /mnt/fb1234 cifs user,rw,credentials=/root/.smbclient 0 0
В примере выполняется монтирования сетевой папки «fb1234» на сервере «IP-адрес сервера» в каталог /mnt/fb1234. Параметр для подключения «user» позволяет выполнить монтирование любому пользователю, «rw» с правами на чтение и запись, «credentials» файл, который мы создали на прошлом шаге.
Теперь Ваш диск доступен root-пользователю и всем остальным «обычным пользователям».
Помог ли вам данный ответ?
Иногда, при организации совместных сетей между Windwos и Linux системами, в последних может появиться необходимость монтирования расшаренных SMB-ресурсов прямо к файловой системе. Прежде всего такая необходимость появляется при использовании легковесных рабочих сред (XFCE, OpenBox, LXDE и др), файловые менеджеры которых не поддерживают прямой доступ к samba.
Например, в среде Gnome доступ к ресурсу Windows можно получить прямо из файлового менеджера Nautilus, введя в адресной строке путь вида smb://192.168.0.11/ (где вместо необходимого ip-адреса также может быть просто указано сетевое имя windows-системы). Но многие другие файловые менеджеры (к примеру, быстрый и удобный PCMan File Manager до определённой версии) не поддерживают такой возможности, поэтому универсальным решением становится монтирование SMB к конкретному пути вашей файловой системы, в результате вы получите доступ к расшаренному ресурсу удаленной системы точно так же, как вы его получаете к своим дискам. Для этой цели нам потребуется установленный пакет cifs-utils, в Ubuntu и Debian установить его можно командой:
sudo apt-get install cifs-utils
В Fedora, CentOS и других RedHat based дистрибутивах:
sudo yum install cifs-utils
Также, как заметили в комментариях, рекомендуется установить пакеты ntfs-3g и ntfs-config, если они у вас ещё не установлены.
Теперь для начала давайте разберем как монтировать расшаренные папки вручную. Потребуется создать путь куда будем монтировать SMB-папку, пусть это, к примеру, будет /media/sharefolder:
sudo mkdir /media/sharefolder
Вот такой командой можно примонтировать папку, требующую авторизации по логину и паролю:
sudo mount -t cifs //192.168.0.11/share /media/sharefolder -o username=windowsuser,password=windowspass,iocharset=utf8,file_mode=0777,dir_mode=0777
где вместо //192.168.0.11/share – ip-адрес и имя необходимой общей папки (если имя расшаренной папки содержит пробел, то необходимо заключить весь путь в кавычки, как это показано в следующем примере), /media/sharefolder – путь куда будет монтироваться ресурс, windowsuser – имя пользователя с необходимыми правами доступа к этому ресурсу Windows, windowspass – пароль этого пользователя.
Если необходимая папка не требует обязательной авторизации, то подключить ресурс можно такой командой:
sudo mount -t cifs "//192.168.0.11/общие документы" /media/sharefolder -o guest,rw,iocharset=utf8,file_mode=0777,dir_mode=0777
Если гостевой доступ к необходимой папке включен только в режиме чтения, то будет достаточно такой команды:
sudo mount -t cifs //192.168.0.11/общие /media/sharefolder -o guest,iocharset=utf8
При удачном выполнении этих команд не должно произойти никакого уведомления – можете смело проверять как примонтировалась папка перейдя по вашему пути (в нашем примере – /media/sharefolder).
Отмонтируется папка командой:
sudo umount /media/sharefolder
Для того чтобы осуществить автомонтирование таких папок нам придется отредактировать системный файл fstab. Также, если доступ к необходимому windows-ресурсу требует обязательной авторизации, то потребуется предварительно создать файл, в котором будут прописаны логин и пароль доступа (сделать это можно текстовым редактором nano):
sudo nano /root/.smbcredentials
В этот новый файл добавьте две строки:
username=windowsuser
password=windowspass
где, соответственно, windowsuser – имя пользователя с необходимыми правами доступа к ресурсу Windows, windowspass – пароль этого пользователя. Измените права созданного файла так, что редактировать и смотреть его смог только root, то есть сама система:
sudo chmod 700 /root/.smbcredentials
Сохраните изменения и переходите к редактированию файла /etc/fstab:
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 без перезагрузки нужно выполнить такую команду:
sudo mount -a
Также к этому стоит добавить, что если вы хотите получать доступ к windows-шаре не через ip-адрес, а через имя машины, то вам потребуется установить winbind, в Debian-based:
sudo apt-get install winbind
Или в RedHat-based системах:
sudo yum install samba-winbind
После этого отредактируйте файл /etc/nsswitch.conf:
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).
