- Как передавать и обмениваться файлами между Windows и Linux
- 4 способа передачи файлов из Windows в Linux
- 1. Совместное использование сетевых папок между Linux и Windows
- 2. Скопируйте файлы через SSH из Windows в Linux
- 3. Как перенести файлы из Linux в Windows, используя FTP
- 4. Делитесь файлами между Linux и Windows с помощью Resilio Sync
- Как сделать общую сетевую папку в Linux (настройка SMB в Linux)
- Настройка Samba
- Настройка общих папок
- Linux
- HackWare.ru
- Этичный хакинг и тестирование на проникновение, информационная безопасность
- SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux
- Книга по SMB и Samba на русском языке. Оглавление
- Samba — это SMB для Linux
- Как в Linux увидеть все компьютеры Windows с совместными ресурсами
- Как в Linux вывести доступные по сети ресурсы (совместные папки и принтеры Windows)
- Как подключиться к сетевой папке Windows из Linux
- Подключение к SMB папке, требующий авторизации
- Команды SMB в Linux
- Выводит все доступные команды:
- Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:
- Удаление файла в шаре:
- Показ файлов и папок в текущей папке:
- Скачать файлы с общей папки:
- Выгрузка файла на общую папку:
- Включение и отключение рекурсии
- Показ всей возможной информации о файле:
- Копирование файла на сервере:
- Создание директории:
- Удаление директории:
- Удаление файлов
- Переименование файлов:
- Ссылки
- Выход с сервера:
- Вывод истории команд текущей сессии:
- Просмотр содержимого текстового файла:
- Показ текущей рабочей директории:
- Создание и извлечение архивов tar
- Установка таймаута операций:
- Установка нового соединения:
- Закрытие сессии, выход:
- Вывод списка открытых подключений:
- Отображение текущего активного подкючения:
- Изменение удалённой директории (переход на одну папку выше):
- Выполнение команд в локальной системе:
- Автоматическое выполнение команд в сетевой папке Windows
- Как смонтировать общую папку Windows/Samba в Linux
- Настройка автоматического монтирования сетевой папки в Linux
- Как создать общую сетевую папку в Samba
- Связанные статьи:
- Рекомендуется Вам:
- 13 комментариев to SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux
Как передавать и обмениваться файлами между Windows и Linux
Копирование данных с ПК с Windows в Linux — или в другом направлении — поначалу может показаться пугающим. В конце концов, это то, что кажется простым, но оказывается сложным.
По правде говоря, делиться файлами из Windows в Linux легко, но только если вы знаете, как это сделать. Готовы выяснить?
4 способа передачи файлов из Windows в Linux
Перенос данных между операционными системами Windows и Linux проще, чем вы думаете. Мы собрали пять способов сделать это:
- Поделиться сетевыми папками
- Передача файлов с FTP
- Безопасное копирование файлов через SSH
- Обмен данными с помощью программного обеспечения для синхронизации
С помощью каждого из этих методов вы сможете легко (а в некоторых случаях легко) перемещать файлы между операционными системами.
Давайте посмотрим на них по очереди и выясним, какой из них подходит вам больше всего.
1. Совместное использование сетевых папок между Linux и Windows
Наиболее очевидный способ обмена файлами между Linux и Windows — это использование сетевых ресурсов. Этот термин относится к папкам на одном ПК, которые доступны пользователям на других компьютерах. В сети только для Windows это легко настроить. Добавление устройства Linux немного усложняет ситуацию, хотя это можно преодолеть.
Начиная с Windows, щелкните правой кнопкой мыши значок сетевого подключения на панели задач и выберите «Открыть сеть и настройки Интернета». Далее нажмите «Параметры общего доступа» и включите текущий профиль.
- Включить обнаружение сети
- Включите общий доступ к файлам и принтерам
Нажмите «Сохранить изменения» для подтверждения, затем перейдите в папку, содержащую файлы, которыми вы хотите поделиться. Щелкните правой кнопкой мыши папку, выберите «Свойства» и откройте вкладку «Общий доступ». Здесь нажмите «Расширенный общий доступ», затем установите флажок «Поделиться этой папкой».
Вы можете управлять доступом к папке через разрешения; это относится к локальным пользователям Windows, а не к сетевым устройствам.
Нажмите OK, чтобы подтвердить изменение, затем откройте вкладку Безопасность в Свойствах. Настройте это, чтобы отразить настройки в поле Полномочия ранее. Вам не нужно делать слишком много здесь, так как Windows 10 должна включать группу под названием Authenticated Users. Это используется для удаленного доступа к вашему компьютеру.
Снова нажмите ОК, когда вы закончите.
Чтобы найти общий ресурс Windows на ПК с Linux, просто откройте браузер файлов и выберите «Сеть». Отсюда перейдите к папке, размещенной в Windows, и начните обмен данными.
Доступ к общему ресурсу Linux из Windows
Чтобы переместить данные в другом направлении, вам нужно установить Samba на ваш компьютер с Linux.
Затем установите имя пользователя для общего ресурса samba.
Вам будет предложено ввести пароль для новой учетной записи (не используйте для этого «имя пользователя»!).
Затем создайте каталог для обмена данными.
Затем отредактируйте файл smb.conf в своем текстовом редакторе:
Добавьте следующее в конец файла конфигурации:
Внесите необходимые изменения в соответствии со своими потребностями, затем нажмите Ctrl + X, чтобы выйти, и нажмите Y, чтобы сохранить. Далее перезапустите Samba:
После этого вы сможете получить доступ к общему ресурсу из Windows. Откройте проводник или браузер и введите IP-адрес или имя хоста удаленного устройства Linux, а затем имя папки. В нашем примере это
2. Скопируйте файлы через SSH из Windows в Linux
С включенным SSH на вашем устройстве Linux вы можете отправлять данные через командную строку с одного компьютера на другой. Однако, чтобы это работало, вам нужно настроить SSH-сервер на вашем Linux-компьютере.
Начните с открытия терминала и обновления и обновления ОС.
После завершения установите сервер SSH. Сервер OpenSSH — хороший вариант.
Подождите, пока он установит. Чтобы в любой момент проверить, работает ли сервер OpenSSH, используйте
Для передачи данных из Windows используйте SSH-клиент, например PuTTY. Это требует загрузки инструмента PSCP в вашу систему Windows для запуска вместе с PuTTY. Найти оба на домашней странице PuTTY.
Обратите внимание, что в то время как PuTTY нужно будет установить, PSCP — нет. Однако его следует сохранить в корне диска C:\ или настроить как переменную среды. Вам также необходимо подтвердить IP-адрес устройства Linux. Отметьте это на коробке с
После установления соединения вы можете отправлять данные следующим образом:
Перед началом передачи вам будет предложено ввести пароль для компьютера с Linux.
Хотите скопировать данные из Linux в Windows в одном сеансе SSH? Эта команда загрузит указанный файл в текущий каталог:
Обратите внимание на одиночный период в конце — включите его, иначе перевод не будет работать.
3. Как перенести файлы из Linux в Windows, используя FTP
Можно также использовать приложение протокола передачи файлов (FTP) с поддержкой SSH. Передача файлов через SFTP в пользовательском интерфейсе, управляемом мышью, возможно, проще, чем полагаться на набранные команды.
Опять же, сервер SSH должен быть запущен на компьютере с Linux перед началом работы. Вы также должны убедиться, что вы установили приложение FTP, такое как FileZilla, которое поддерживает SFTP.
Чтобы использовать этот метод, запустите FileZilla, затем откройте Файл → Менеджер сайтов. Создайте новый сайт, заботясь о том, чтобы установить протокол на SFTP. Добавьте целевой IP-адрес в Host, затем имя пользователя и пароль, установив тип входа в систему как Нормальный.
Нажмите Готово, когда будете готовы, затем используйте интерфейс FTP для перетаскивания файлов между двумя компьютерами.
4. Делитесь файлами между Linux и Windows с помощью Resilio Sync
Другим вариантом, который вы должны рассмотреть, является программа синхронизации файлов. Обычно они кроссплатформенные и используют зашифрованный ключ для управления соединением между устройствами.
Все, что вам нужно сделать, это установить приложение, назначить папку синхронизации, а затем создать ключ. Установите это на втором ПК, и ваши данные будут синхронизированы. Для этого есть два хороших варианта:
- Resilio Sync: ранее известная как BitTorrent Sync, Resilio доступна практически на любой платформе, о которой вы только можете подумать. Есть платная версия, но бесплатного варианта достаточно для синхронизации двух устройств.
- SyncThing: для Linux, Windows, macOS и Android эта альтернатива Resilio Sync предлагает аналогичную функцию без платного компонента.
Совместное использование файлов между Windows и Linux очень просто
Если вы новичок в Linux, или вы находите Windows незнакомой, обмен данными между ними проще, чем вы думаете.
Мы рассмотрели несколько методов. Мы рекомендуем вам попробовать все из них и решить, какой из них вам наиболее удобен.
Как сделать общую сетевую папку в Linux (настройка SMB в Linux)
Начните с установки пакетов samba и smbclient.
В Debian, Linux Mint, Ubuntu, Kali Linux и их производных для установки samba выполните команду:
В Arch Linux, BlackArch и их производных выполните команду:
Следующая команда не сработает, если отсутствует файл /etc/samba/smb.conf. Если у вас тоже нет этого файла, то создаёте его заглушку — к настройке самого файла smb.conf мы вернёмся позже:
Теперь нужно добавить пароль для пользователя Samba. Действует следующее правило: имя пользователя должно быть таким же, как у вашего текущего пользователя, а пароль можно установить иной, отличный от вашего системного пароля.
Для установки пароля Samba, выполните следующую команду:
Если вы хотите, чтобы у пользователя не было пароля, то укажите опцию -n.
Создайте папку, которая станет совместно используемой:
Узнаем абсолютный путь до папки
Откройте для редактирования файл /etc/samba/smb.conf:
Добавьте туда строки вида:
Обратите внимание, что все пробелы в строках выше являются обязательными.
Для моих данных это строки:
Теперь запустим службу SMB:
Для добавления службы в автозагрузку выполните:
Для подключения к этой общей сетевой папке на Linux нужно использовать IP адреса компьютера Linux.
Создадим файл, чтобы сетевая папка не была пустой:
Посмотрите локальный IP адрес компьютера, на котором запущена Linux:
У меня этим IP является 192.168.0.89, а папку, как мы помним, я создал с именем linuxshare, тогда в Windows я перехожу в проводнике во вкладку «Сеть» и подключаюсь к этой папке следующим образом:
Вводим учётные данные (которые мы установили командой smbpasswd):
Видим содержимое совместно используемой папки, размещённой на Linux с помощью SMB:
Для подключения к сетевой папке из консоли Linux, запустите команду вида:
Для моего примера это:
После ввода пароля нам становится доступным содержимое сетевой папки.
Настройка Samba
Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше — используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи.
Что такое Samba?
Samba — серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.
Настройка общих папок
Linux
Установка и настройка Samba-сервер для Ubuntu выполняется следующими этапами.
Обновляем информацию о репозиториях и устанавливаем обновления для существующих пакетов в системе:
apt-get update && apt-get upgrade
Устанавливаем пакет Samba:
apt-get install -y samba samba-client
Создадим резервную копию файла конфигурации:
cp /etc/samba/smb.conf /etc/samba/smb.conf_sample
Создадим директории для файлов, например в каталоге /media:
Важно! По умолчанию, директория /media располагается в корне системы /, для нее редко создается свой раздел. По этой причине возможно переполнение корневого раздела. Во избежание этой неприятной ситуации, рекомендуем монтировать отдельный жесткий диск в /media/samba.
Создаем каталог для всех пользователей:
Изменим права доступа к каталогу:
chmod -R 0755 /media/samba/public
Также следует воспользоваться командой chown для смены владельца и/или группы.
Создаем директорию для ограниченного круга лиц:
С помощью системных инструментов создадим группу пользователей:
Добавляем пользователей Samba:
Созданных пользователей добавляем в группу:
usermod -aG smbgrp user1
Изменим группу, которой принадлежит приватная директория:
chgrp smbgrp /media/samba/private
С помощью инструментов Samba создадим пароль для добавленного пользователя:
smbpasswd -a user1
С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:
Удаляем все строки из файла. Вставляем следующие:
map to guest = bad user
wins support = no
force user = nobody
valid users = @smbgrp
Сохраняем используя сочетание Ctrl + X, затем нажимаем Y и Enter.
Объясним значения строк. конфигурационный файл состоит из трех секций:
global — данная секция отвечает за общие настройки Samba-сервера;
public и private — секции описания настроек директорий общего доступа.
В секции global присутствуют пять параметров:
- workgroup — рабочая группа. Для упрощения работы пользователей WORKGROUP указывается, как группа по умолчанию. Если в вашей сети имя рабочей группы изменено, то следует изменить это значение и для Samba;
- security — уровень безопасности сервера. Значение user означает авторизацию по паре логин/пароль;
- map to guest — параметр определяет способ обработки запросов. Значение bad user означает, что запросы с неправильным паролем будут отклонены, даже если такое имя пользователя существует;
- wins support — включить или выключить поддержку WINS;
- dns proxy — возможность проксирования запросов к DNS.
Настройки директорий выполняются в соответствующих секциях:
path — полный путь до директории на жестком диске;
guest ok — возможность доступа к каталогу без пароля (гостевой);
browsable — показывать ли каталог (“шару”) на сервере среди прочих. Если параметр установлен как “no”, то доступ будет возможен по полному пути, например ip-addresshidden_directory;
force user — пользователь от которого ведется работа с каталогом. Для повышения безопасности сервера, обычно используют nobody. Главное, не использовать пользователя root — это небезопасно.
writable — установка значения как “yes” позволяет пользователю выполнять действия над файлами внутри каталога — переименование, добавление, удаление, перемещение в подкаталог и копирование;
valid users — список пользователей у которых есть доступ к каталогу. Если пользователей несколько, их имена указываются через запятую. Если необходим доступ для пользователей принадлежащих группе, перед именем группы устанавливается символ ”at” @ (“собака”).
Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux
Книга по SMB и Samba на русском языке. Оглавление
Samba — это SMB для Linux
SMB — это протокол, технология, которая позволяет создать файловые сервер. В первой части я говорил, что в Linux функции сервера и клиента SMB выполняет Samba. Это не совсем так, на самом деле, в настоящее время Samba не только реализует возможности SMB, но и дублирует функционал сервера Доменов Active Directory (технология Windows, позволяющая управлять множеством компьютеров — кстати, про Active Directory скоро будет большой материал на HackWare.ru).
Далее мы будем говорить про Samba, но мы затронем только вопросы SMB.
Начните с установки пакетов samba и smbclient.
В Debian, Linux Mint, Ubuntu, Kali Linux и их производных для установки samba выполните команду:
В Arch Linux, BlackArch и их производных выполните команду:
Как в Linux увидеть все компьютеры Windows с совместными ресурсами
Для показа всех совместных сетевых ресурсов Windows выполните команду:
В этой и последующих командах используется флаг -N, который означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.
В начале идёт имя рабочей группы WORKGROUP. Затем следует список компьютеров. Для тех из них, для которых удаётся получить список сетевых папок, они выводятся.
Как можно увидеть выше, для компьютера \\VYACHESLAV получен список совместно используемых ресурсов, а для компьютера \\HACKWARE-MIAL — нет. При этом если я включал на компьютере \\HACKWARE-MIAL поддержку протокола SMB 1, а при запуске команды указывал хоть какое-то имя пользователя, например:
либо просто запускал smbtree с правами администратора:
то мне удавалось получить список файлов также и для компьютера \\HACKWARE-MIAL. UDP: видимо, такое поведение в том, что совпадали имена польозвателей на компьютерах с Linux и Windows.
Как в Linux вывести доступные по сети ресурсы (совместные папки и принтеры Windows)
Предыдущая команда показала нам несколько компьютеров с сетевыми папками. Предположим, меня интересует компьютер \\HACKWARE-MIAL, чтобы вывести его сетевые папки я запускаю команду вида:
в моём случае это:
Кстати, вместо имени компьютера можно указать IP адрес.
В полученном выводе половину информации составляют сообщения о различных проблемах. Значимые данные:
В полученном выводе Share и Users являются общими сетевыми папками.
исчезнут, если создать файл /etc/samba/smb.conf.
пропадут, если на компьютере с сетевой папкой включить поддержку протокола SMB1.
Как я уже говорил чуть выше, флаг -N означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.
Как и для smbtree, для smbclient необязательно использовать sudo, но без sudo для некоторых компьютеров программа срабатывает нормально, а для некоторых завершается ошибкой:
Как подключиться к сетевой папке Windows из Linux
Программа smbclient умеет не только показывать общие ресурсы, но и имеет интерактивный режим, во время которого можно копировать файлы между локальным компьютером и общей папкой, удалять файлы, создавать папки и переходить по каталогам, просматривать содержимое файлов и их свойств и выполнять другие действия в файловой системе совместно используемой сетевой папки.
Кроме интерактивного режима, можно просматривать содержимое сетевых папок и в проводнике Linux — об этом будет рассказано позже, а пока остановимся на подключении в командной строке.
Для входа в интерактивный режим запустите команду вида:
Например, я хочу подключиться к компьютеру //HACKWARE-MIAL/ и выполнить действия с файлами в сетевой папке Share, тогда моя команда следующая:
Если вы хотите, чтобы при подключении была изменена текущая рабочая директория в сетевой папке, то есть чтобы была открыта другая папка, то используйте опцию -D. К примеру, я хочу подключиться к папке NewFolder, тогда команда следующая:
Подключение к SMB папке, требующий авторизации
К примеру, на компьютере //HACKWARE-MIAL/ имеется сетевая папка ShareRestricted, права на просмотр которой есть у пользователя ShareOverlord. Для просмотра шары, защищённой паролем, нужно использовать команду вида:
В моём случае это команда:
Команды SMB в Linux
Доступны следующие интерактивные команды:
Выводит все доступные команды:
Для показа справки по определённой команде, выполните
Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:
Переход в другую директорию на локальной системе:
Удаление файла в шаре:
Имеется псевдоним этой команды:
И ещё одна команда со схожей функцией:
Эта команда рекурсивно удалить все совпавшие с шаблоном имени файлы и директории.
Показ файлов и папок в текущей папке:
Имеется псевдоним этой команды:
И ещё один, даже более короткий псевдоним:
Скачать файлы с общей папки:
Для повторного скачивания файла:
Для скачивания всех файлов, чьём имя совпадает с шаблоном:
Например, чтобы скачать все файлы с файловым расширением .exe нужно запустить такую команду:
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос на скачивание. Если вы действительно хотите его скачать, то нажмите клавишу «y»:
Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:
Выгрузка файла на общую папку:
Следующая команда скопирует локальный файл в шару:
Повторная закачка файла:
Для закачки всех файлов, чьём имя совпадает с шаблоном:
К примеру, чтобы закачать в шару все файлы (из локальной текущей рабочей директории), которые имеют расширение *.cap, нужно запустить команду:
Для каждого файла, совпавшего с шаблоном, будет выполнен запрос подтверждения, если вы действительно хотите его закачать, то нажмите клавишу «y»:
Включение и отключение рекурсии
Можно включать и отключать рекурсивный режим для mget и mput.
Показ всей возможной информации о файле:
В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.
Копирование файла на сервере:
Создание директории:
Удаление директории:
Удаление файлов
Следующая команда удалит все совпавшие с МАСКОЙ файлы:
Псевдоним команды для удаления файлов:
С помощью команды wdel можно удалить все совпавшие файлы по подстановочным символам:
Переименование файлов:
Ссылки
Создание жёсткой ссылки Windows:
Создание жёсткой ссылки UNIX:
Создание символьной ссылки UNIX:
Выход с сервера:
Вывод истории команд текущей сессии:
Просмотр содержимого текстового файла:
Показ текущей рабочей директории:
Другой вариант показа текущей рабочей директории — это команда cd без аргументов:
Создание и извлечение архивов tar
Программа tar используется для объединения нескольких файлов в один файл. Объединение происходит без сжатия. Для того, чтобы несколько файлов из сетевой папки объединить в архив и скачать на локальную систему запустите команду вида:
К примеру, я хочу скачать файлы all-databases.sql besside.log ChromeSetup.exe из совместной папки и объединить их в архив all.tar, тогда моя команда следующая:
Если нужно разархивировать файл на локальной системе и всё его содержимое отправить на удалённую общую папку, то запустите команду вида:
К примеру, я хочу отправить содержимое архива all.tar в общую папку:
Для установления режимов tar используется команда
Установка таймаута операций:
Таймаут устанавливается в секундах и по умолчанию равен 20.
Установка нового соединения:
Закрытие сессии, выход:
Вывод списка открытых подключений:
Отображение текущего активного подкючения:
Изменение удалённой директории (переход на одну папку выше):
Выполнение команд в локальной системе:
Чтобы команда выполнялась не на удалённой системе, а на локальной, поставьте перед ней ! (восклицательный знак), например^
Автоматическое выполнение команд в сетевой папке Windows
Необязательно каждый раз вводить все команды вручную — вы можете перечислить их через запятую и указать в двойных кавычках с опцией -c, например:
Как смонтировать общую папку Windows/Samba в Linux
Сетевая папка Windows может быть доступна в файловых менеджерах Linux как любая другая локальная папка. Для этого её нужно смонтировать. После монтирования не придётся использовать консоль для просмотра списка файлов и скачивания или закачивания файлов.
Начните с установки пакета cifs-utils.
В Debian, Linux Mint, Ubuntu, Kali Linux и производных выполните:
В Arch Linux, BlackArch и производных выполните:
Предыдущие команды smbtree и smbclient понимали имена компьютеров Windows, такие имена как HACKWARE-MIAL. Монтирование выполняется с помощью команды mount, которая такие имена не умеет обрабатывать без помощи преобразования имён DNS. Поэтому при монтировании можно либо:
- Использовать вместо имён компьютеров IP адрес. В этом случае у компьютера с сетевой папкой должен быть постоянный (статичный) IP адрес
- Либо настроить преобразование имён для компьютеров Windows. Это можно сделать, например, с помощью файла /etc/hosts. Кстати, в этом случае у компьютера с общей папкой также должен быть постоянный IP адрес (смотрите Как настроить локальный DNS используя файл /etc/hosts в Linux)
В общем, в любом случае настройте в роутере или в самой Windows постоянный локальный IP.
Если вы хотите настроить преобразование имён с помощью файла /etc/hosts, то откройте его:
И добавьте туда запись вида
Например, у меня IP_АДРЕС это 192.168.0.101, а именем компьютера является HACKWARE-MIAL, тогда я добавляю следующую запись:
Пингуем по имени компьютера Windows, чтобы убедиться, что всё сработало:
Теперь нам нужно создать точку монтирования — папку, где появятся файлы из шары. Я создаю папку /mnt/share:
Чтобы не возникало проблем с правами доступа, папка, куда монтируется шара (например, /mnt/share/), должна принадлежать текущему пользователю Linux — если вы создавали папку без sudo, то она уже принадлежит обычному пользователю. Но если вы создавали папку с sudo (например, иначе это невозможно сделать в /mnt/), то вам нужно поменять её владельца командой вида::
Например, чтобы поменять владельца папки /mnt/share/ на текущего пользователя:
Теперь для монтирования сетевой шары Windows нужно запустить команду вида:
В этой команде вы должны вставить свои значения для
- //ИМЯ-КОМПЬЮТЕРА/Папка
- /точка/монтирования
Значение других элементов команды:
- sudo — монтировать шару можно и без прав суперпользователя, но использовать опцию -o, после которой указываются опции для монтирования, можно только с правами root
- -t cifs выбор файловой системы для монтирования
- -o означает, что после этой опции будут перечислены опции для монтирования:
- username=guest,password= — произвольное имя пользователя без пароля — используется для подключение к общей папки, для которой не требуется вход. Вместо этой конструкции можно указать просто guest, но в этом случае на некоторых системах всё равно запрашивается пароль. По моим наблюдениям, пароль запрашивается когда имя текущего пользователя на Linux совпадает с именем пользователя на Windows
- uid=1000 — в качестве владельцев всех файлов в шаре будет указан текущий пользователь Linux
- iocharset=utf8 — эта кодировка позволяет работать с именами файлов, в которых используются не только латинские буквы
К примеру, путь до сетевой шары у меня //HACKWARE-MIAL/Share, её я хочу смотрировать в папку /mnt/share, тогда команда будет следующей:
Вид сетевой папки Windows в Double Commander:
Вид сетевой папки в стандартном проводнике Linux:
Для размонтирования нужно запустить следующую команду (укажите либо точку монтирования, либо ресурс, который был смонтирован):
Напомню, что в предыдущей части я не только настроил папку для входа без пароля, но на том же самом компьютере и настроил вторую папку с именем ShareRestricted. У этой папки владелец ShareOverlord, а пароль для входа 1234. Для подключения папки, доступ к которой возможен только по паролю, используется та же самая команда, но нужно указать реальные учётные данные:
Чуть дальше очень похожий набор опций, в том числе пароль в открытом виде, мы будем использовать в файле /etc/fstab для настройки автоматического монтирования сетевой папки. Файл /etc/fstab доступен для чтения всем а, следовательно, также доступен всем ваш пароль от Windows в нём. Чтобы обойти эту проблему, можно использовать файл с учётными данными. Это файл содержит только имя пользователя и пароль.
Используя текстовый редактор, создайте файл с учётными данными для входа на ваш удалённый сервер:
В этот файл введите имя пользователя и пароль от Windows:
В моём примере это:
Сохраните файл и закройте редактор.
Измените права доступа к этому файлу, чтобы предотвратить нежелательный доступ к вашим учётным данным:
Посмотрите абсолютный путь до этого файла:
В моём случае абсолютный путь:
Теперь вместо двух опций:
нужно использовать одну опцию, в качестве значения которой нужно указать абсолютный путь до файла с логином и паролем:
Моя команда стала выглядеть так:
Настройка автоматического монтирования сетевой папки в Linux
Автоматически монтируемые файловые системы прописываются в файле /etc/fstab. Откроем этот файл:
Теперь в него нужно добавить строку вида:
Мы добавили опцию nofail, чтобы ОС нормально загружалась даже если не удалось смонтировать данную файловую систему. Ещё добавьте опцию _netdev, эта опция означает, что файловая система находится на устройстве, которому требуется доступ к сети (используется для предотвращения попыток системы смонтировать эти файловые системы до тех пор, пока в системе не будет включена сеть).
Для моего примера это строка:
Сохраним и закроем этот файл. Для проверки выполним:
Если сетевая папка успешно смонтировалась, значит можно выполнить проверку перезагрузкой.
Если нужно смонтировать папку для входа в которую не требуется пароль, то используйте в качестве опции учётные данные «username=guest,password=»:
Либо можно по-прежнему использовать файл .smbcredentials, как это было показано выше:
/.smbcredentials запишите следующее:
Как создать общую сетевую папку в Samba
Если в этой статье вы пропустили предыдущие части, так как вам нужно только настроить файловый сервер на Linux, то начните с установки пакета samba.
Следующая команда не сработает, если отсутствует файл /etc/samba/smb.conf. Если у вас тоже нет этого файла, то создаёте его заглушку — к настройке самого файла smb.conf мы вернёмся позже:
Теперь нужно добавить пароль для пользователя Samba. Действует следующее правило: имя пользователя должно быть таким же, как у вашего текущего пользователя, а пароль можно установить иной, отличный от вашего системного пароля.
Для установки пароля Samba, выполните следующую команду:
Если вы хотите, чтобы у пользователя не было пароля, то укажите опцию -n.
Создайте папку, которая станет совместно используемой:
Узнаем абсолютный путь до папки
Откройте для редактирования файл /etc/samba/smb.conf:
Добавьте туда строки вида:
Обратите внимание, что все пробелы в строках выше являются обязательными.
Для моих данных это строки:
Теперь запустим службу SMB:
Для добавления службы в автозагрузку выполните:
На самом деле, мы настроили не полноценную Samba, а только файловый сервер SMB. Одно из следствий этого — показанные выше способы обнаружения сетевых папок, такие как команда smbtree в Linux или переход во вкладку «Сеть» в проводнике Windows, не обнаружат нашу шару.
Для подключения к этой общей сетевой папке на Linux нужно использовать IP адреса компьютера Linux вместо имени компьютера, как это мы делали раньше. Кстати, поэтому нужно настроить статичный IP (смотрите статью «Как настроить Linux на использование статичного IP адреса»).
Создадим файл, чтобы сетевая папка не была пустой:
Посмотрите локальный IP адрес компьютера, на котором запущена Linux:
У меня этим IP является 192.168.0.89, а папку, как мы помним, я создал с именем linuxshare, тогда в Windows я перехожу в проводнике во вкладку «Сеть» и подключаюсь к этой папке следующим образом:
Вводим учётные данные (которые мы установили командой smbpasswd):
Видим содержимое совместно используемой папки, размещённой на Linux с помощью SMB:
Для подключения к сетевой папке из консоли Linux, запустите команду вида:
Для моего примера это:
После ввода пароля нам становится доступным содержимое сетевой папки.
Эту папку можно смонтировать как это было показано в предыдущем разделе, либо подключать в Windows как сетевой диск, как это было показано в первой части.
Связанные статьи:
- Руководство по SMB и Samba (100%)
- Аудит безопасности SMB и Samba (81.8%)
- SMB: настройка общей сетевой папки в Windows (67.6%)
- Всё о монтировании: от системного администрирования до IT криминалистики (56.4%)
- Азы работы в командной строке Linux (часть 5) (56.1%)
- Как установить CAL++ в Kali Linux 2 (RANDOM — 50%)
Рекомендуется Вам:
13 комментариев to SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux
просто фантастика. я столько шлака прочитал за последние несколько дней о том как получить доступ с линукса к расшареным папкам в винде. спасибо огромное за проделанную работу.
есть правда пара моментов:
1. при открытии файлов из расшареных папок винды в линуксе отсутствую права доступа,
2. автоматическое монтирование не происходить. монтиру.тся папки только командой «sudo mount -a»
тем не менее огромное спасибо.
Приветствую! По поводу второй проблемы — не происходит автоматическое монтирование. Одной из причин может быть то, что когда обрабатываются записи в файле /etc/fstab, ещё не выполнено подключение к сети — в этом случае монтирование завершится неудачей.
Но вы можете использовать опцию _netdev, которую можно указать в файле /etc/fstab, эта опция означает, что файловая система находится на устройстве, которому требуется доступ к сети (используется для предотвращения попыток системы смонтировать эти файловые системы до тех пор, пока в системе не будет включена сеть).
И ещё, конечно, Windows должен быть уже включен на момент загрузки Linux, поскольку монтирование из /etc/fstab срабатывает при загрузке системы.
Вы также можете посмотреть причины неудачного монтирования командой:
По поводу первой проблемы — посмотрите командой ls -l какому пользователю принадлежат файлы. Для файловой системы cifs/smb3 есть опции uid= и gid= — возможно с их помощью удастся решить проблему.
Папка, куда монтируется шара (например, /mnt/share/), должна принадлежать текущему пользователю Linux — если вы создавали папку без sudo, то она уже принадлежит обычному пользователю. Но если вы создавали папку с sudo (например, иначе это невозможно сделать в /mnt/), то вам нужно поменять её владельца командой вида::
Например, чтобы поменять владельца папки /mnt/share/ на текущего пользователя:
Здравствуйте. Огромное спасибо за развернутый ответ по моим вопросам.
1. по поводу поводу доступа к файлам: да действиетльно проблема в правах на линуксе. создал папки от обычного пользователя в них смонтировал шары и все открывается и редактируется(ну по крайней мере то что открывал и редактировал).
2. по поводу автоматического монтирования: да действительно похоже что проблема в подключении к сети. Wicd долго ищет сеть и подключается к ней, поэтому навреное и не монтируются папки автоматически.
назрел еще один вопрос: возможно ли сделать макрос или скрип для автоматической настройки параметров для доступа к удаленным папкам? это нужно для того чтобы настроить рабочий комп: не лазить в консоли с ковыряниями а просто файлик запустить чтобы он по сценарию и папки создал и смонтировал их и настройки сделал.
сейчас я все отрепетировал на тестовом ноуте и все работает в удовлетворительном режиме. Теперь мне надо те же манипуляции сделать с рабочим компом. есть ли смысл искать информацию по этому вопросу?
Приветствую! Не совсем понял, вам нужно выполнить одноразовое действие? Если так, ИМХО, быстрее получится настроить руками, чем программировать скрипт. В любом случае, как минимум, можно всё, что вы вводите в консоли, поместить в файл скрипта и запускать его вручную или добавить в автозагрузку. Для добавления строк в файл /etc/fstab можно использовать echo вместе с sudo. То есть заскриптовать можно абсолютно любые действия, но на отладку скрипта уйдёт больше времени, чем выполнить один раз вручную.
Если затруднение вызывают консольные текстовые редакторы (чтобы добавить строку в /etc/fstab), то самый простой из них это nano, или если доступ к удалённой системы осуществляется по SSH, то можно смонтировать удалённую файловую систему (без SMB, нужен только SSH) и работать с удалённой файловой системой как с локальной, подробности в «Сетевая файловая система SSHFS».
Здравствуйте. Благодарю за ответ.
Со скриптом удалось разобраться еще быстрей чем с доступом к папкам виндос.
Сделал самый простейший скрипт скопировав в него команды из вашей статьи. Теперь настройка доступа в линуксе занимает 15 сек. Спасибо за вашу работу!
все красиво, но где взять команды smbtree, smbclient . Под debian они не находятся.
Приветствую! Эти утилиты находятся в пакете smbclient. Статью я поправил.
спасибо, утилиты установились, но:
root@D:/home/avp# smbclient -L \\Larisa-pc/Фильмы -U alex
WARNING: The «syslog» option is deprecated
WARNING: The «syslog» option is deprecated
Enter NETLDM\alex’s password:
Sharename Type Comment
——— —- ——-
ADMIN$ Disk Удаленный Admin
C$ Disk Стандартный общий ресурс
D Disk
D$ Disk Стандартный общий ресурс
Downloads Disk
Downloads2 Disk
HP DJ 4720 series Printer HP DJ 4720 series
IPC$ IPC Удаленный IPC
print$ Disk Драйверы принтеров
Users Disk
Фильмы Disk
Reconnecting with SMB1 for workgroup listing.
protocol negotiation failed: NT_STATUS_CONNECTION_RESET
Failed to connect with SMB1 — no workgroup available
root@D:/home/avp#
имя рабочей группы проверил.
В вашем сообщении сказано, что на компьютере с Windows отключена SMB1.
Было бы неплохо, если вы начали чтение с первой части, там среди прочего есть:
Опционально: имеется несколько версий протокола SMB и по умолчанию первая версия отключена в современных системах Windows. Samba для некоторых функций использует первую версию, поэтому если у вас смешенная сеть с Linux, либо имеется устаревшее оборудование, которое поддерживает только SMB 1, то вы можете включить поддержку этой версии протокола. Для этого запустите cmd с правами администратора. Проверьте:
Но, на самом деле, почти с каждым большим обновлением Windows, Microsoft отключает разные вещи связанные с SMB в результате компьютеры в локальной сети перестают видеть друг друга и/или не получается подключиться к сетевым папкам, пока не включишь отключенные протоколы — есть мнение, что таким «незамысловатым» способом они продвигают свой OneDrive. Это я к тому, что хотя мои статьи довольно свежие и я всё перепроверял в последних версиях Windows, даже в них уже могло что-то устареть. Поэтому если возникнут ошибки — пишите, попытаемся разобраться и обновить материал в статьях.