Как подключить шару в windows

Обновлено: 05.07.2024

Имеющаяся конфигурация: Компьютер с Windows 10 имеющий локальное доменное имя Halo и статический локальный IP адрес 172.16.0.3. Виртуальная машина с Ubuntu 20.04 и сетью в режиме моста. IP адрес 172.16.0.16.

Выдаем общий доступ к файлам на компьютере с Windows

Затем открываем проводник, вкладка этот компьютер, нажимаем правую кнопку мыши по необходимому диску (также работает и с отдельными папками) и нажимаем свойства.

Переходим в раздел Доступ, расширенные настройки общего доступа.

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

Затем применить и ещё раз применить. Также можно создать отдельного пользователя, для разграничения прав. Аналогично поступаю с диском E.

Продолжаем подключение к папке Windows из Ubuntu.

Добавляем компьютер в hosts на Ubuntu

Открываем терминал на Ctrl + Alt + T, вводим команду sudo gedit /etc/hosts делаем как на скриншоте. Используется табуляция (Tab), а не пробел.

Этим мы пропишем локальное доменное имя компьютера, к которому будем подключаться к его IP адресу, т.к Ubuntu сама по себе не умеет в подобное, в отличие от Windows. Проверим через команду ping Halo. Всё работает как нам нужно.

Подключение к папке Windows из Ubuntu. Вариант 1

Тут мы будем использовать cifs-utils для монтирования сетевой папки в любую папку на Ubuntu.

Устанавливаем пакет командой sudo apt install cifs-utils

Затем командой mkdir mount создаем папку в домашней директории пользователя /home/<user>, куда будем монтировать сетевую папку.

Командой ls проверяем, создалась ли папка.

Далее воспользуемся командой sudo mount -t cifs -o username=<имя пользователя Windows>,password=<пароль>,uid=1000,iocharset=utf8 //<домен компьютера>/директория (у меня открыт доступ к диску D, как просто папка D) /директория где создали папку (/home/yodo/mount в нашем случае).

Названия папок замазаны, т.к это мой личный ПК и мои персональные данные.

Подключение к папке Windows из Ubuntu. Вариант 2

В файловом менеджере нажимаем "другие места"

Вводим в нижнее поле команду smb://<домен или IP адрес компьютера>

Далее нас приветствует окно входа, вводим данные и пользуемся. Видит и D и E открытые, остальные некоторые глюки программы. На этом всё.

Однажды потребовалось мне организовать доступ к серверу по протоколу SMB и в поиске решения я наткнулся на следующую статью: Mounting your Nikhef home directory using SSH for Windows 8. Это было простое и удобное решение, которое использовало Putty. Чуть позже мне пришлось настраивать это решение на другом компьютере и я понял, что Putty тут лишний с тех пор как в Windows 10 появился встроенный ssh-клиент на основе OpenSSH.

Под катом — идентичная схема, только с использованием OpenSSH под Windows 10.

У меня схема организована следующим образом:

  1. На сервере запущена Samba, от имени пользователя www-data расшарена корневая папка с сайтами. Доступ к серверу только через ssh с авторизацией по ключу. Сервер за NATом, порт проброшен только для ssh.
  2. В процессе входа в аккаунт на домашней машине на Windows 10 через встроенный в систему OpenSSH устанавливается соединение с сервером с авторизацией по ключу.
  3. Туннелируется порт 445 удаленной машины на локальный порт 44445 сетевого loopback-адаптера доступного по адресу 10.255.255.1
  4. На loopback-адаптере 10.255.255.1 порт 44445 проксируется на локальный 445. Таким образом при подключении к \\10.255.255.1\ открывается удаленная шара с файлами (которая, при необходимости монтируется как сетевой диск).

Итак – сперва по шагам:

На стороне WINDOWS

Должен быть установлены OpenSSH. В Windows 10 и Windows Server 2019 появился встроенный SSH клиент на основе OpenSSH. Им мы и воспользуемся. Сначала убедимся что он установлен – наберем в командной строке


Если видим исполнение команды — все "Ок", клиент присутствует в системе.

Шаг 1. Настройка сетевого адаптера

Устанавливаем loopback-адаптер в системе. Мы будем обращаться по адресу к локальному адаптеру.


Запустится «Мастер установки оборудования» (Здесь я пользуюсь русской Windows 10 Pro).

«Далее» -> «Установка оборудования, выбранного из списка вручную» -> «Сетевые адаптеры» -> «Microsoft –> Адаптер замыкания на себя Microsoft KM-Test» -> «Далее»

Уверен, что эти шаги можно сделать из командной строки, но не нашел способ установки драйвера без devcon.exe, потому и не стал заморачиваться с автоматизацией этого шага.

Далее уже в CMD (от имени Администратора).


Видим появился второй адаптер. У меня он называется Ethernet 2.

Теперь настроим адрес для этого адаптера



Или из командной строки:

В результате у нас появился адаптер локально доступный по адресу 10.255.255.1

Теперь проблема в том, что нам необходимо получить доступ к общей папке через TCP-порт 445, но при загрузке Windows этот порт захватывается системным драйвером lanmanserver для всех интерфейсов. Отложив запуск драйвера lanmanserver и установив правило portproxy, мы можем обойти это.

Далее в командной строке от имени администратора меняем режим запуска сетевых служб (пробел после «start=» обязателен. ):

и настраиваем для адаптера с адресом 10.255.255.1 проксирование порта 44445 на локальный порт 445

Теперь необходимо перезагрузиться, чтобы схема перехвата порта у службы lanmanserver сработала.

Проверяем что прослушивание порта осуществляется нашим loopback-адаптером, просмотрев открытые в системе порты

значит все в порядке и порт прослушивается на нужном адресе. Если же мы видим "0.0.0.0:445" — значит в нашей схеме что-то не сработало правильно. Проверить правила переадресации портов можно командой

Шаг 2. Ключ и рабочий скрипт

Создаем папку для вспомогательных файлов. Встроим, так сказать в систему наш способ.

Генерируем ключ для ssh-авторизации (назовем его, например: cifsoversshkey)

В результате текущий пользователь будет назначен владельцем, отключено наследование и удалены унаследованные права. Проверить мы это сможем командой

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

Создадим в текущей папке пакетный файл cifsoverssh.cmd следующего содержания:

Где:
user@111.111.111.111 – пользователь на стороне linux сервера @ адрес удаленного сервера

Шаг 3. Ярлык или задача в планировщике

Создаем ярлык для следующей команды: powershell -nologo -noninteractive -windowStyle hidden -command "%APPDATA%\CIFSoverSSH\cifsoversshkey.cmd"
Это позволит запускать наш пакетный файл через powershell без открытия окна. Если запускать его через CMD будет открываться черное окно терминала и будет висеть все время, пока соединение будет установлено, а это неудобно и некрасиво.

Для автоматизации запуска при входе в систему можно создать задачу в планировщике:

На стороне клиентского компьютера Windows все приготовления были закончены.

Настройка Linux сервера

Предполагается, что ssh-сервер был предварительно настроен и включена авторизация по ключу.

Подключаемся по ssh из командной строки на windows-машине

В домашней папке пользователя, от имени которого мы будем авторизовываться при создании туннеля ищем файл

/.ssh/authorized_keys (если файл отсутствует – создадим его).

Теперь необходимо в этот файл вставить содержимое нашего файла публичного ключа, созданного на нашей windows-машине (файл %APPDATA%\CIFSoverSSH\cifsoversshkey.pub). Откроем его в любом редакторе и вставим цепочку ключа с новой строки. Если есть другие ключи, просто вставим его с новой строки.

Устанавливаем Samba (на примере Debian)

Переименовываем старый файл настроек и создаем новый файл

Открываем пустой файл настроек и приводим его к следующему виду:

В последней секции мы настраиваем непосредственно шару. В названии секции указываем имя шары ShareName. Path = путь к файлам, которые мы хотим расшарить. В параметрах force user и force group указываем linux-пользователя, от имени которого будут сохраняться файлы при изменении и создании в шаре. Так как у меня там лежат файлы для веб-сервера – у меня пользователь www-data

Отключаемся и выходим в командную строку Windows

Всё готово. Теперь остается только запустить наш ярлык или выйти из профиля пользователя windows и снова войти (если вы создали задачу в планировщике).

После этого ваша удаленная шара будет доступна по адресу \\10.255.255.1\ShareName — Можно даже монтировать её как сетевой диск.

Как подключить общую папку (сетевой ресурс, шару) Windows к Linux

В этой статье мы по шагам пройдем все этапы установки и настройки CIFS, чтобы подключиться к сетевому ресурсу Windows на ОС Linux.

Установка CIFS

Сейчас мы установим пакет cifs-utils на Ubuntu Linux (точно так же можно сделать на всех Debain-подобных ОС).

Монтируем Windows Share (сетевой ресурс)

Сейчас мы разберем на примерах, как монтировать общую папку Windows вручную и автоматически.

Создадим на нашем Linux директорию, к которой мы будем монтировать сетевой ресурс. Назовем ее myshare и расположена она будет в каталоге /mnt

Сетевой ресурс (шара) Windows может быть примонтирован к ОС Ubuntu или Debian с помощью следующей команды:

Если пользователь доменный, то необходимо в опциях (-o) указать домен.

По-умолчанию сетевой ресурс монтируется с полными правами (rwx или 777). Если Вы хотите установить иные права, используйте опции dir_mode и file_mode.

Так же Вы можете установить владельцев uid (id пользователя) и gid (id группы).

Если после выполнения предыдущих команд Вы не получили никаких ошибок, то можете с помощью команды df -h убедиться, что сетевой ресурс успешно примонтирован к нашему ПК на Linux. В примере WIN_HOST_IP = 192.168.1.100 и имя общей папки share

Безопасность учетных данных при монтировании через CIFS

В этом разделе опишем, как лучше всего передавать учетные данные (имя пользователя, пароль, домен) при монтировании сетевого ресурса к ОС на базе Линукс.

Создайте файл с учетными данными для cifs: /etc/cifs-credentials

Внутрь поместите следующее содержимое:

Задайте права для этого файла:

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

Как сделать автоматическое монтирование общей папки Windows

В примерах выше, после того, как Вы перезагрузите свой ПК, сетевой ресурс не примонтируется. Поэтому сделаем так, чтобы шара подключалась автоматически. В Linux это делается через файл /etc/fstab. Откройте этот файл любимым редактором.

И добавьте такую строку:

Следующей командой запустим монтирование всех точек, описанных в /etc/fstab

Теперь наш удаленный сетевой ресурс будет доступен даже после перезагрузки.

Как размонтировать общую папку CIFS

Размонтирование производится таким же способом, как и обычно мы жто делаем с дисками:

Итак, в этой статье мы рассмотрели, как быстро примонтировать удаленную сетевую папку, которая находится на хосте с Windows, к нашему хосту на Linux с помощью CIFS. Если у Вас остались какие-либо вопросы, пожалуйста, пишите в комментариях.

Автор

Админ

Возможно Вам будет это инетересно

Разворачиваем TFTP сервер на Debian/Ubuntu


Как посмотреть логи VMware vSphere ESXi через браузер

Как сделать загрузочную флешку Linux Mint

7 thoughts on “Как подключить общую папку (сетевой ресурс, шару) Windows к Linux”

[ 13.068117] CIFS: Attempting to mount //192.168.10.250/home
[ 13.068332] CIFS VFS: Error connecting to socket. Aborting operation.
[ 13.068339] CIFS VFS: cifs_mount failed w/return code = -2
[ 13.068431] CIFS: Attempting to mount //192.168.10.250/home/Drive/школа/English
[ 13.068556] CIFS VFS: Error connecting to socket. Aborting operation.
[ 13.068564] CIFS VFS: cifs_mount failed w/return code = -2
[ 13.069981] CIFS: Attempting to mount //192.168.10.250/Учебный_год_3В
[ 13.070234] CIFS VFS: Error connecting to socket. Aborting operation.
[ 13.070241] CIFS VFS: cifs_mount failed w/return code = -2
[ 15.184815] usb 1-1: reset high-speed USB device number 2 using ehci-pci
[ 17.861600] random: crng init done
[ 17.861607] random: 7 urandom warning(s) missed due to ratelimiting
[ 23.589870] tg3 0000:3f:00.0 enp63s0: Link is up at 100 Mbps, full duplex
[ 23.589872] tg3 0000:3f:00.0 enp63s0: Flow control is off for TX and off for RX
[ 23.589901] IPv6: ADDRCONF(NETDEV_CHANGE): enp63s0: link becomes ready

Все бы хорошо, но не успевает сетевуха поднять линк

[ 697.728246] CIFS: Attempting to mount //192.168.10.250/home
[ 700.739946] CIFS: Attempting to mount //192.168.10.250/Учебный_год_3В
[ 701.090973] CIFS: Attempting to mount //192.168.10.250/home/Drive/школа/English

вот вопрос, как бы заставить монтироваться после поднятия линка и получение адреса

Как создать общую сетевую папку в Windows 10 фото

Сперва следует решить на каком компьютере стоит делать сетевую папку. Если вы планируете открыть доступ для 20 или менее компьютеров, то можете переходить к следующему шагу.

Если в вашей сети больше 20 компьютеров, то вам стоит поискать может у вас есть Professional версия.

Поясню, MS Windows Home edition позволяет предоставлять доступ к сетевой папке не больше 20 компьютерам (пользователям). Для большего количества требуется версия Professional или Server.

Как узнать какая у вас версия Windows

Проверяем все компьютеры и если есть компьютер с версией Professional, то делаем сетевую папку на нем.

Дополнительные параметры для выбора компьютера:

  • Это должен быть компьютер с самым большим объёмом оперативной памяти. Как ее проверить? Выполняем все пункты из раздела как узнать какая у вас версия Windows, но в открывшемся окне смотрим чуть ниже пункт «Установленная память (ОЗУ)»

Подчеркнуто место, где указывается размер оперативной памяти

Создание сетевой папки

Если у вас на компьютере есть два жёстких диска (ну или 2 локальных диска, например «диск C:» и «диск D:») то лучше использовать не тот на котором установлен Windows, и на котором больше свободного места. Не забудьте оценить сколько гигабайт памяти вам понадобится для работы в течение следующего года и позаботиться о том, чтобы на выбранном диске её было достаточно.

  1. На выбранном диске создаем обычную папку, ее можно назвать «Сетевая папка», «Сервер» или как вам вздумается.
  2. Нажимаем на ней правой кнопкой мыши и заходим в «Свойства».
  3. В открывшемся окне убираем галочку на пункте «Только для чтения» и переходим во вкладку «Доступ». Далее нажимаем на расширенная настройка.

Фотография свойств папки Windows 10

Фотография вкладки доступ свойств папки Windows 10

Фотография расширенных настроек общего доступа

Иллюстрация как найти группу пользователей сеть

Фотография окна выбора пользователей или групп

Фотография окна поиска пользователей или групп

Разрешение доступа пользователям группы сеть

Меняем разрешения в безопасности папки

Добавляем новое разрешение во вкладке безопасность

Окно разрешения для групп в Win 10

Вкладка доступ в сетевой папке

Окно сетевого профиля – частная

Окно сетевого профиля – гостевая или общедоступная

Окно сетевого профиля – все сети

Сетевая папка отрыта! Но как в нее попасть!?

Подключение сетевого диска

В сетевую папку вы можете попасть, перейдя в любую папку, далее в левом боковом меню найти иконку сеть, нажать на нее из появившегося списка компьютеров найти компьютер на котором находится наша сетевая папка, открыть его, и перейти в сетевую папку. Можно даже сделать ярлык этой сетевой папки на рабочем столе. Но работать она будет не очень стабильно.

Для стабильной работы сетевой папки рекомендую на всех компьютера, где должен быть доступ к ней, подключить сетевой диск от этой папки. Это обеспечит более надежное соединение.

    Заходим в мой компьютер.

Как попасть в мой компьютер в Windows 10

Кнопка подключить сетевой диск в Windows 10

Окно подключения сетевого диска

Обзор папок в windows 10 при подключении сетевого диска

Сетевой диск готов!

Сетевой диск в Win 10

Пример создания ярлыка сетевой папки на рабочем столе

Теперь вы найдете ярлык сетевой папки на рабочем столе.

Процедуру повторяем на всех компьютерах, у которых должен быть доступ к папке.

Если кто-то подключит свой компьютер к вашей сети, он будет иметь доступ к этой сетевой папке. Для этого ему надо будет воткнуть провод в ваш сетевой коммутатор.

Ограничение доступа к части сетевой папки

Поясню. На каждом компьютере есть учетная запись. Вы можете сделать так, чтобы некоторые папки внутри сетевой папки были открыты для доступа только с определенных компьютеров (а точнее с конкретных учетных записей пользователей). Если кто-то подключится к вашей локальной сети, он не сможет в нее попасть. Или сотрудник (компьютер) которому вы не дали доступ к этой папке, тоже не сможет в нее попасть.

Принцип такой-же, как и при создании обычной сетевой папки. В случае с открытой сетевой папкой мы открываем доступ для группы СЕТЬ, в которую входят все компьютеры. В данном случае мы открываем доступ только для конкретных пользователей. Начнем.

Создаем учетные записи пользователей на компьютере с сетевой папкой

Первое что нам надо сделать, это переписать на листок бумаги имена учетных записей и пароли с компьютеров, которым мы хотим дать доступ к защищенной папке.

    Включаем компьютер, на котором должен быть доступ к этой папке. Нажимаете на клавиатуре комбинацию Win+R, вбиваете команду кnetplwiz и нажимаете на «ОК».

В окно выполнить вбиваем команду вызова окна учетных записей пользователей

Окно учетных данных пользователей с пояснением что делать

Пароль обязательно надо проверить, выйдя из системы и войдя при помощи этого пароля.

Нажимаем на кнопку Win, затем на своего пользователя и выход

Ставим галочку на требовании ввода имени пользователя и пароля

Создание учетной записи пользователя в Win 10

Окно учетных записей пользователей

Если на этом шаге вы добавили учетную запись Microsoft (в качестве пользователя у вас e-mail) , то вам обязательно необходимо произвести вход в эту учетную запись на этом компьютере, иначе у этого пользователя (на другом компьютере, которому вы открываете доступ) не появится прав зайти в секретную сетевую папку.

Создаем защищенную сетевую папку и открываем доступ пользователям

  1. В сетевой папке создаем обычную папку . В нашем случае назовем ее «Финансы».
  2. После того как мы создали всех необходимых пользователей на компьютере с секретной сетевой папкой, надо раздать этим пользователям права на посещение и редактирование секретной папки. Переходим к нашей папке, в моем случае это «Финансы». Нажимаем на ней правой кнопкой мыши и выбираем пункт «Свойства» .
  3. Переходим во вкладку доступ, нажимаем на кнопку расширенная настройка. В открывшемся окне включаем галочку «Открыть общий доступ к этой папке» и нажимаем на кнопку «Разрешения». В окне «Разрешения для группы…» нажимаем на кнопку добавить.

Открываем общий доступ к защищенной сетевой папке

Находим и добавляем пользователей в разрешения для сетевой папки

Задаем разрешения для пользователей сетевой папки

Отменяем наследование правил защищенной сетевой папки в Win 10

Мы открыли доступ для нашей новой паки конкретным пользователям, но наша папка финансы находится внутри сетевой папки, в которой мы дали разрешение всем пользователям сети (группой «СЕТЬ») на чтение и редактирование вложенных в нее папок и файлов. Таким образом наша папка «Финансы» наследует все правила от папки «Сетевая папка». Надо отключить это наследование.

    В окне свойства нашей сетевой папки переходим во вкладку Безопасность. Нажимаем на кнопку дополнительно.

Вкладка безопасность сетевой папки

Дополнительные параметры безопасности сетевой папки в Windows 10

Удаляем наследуемые разрешения сеть и все

Готовая защищенная сетевая папка

Защищенная сетевая папка готова! Вы можете попасть в нее войдя в подключенный сетевой диск нашей обычной сетевой папки, или подключить отдельный сетевой диск для более быстрого доступа.

Читайте также: