Сделайте общими ваши личные файлы
Можно разрешить доступ к Общедоступной папке вашей Домашней папки с другого компьютера в сети. Настройте Доступ к личным файлам , чтобы разрешить сторонним пользователям доступ к этой папке.
Чтобы параметр Общий доступ к файлам стал видимым, в системе должен быть установлен пакет gnome-user-share .
- Откройте Обзор и начинайте вводить: Общий доступ .
- Нажмите Общий доступ , чтобы открыть этот раздел настроек.
Если в текстовом поле рядом с меткой Имя устройства предусмотрено редактирование, то вы можете изменить сетевое имя своего компьютера.
Будет показан адрес URL , по которому ваша Общедоступная папка станет доступна для пользователей других компьютеров.
Безопасность
Требуется пароль
Если вы хотите установить пароль на доступ других пользователей к Общедоступной папке, переведите переключатель Требовать пароль в положение «включено». Без этого параметра любой сторонний пользователь сможет попробовать просмотреть вашу Общедоступную папку.
По умолчанию эта опция отключена, но настоятельно рекомендуется включить её и выбрать надёжный пароль.
Сеть
В разделе Сети перечислены сети, к которым вы в данный момент подключены. Используйте переключатель рядом с каждой из них, чтобы выбрать, где можно поделиться вашими личными файлами.
Дополнительная информация
- Настройки общего доступа — Поделитесь своим экраном, медиафайлами и другими файлами по локальной сети или посредством Bluetooth.
- Общий доступ — Общий доступ к рабочему столу, файлам или медиаданным.
You can choose the displayed language by adding a language suffix to the web address so it ends with e.g. .html.en or .html.de.
If the web address has no language suffix, the preferred language specified in your web browser’s settings is used. For your convenience:
[ Change to English Language | Change to Browser’s Preferred Language ]
The material in this document is available under a free license, see Legal for details.
For information on contributing see the Ubuntu Documentation Team wiki page. To report errors in this documentation, file a bug.
Как сделать общую сетевую папку в Linux (настройка SMB в Linux)
Начните с установки пакетов samba и smbclient.
В Debian, Linux Mint, Ubuntu, Kali Linux и их производных для установки samba выполните команду:
sudo apt install samba smbclient
В Arch Linux, BlackArch и их производных выполните команду:
sudo pacman -S samba smbclient
Следующая команда не сработает, если отсутствует файл /etc/samba/smb.conf. Если у вас тоже нет этого файла, то создаёте его заглушку — к настройке самого файла smb.conf мы вернёмся позже:
sudo touch /etc/samba/smb.conf
Теперь нужно добавить пароль для пользователя Samba. Действует следующее правило: имя пользователя должно быть таким же, как у вашего текущего пользователя, а пароль можно установить иной, отличный от вашего системного пароля.
Для установки пароля Samba, выполните следующую команду:
sudo smbpasswd -a $USER
Если вы хотите, чтобы у пользователя не было пароля, то укажите опцию -n.
Создайте папку, которая станет совместно используемой:
mkdir ~/linuxshare
Узнаем абсолютный путь до папки ~/linuxshare:
realpath ~/linuxshare
/home/mial/linuxshare
Откройте для редактирования файл /etc/samba/smb.conf:
sudo gedit /etc/samba/smb.conf
Добавьте туда строки вида:
[ИМЯ_ПАПКИ] comment = Samba на Linux path = /home/ИМЯ_ПОЛЬЗОВАТЕЛЯ/ИМЯ_ПАПКИ valid users = ИМЯ_ПОЛЬЗОВАТЕЛЯ read only = no browsable = yes
Обратите внимание, что все пробелы в строках выше являются обязательными.
Для моих данных это строки:
[linuxshare] comment = Samba на Linux path = /home/mial/linuxshare valid users = mial read only = no browsable = yes
Теперь запустим службу SMB:
sudo systemctl start smb.service
Для добавления службы в автозагрузку выполните:
sudo systemctl enable smb.service
Для подключения к этой общей сетевой папке на Linux нужно использовать IP адреса компьютера Linux.
Создадим файл, чтобы сетевая папка не была пустой:
echo "Документ на Linux" > ~/linuxshare/document.txt
Посмотрите локальный IP адрес компьютера, на котором запущена Linux:
ip a
У меня этим IP является 192.168.0.89, а папку, как мы помним, я создал с именем linuxshare, тогда в Windows я перехожу в проводнике во вкладку «Сеть» и подключаюсь к этой папке следующим образом:
\\192.168.0.89\linuxshare
Вводим учётные данные (которые мы установили командой smbpasswd):
Видим содержимое совместно используемой папки, размещённой на Linux с помощью SMB:
Для подключения к сетевой папке из консоли Linux, запустите команду вида:
sudo smbclient //IP_АДРЕС/Папка -U ПОЛЬЗОВАТЕЛЬ
Для моего примера это:
sudo smbclient //192.168.0.89/linuxshare -U mial
После ввода пароля нам становится доступным содержимое сетевой папки.
Связанные статьи:
- Как смонтировать сетевую папку Windows/Samba в Linux (100%)
- Как подключиться к сетевой папке в командной строке Linux (100%)
- Где Samba хранит пароли. Как извлечь имена пользователей и паролей Samba (РЕШЕНО) (60.8%)
- Какие есть полезные инструменты с интерфейсом командной строки для системных администраторов Linux (50%)
- Как в Linux определяется порядок источников для разрешения имён (приоритет файла hosts и DNS) (50%)
- LibreOffice открывает sftp соединение (РЕШЕНО) (RANDOM — 27.5%)
Рекомендуемые статьи:
5 Комментарии
Андрей 22.07.2023 в 18:23
Здравствуйте. Во первых после ввода комманды sudo systemctl start smb.service получаю ошибку Failed to start smb.service: Unit smb.service not found.
Наверное правильнее smbd.service. Поэтому и комманда sudo systemctl enable smb.service тоже не правильная. Во вторых. После всех действий не подключается из Widows 10, после ввода пароля. Пишет нет доступа. Папка видна, но не открывается. Использую Linux Mint 21.2 xfce
Alexey (Автор записи) 24.07.2023 в 05:23
Наверное правильнее smbd.service.
Приветствую! Название служб в дистрибутивах на основе Debian (как у вас) и на основе Arch Linux (который я использую для инструкций) может различаться. Я проверил в последней версии Debian: работают оба названия smb и smbd (то есть со временем это «нововведение» доберётся и до Linux Mint, которая основывается на Ubuntu, которая основывается на Debian). Если в вашей ОС работает только smbd, то используйте это имя службы — это одно и то же. Что касается ошибки,
Множественное подключение к серверу или к общим ресурсам одним пользователем с использованием более одного имени пользователя не разрешено. Отключите все предыдущие подключения к серверу или общим ресурсам и повторите попытку.
То попробуйте в Windows выполнить команды:
net stop workstation /y net start workstation
Либо если вы предпочитаете PowerShell то выполните команду:
Get-Service workstation | Restart-Service -Force
Как расшарить папку в линукс
CIFS (Common Internet File System) – это популярный протокол обмена файлами в Интернете. Этот протокол и позволит пользователям ОС Linux получить доступ к общей папке Windows.
CIFS – это реализация SMB (Server Message Block) – протокола, используемого для совместного использования сетевых файлов. Но он устарел.
В этой статье мы по шагам пройдем все этапы установки и настройки CIFS, чтобы подключиться к сетевому ресурсу Windows на ОС Linux.
Установка CIFS
Сейчас мы установим пакет cifs-utils на Ubuntu Linux (точно так же можно сделать на всех Debain-подобных ОС).
$ sudo apt-get update $ sudo apt-get install cifs-utils
Монтируем Windows Share (сетевой ресурс)
Сейчас мы разберем на примерах, как монтировать общую папку Windows вручную и автоматически.
Создадим на нашем Linux директорию, к которой мы будем монтировать сетевой ресурс. Назовем ее myshare и расположена она будет в каталоге /mnt
$ sudo mkdir /mnt/myshare
Сетевой ресурс (шара) Windows может быть примонтирован к ОС Ubuntu или Debian с помощью следующей команды:
$ sudo mount -t cifs -o username=user,password=Passw0rd //WINDOWS_HOST_IP/share /mnt/myshare
WIN_HOST_IP – это IP адрес хоста Windows, на котором расположена общая папка
share – имя сетевого ресурса
user – наш пользователь и Passw0rd – пароль с которыми мы подключемся к шаре.
Если пользователь доменный, то необходимо в опциях (-o) указать домен.
$ sudo mount -t cifs -o username=user,password=Passw0rd,domain=domain_name //WIN_HOST_IP/share /mnt/myshare
По-умолчанию сетевой ресурс монтируется с полными правами (rwx или 777). Если Вы хотите установить иные права, используйте опции dir_mode и file_mode.
$ sudo mount -t cifs -o username=user,password=Passw0rd,dir_mode=0755,file_mode=0755 //WIN_HOST_IP/share /mnt/myshare
Так же Вы можете установить владельцев uid (id пользователя) и gid (id группы).
$ sudo mount -t cifs -o username=user,password=Passw0rd,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_HOST_IP/share /mnt/myshare
Если после выполнения предыдущих команд Вы не получили никаких ошибок, то можете с помощью команды df -h убедиться, что сетевой ресурс успешно примонтирован к нашему ПК на Linux. В примере WIN_HOST_IP = 192.168.1.100 и имя общей папки share
$ df -h Filesystem Size Used Avail Use% Mounted on udev 3,9G 0 3,9G 0% /dev tmpfs 787M 2,2M 785M 1% /run /dev/sda2 450G 23G 405G 6% / tmpfs 3,9G 705M 3,2G 18% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 3,9G 0 3,9G 0% /sys/fs/cgroup //192.168.1.100/share 1000G 108G 82G 11% /mnt/myshare
Безопасность учетных данных при монтировании через CIFS
В этом разделе опишем, как лучше всего передавать учетные данные (имя пользователя, пароль, домен) при монтировании сетевого ресурса к ОС на базе Линукс.
Создайте файл с учетными данными для cifs: /etc/cifs-credentials
Внутрь поместите следующее содержимое:
username=user password=Passw0rd domain=domain_name
Задайте права для этого файла:
$ sudo chmod +rw /etc/cifs-credentials
Теперь мы можем подключить общую папку такой командой:
$ sudo mount -t cifs -o credentials=/etc/cifs-credentials //WIN_HOST_IP/share /mnt/myshare
Как сделать автоматическое монтирование общей папки Windows
В примерах выше, после того, как Вы перезагрузите свой ПК, сетевой ресурс не примонтируется. Поэтому сделаем так, чтобы шара подключалась автоматически. В Linux это делается через файл /etc/fstab. Откройте этот файл любимым редактором.
$ sudo vim /etc/fstab
И добавьте такую строку:
//WIN_HOST_IP/share /mnt/myshare cifs credentials=/etc/cifs-credentials,file_mode=0755,dir_mode=0755 0 0
Следующей командой запустим монтирование всех точек, описанных в /etc/fstab
$ sudo mount -a
Теперь наш удаленный сетевой ресурс будет доступен даже после перезагрузки.
Как размонтировать общую папку CIFS
Размонтирование производится таким же способом, как и обычно мы жто делаем с дисками:
$ sudo umount /mnt/myshare
Часто бывает так, что сетевой ресурс занят каким-то процессом и тогда Вы получите ошибку при попытке размонтирования, тогда запустите команду с ключем -l (–lazy)
$ sudo umount -t cifs -l /mnt/myshare
Итог
Итак, в этой статье мы рассмотрели, как быстро примонтировать удаленную сетевую папку, которая находится на хосте с Windows, к нашему хосту на Linux с помощью CIFS. Если у Вас остались какие-либо вопросы, пожалуйста, пишите в комментариях.
Автор
UNLIX
Возможно Вам будет это интересно
Как обновить Ubuntu до последней версии с 18.04 (или 19.10) до 20.04
Flameshot – замена Lightshot и ему подобных для Linux
Docker: основные команды
10 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 Все бы хорошо, но не успевает сетевуха поднять линк дальше вручную “sudo mount -a” и все взлетает [ 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 вот вопрос, как бы заставить монтироваться после поднятия линка и получение адреса ноут по wifi нормально отрабатывает, а системник с обычной сетевухой нет
Как расшарить папку Linux без пароля
Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь — поддержите материально автора. Это легко сделать закинув денежек на Yoomoney № 410011416229354.
Или на телефон +7(928)274-0281.
Даже небольшая сумма может помочь написанию новых статей 🙂
Или поделитесь ссылкой на эту статью со своими друзьями.
В этой статье будет рассмотрен наиболее простой случай настройки доступа к Linux файлам. Когда нужно предоставить анонимный доступ к общим ресурсам Linux. Это распространенная ситуация в домашних сетях и в сети небольшого офиса. Расшарить папку Linux по сети можно используя несколько протоколов. Но чаще всего это делается через сервер Samba с использованием протокола SMB (CIFS). Именно этот способ и будет описан в статье.
Частое использование Samba и протокола SMB связано с тем, что обычно нужно на Linux расшарить папку для Windows. А протокол SMB (CIFS) используется в операционных системах Windows для организации общего доступа к файлам и принтерам. Компьютер под управлением Linux, на котором установлен и настроен сервер Samba, в локальной сети выглядит точно так же как и компьютер под управлением Windows.
Итак, что, и в какой последовательности необходимо сделать для того чтобы в Linux предоставить сетевой доступ к папке и файлам?
Установка Samba
Это первый шаг. В некоторых дистрибутивах установку Samba можно указать в параметрах установщика, как например Alt Linux или Rosa Linux. Но в большинстве дистрибутивов Samba устанавливается отдельно, при необходимости. Например в Ubuntu установка Samba выполняется автоматически, если вы открываете общий доступ к папке через файловый менеджер Наутилус.
В общем случае установка Samba очень проста — обычно установочный пакет так и называется — samba. В каждом дистрибутиве Linux есть программа для управления программными пакетами. Которая показывает установленные пакеты и позволяет устанавливать новые пакеты. Например в дистрибутиве Ubuntu это три графические программы — Gdebi, Synaptic и Software-center. И две консольные — apt и dpkg.
Итак, шаг первый — проверить установлен ли сервер Samba и если нет тогда установить его.
Настройка доступа в Samba без пароля
Шаг второй. После установки сервера Samba необходимо его настроить. В самом простейшем случае нужно настроить две вещи:
- Указать папку, которая будет доступна по сети.
- Указать способ доступа к компьютеру через сеть (способ аутентификации для входа на компьютер через сеть).
С первым пунктом, я думаю, все понятно. Второй пункт чуть сложнее. Samba может предоставлять сетевой доступ к компьютеру Linux либо с авторизацией (с указанием логина и пароля) либо анонимно (без логина и пароля). Как и было написано в начале статьи, я опишу настройку анонимного доступа.
Настроить сервер Samba можно через GUI интерфейс или через непосредственное редактирование файла конфигурации Samba.
Настройка Samba через GUI интерфейс
Чаще всего для этого используется программа system-config-samba. Она есть во всех популярных дистрибутивах Linux. Но не во всех дистрибутивах она устанавливается автоматически (из коробки). Так что нужно проверять ее наличие и устанавливать, если ее нет. Эта программа позволяет не только указать общую папку, но и добавлять Samba-пользователей и управлять некоторыми параметрами сервера Samba.
Параметры, изменяемые через эту программу, записываются в файл глобальной настройки Samba — /etc/samba/smb.conf.
В графической оболочке GNOME есть файловый менеджер Наутилус в котором указать общий доступ к папке можно непосредственно в свойствах этой папки (пакет nautilus-share).
Параметры, изменяемые через файловый менеджер Наутилус, записываются в файл ~/.gnome2/nautilus-share-modified-permissions и в папку /var/lib/samba/usershares.
Настройка Samba через файл конфигурации
Файл конфигурации Samba обычно находится в папке /etc/samba и называется smb.conf (полный путь к файлу /etc/samba/smb.conf). Через этот файл можно полностью управлять настройками сервера Samba. Однако редактировать этот файл нужно осторожно.
Samba — настройка доступа без пароля
На самом деле протокол SMB не дает анонимного доступа к файлам и папкам. Он предоставляет два способа авторизации:
- Авторизация при сетевом входе на компьютер.
- Авторизация при доступе к разделяемому ресурсу (папке, файлу).
Тем не менее, комбинируя параметры Samba и параметры файловой системы можно получить псевдо анонимный доступ — то есть использование сетевых ресурсов без учетной записи пользователя и без пароля.
Если настраивать Самба через файл smb.conf, тогда нужно, в секции [global], указать следующие параметры:
- security = user
- map to guest = bad user (или bad password)
В случае значения bad user, при сетевом входе, будет запрошено имя пользователя и пароль. Но их можно указать любые «от фонаря». И тем не менее вход будет выполнен. В случае значения bad password не будет запроса имени пользователя и пароля.
Параметр map to guest указывает Самбе, что всех кто не смог авторизоваться нужно тем не менее впускать в систему, но с правами гостя.
Далее в секции, которая описывает общую папку Linux, нужно указать четыре параметра:
- [lan]
- path = /home/user/lan
- guest ok = yes
- read only = no
- create mask = 0777
- directory mask = 0777
Это пример такой секции в файле smb.conf. Заголовок секции определяет имя папки которое будет видно в сети. Параметр path определяет саму папку в файловой системе Linux. А параметры guest ok и read only разрешают запись в папку и гостевой доступ к папке. И последние параметры, create mask и directory mask, указывают, что все файлы и папки, которые будут там созданы через сеть (сетевыми пользователями) должны получить атрибуты полного доступа в файловой системе Linux.
Последние два параметра очень важны, чтобы у всех сетевых пользователей была возможность изменять файлы в этой сетевой папке Linux. Если не указать параметры create mask и directory mask, тогда новые файлы будут доступны только тем кто войдет в эту папку гостем. А например уже локальный пользователь Linux не сможет их изменять.
Вот минимальная конфигурация Samba для анонимного доступа к файлам Linux.
Разрешения Linux для доступа без пароля
Во-первых нужно установить полные права на папку Linux, которая будет сетевой. Полные права доступа на папку в Linux это разрешение на исполнение и запись для: владельца, группы и всех остальных. В Linux широко используется цифровое сокращение для обозначения прав доступа — полный доступ для папки это 777. Если такие права не установить на папку, тогда сетевые пользователи либо не смогут войти в эту папку, либо не смогут в ней создавать новые файлы или папки.
Установить разрешения на файл (папку) в Linux можно через файловый менеджер (через свойства папки) или в терминале, программой chmod.
Если ограничиться только лишь настройкой Samba и установкой разрешений на папку, тем не менее возможно появление проблем с доступом к отдельным файлам в этой сетевой папке Linux.
- если локальный пользователь Linux войдет в эту папку через файловый менеджер и создаст в ней новый файл;
- если локальный пользователь Linux скопирует в эту папку файл из другой своей локальной папки.
В обоих случаях новый файл будет недоступен для редактирования сетевыми пользователями. Почему это произойдет? Новый файл получит права доступа Linux 644, то есть полный доступ только для владельца файла. А если файл будет скопирован из другой папки, то он сохранит свои права и после копирования.
Что делать для решения этой проблемы?
Есть разные способы решения. Кто-то советует периодически (например по заданию cron) изменять права всем файлам в папке на 666 (права полного доступ для всех без исключения). Это работает, но на мой взгляд не вариант. Я считаю что такое присвоение прав должно происходит автоматически, без лишних телодвижений.
Другие люди советуют включить ACL на файловой системе Linux и затем указать ACL по умолчанию для сетевой папки (со значением 777).
Это работает, но только наполовину. Если локальный пользователь сам создаст новый файл, этот файл получит атрибуты 666. Но если локальный пользователь скопирует файл из другой папки, то файл сохранит свои старые атрибуты.
Однако есть два способа которые полностью решают проблему.
Первый способ, самый простой.
Локальному пользователю, нужно заходить в сетевую папку тоже через сеть! В этом случае все его операции в папке будут проходить через сервер Samba. А Самба настроена на полный доступ.
Достоинство этого способа в том, что ничего не нужно делать дополнительно. Недостатка два:
- Скорость файловых операций для локального пользователя будет ниже чем если бы он зашел в сетевую папку обычным образом.
- Локальный пользователь может забыть и войти в папку обычным образом.
Второй способ — настройка сетевого доступа через bindfs
Использовать bindfs. Для этого нужно установить этот пакет и затем вручную или автоматически смонтировать сетевую папку через bindfs.
Вот пример автоматического монтирования через fstab:
bindfs#/home/user/lan /home/user/lan fuse perms=0777 0 0
В примере папка монтируется сама в себя, но можно указать другую точку монтирования. Важно указать параметр монтирования perms=0777 — это полный доступ на все файлы и папки.
При использовании bindfs, способ доступа к папке уже не имеет значения, локально выполняется операция или через сеть, в любом случае у объектов внутри этой папки будут атрибуты полного доступа.
В этом случае параметры create mask и directory mask в файле smb.conf уже не нужны.
Резюме
Еще раз напоминаю, что это простейшая конфигурация для полностью доверенной локальной сети. В которой не нужны никакие ограничения по доступу к файлам.
Но в том случае, когда доступ нужно разграничивать, настройка будет похожа. Нужно лишь добавлять пользователей в Samba, установить нужные разрешения в файловой системе Linux. Быть может даже создать специальную локальную группу пользователей Linux, в которую продублировать всех пользователей Самбы.
Настройка доступа без пароля для других ОС
Если вы живете в г. Краснодар и вам необходимо настроить локальную сеть в Linux
Закажите настройку Linux, FreeBSD в Краснодаре
Иван Сухов, 2015, 2018 г.
Поделитесь этим сайтом с друзьями!
Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь — поддержите материально автора. Это легко сделать закинув денежек на Yoomoney № 410011416229354.
Или на телефон +7(928)274-0281.
Даже небольшая сумма может помочь написанию новых статей 🙂
Или поделитесь ссылкой на эту статью со своими друзьями.