Как в Linux сделать общую сетевую папку
В Linux можно легко создать общую сетевую папку, которая будет доступна для всех устройств в сети. Это может быть полезно, если вы хотите разделить файлы между несколькими устройствами или создать централизованное хранилище для вашей семьи или офиса.
Создание общей сетевой папки в Linux может быть достигнуто несколькими способами, но мы рассмотрим наиболее распространенный метод, используя Samba.
Шаг 1: Установите Samba
Первым шагом является установка Samba на вашем Linux-сервере. Samba — это свободная реализация протокола SMB/CIFS, который позволяет общаться между компьютерами в сети.
Вы можете установить Samba, используя менеджер пакетов вашего дистрибутива Linux. Например, если у вас есть Ubuntu, вы можете выполнить следующую команду:
sudo apt-get install samba
Шаг 2: Создайте общую папку
После установки Samba вы можете создать общую папку, которую вы хотите сделать доступной в сети. Для этого создайте новую папку в любом месте на вашем сервере. Например, вы можете создать папку с именем » shared » в домашней директории:
mkdir ~/shared
Шаг 3: Настройте Samba
Теперь, когда у вас есть общая папка, вы должны настроить Samba, чтобы разрешить доступ к этой папке другим устройствам в сети.
Откройте файл конфигурации Samba, который находится в /etc/samba/smb.conf , с помощью любого текстового редактора. Например, вы можете выполнить следующую команду, чтобы открыть этот файл в редакторе Nano:
sudo nano /etc/samba/smb.conf
В файле smb.conf найдите раздел [global] и добавьте следующие строки в конец этого раздела:
workgroup = WORKGROUP
security = user
Замените «WORKGROUP» на имя вашей рабочей группы, если она отличается от значения по умолчанию. Это позволит вашему серверу Samba быть частью рабочей группы и облегчит доступ к общим ресурсам.
Далее, добавьте следующие строки в конец файла smb.conf, чтобы создать новый раздел для общей папки:
[shared]
path = /home//shared
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no
Замените «/home//shared» на путь к вашей общей папке. Это указывает Samba на местоположение папки, которую вы хотите сделать общей в сети.
Шаг 4: Создайте пользователей Samba
Теперь вам необходимо создать пользователей Samba, которые будут иметь доступ к общей папке. Вы можете использовать существующих пользователей Linux или создать новых пользователей Samba.
Чтобы создать нового пользователя Samba, выполните следующую команду:
sudo smbpasswd -a
Замените на имя пользователя, которое вы хотите создать.
Шаг 5: Перезапустите Samba
После настройки Samba вам нужно перезапустить службу Samba, чтобы внести изменения в силу. Вы можете сделать это, выполните следующую команду:
sudo systemctl restart smbd
Шаг 6: Подключитесь к общей папке
Теперь вы можете подключиться к общей папке на вашем Linux-сервере с другого устройства в сети.
На Windows-компьютере вы можете открыть Проводник и выбрать «Сеть» в левой панели. Вы должны увидеть ваш Linux-сервер в списке устройств. Щелкните правой кнопкой мыши на сервере и выберите «Подключить сетевой диск». Затем выберите букву диска и введите путь к вашей общей папке, например, \\linux-server\shared.
На Linux-компьютере вы можете использовать любой файловый менеджер, чтобы подключиться к общей папке. В Nautilus, выберите «Серверы» в левой панели и введите адрес вашего Linux-сервера, например, smb://linux-server/shared.
В заключение, создание общей сетевой папки в Linux не является сложной задачей. С помощью Samba вы можете легко настроить доступ к общим ресурсам на вашем Linux-сервере для других устройств в сети.
Linux: подключить общую сетевую папку Windows по SMB (CIFS)
В этой статье мы рассмотрим, как в Linux смонтировать общую сетевую папку, расположенную на хосте Windows. В Windows для доступа к общим сетевым папкам используется протокол SMB (Server Message Block), который ранее назывался CIFS (Сommon Internet File System). В Linux для доступа к сетевым папкам Windows по протоколу SMB можно использовать клиент cifs-utils или 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
Создайте точку монтирования:
Теперь вы можете смонтировать сетевую папку с компьютера 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 строку:
Чтобы не указывать учетные данные пользователя Windows в команде монтирования сетевой папки, их можно сохранить в файле.
username=User03 password=PasswOrd1
Для подключения к папке под анонимным пользователем:
Если нужно указать учетную запись пользователя из определенного домена Active Directory, добавьте в файл третью строку:
$ chmod 600 ~/.windowscredentials
Теперь при подключении сетевой папки вместо явного указания имени пользователя и пароля можно указать путь к файлу:
$ sudo mount -t cifs -o credentials=/home/sysops/.windowscredentials,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share
Отмонтировать сетевую SMB папку:
Автоматическое монтирование сетевой папки в Linux
Можно настроить автоматическое монтирование сетевой папки Windows через /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
Чтобы сразу смонтировать сетевую папку, выполните:
Linux: подключиться к сетевой папке с помощью клиента samba
Установите в Linux клиент samba:
- В Ubuntu/Debian: $ sudo apt-get install smbclient
- В CentOS/Oracle/RHEL: # dnf install smbclient
Для вывода всех SMB ресурсов в локальной сети:
Вывести список доступных SMB папок на удаленном хосте Windows:
Если в 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
После успешного входа появится приглашение:
Вывести список файлов в сетевой папке:
Скачать файл из сетевой папки 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.