Как найти сетевую папку в linux

В этой статье мы рассмотрим, как в Linux смонтировать общую сетевую папку, расположенную на хосте Windows. В Windows для доступа к общим сетевым папкам используется протокол SMB (Server Message Block, ранее назывался CIFS, Сommon Internet File System). В Linux для доступа к сетевым папкам Windows по протоколу SMB можно использовать клиент cifs-utils или Samba.

    Содержание:

  • Смонтировать сетевую папку в Linux с помощью cifs-util
  • Linux: подключиться к сетевой папке с помощью клиента samba

Совет. Для доступа к сетевым папкам по SMB/CIFS используется порт TCP/445. Для разрешения имени используются UDP 137, 138 и TCP 139. Если эти порты закрыты, вы сможете подключиться к сетевой папке Windows только по IP адресу.

Смонтировать сетевую папку в Linux с помощью cifs-util

Вы можете смонтировать сетевую папку, находящуюся на Windows хосте, с помощью утилит из пакета cifs-util. Для установки пакета выполните команду:

  • В Ubuntu/Debian: apt-get install cifs-utils
  • В CentOS/Oracle/RHEL: dnf install cifs-utils

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

mount.cifs //192.168.200.30/docs /mnt

В предыдущем примере подразумевалось, что к общей сетевой папке на Windows предоставлен анонимный доступ. Если для доступа нужно аутентифицироваться под пользователем, используйте команду:

mount.cifs //192.168.200.30/docs /mnt -o user=localuser1

Если для подключения нужно использоваться доменную учетную запись пользователя:

mount.cifs //192.168.200.30/docs /mnt -o user=aivanov,domain=vmblog.ru

Совет. Если в имени сетевой шары есть пробелы, нужно заменить их на 40:

mount.cifs //192.168.200.30/shared40docs /mnt -o user=localuser1

Вы можете монтировать сетевую папку автоматически с помощью fstab. Для этого создайте файл с именем пользователя и паролем:

vim /root/.smbshare

Укажите имя пользователя, пароль и домен AD:

username=avvanov
password=Pass123-y
domain=vmblog.ru

И добавьте строку подключения SMB каталог в файл /etc/fstab

//192.168.200.30/docs /mnt cifs user,rw,credentials=/root/.smbshare 0 0

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

Вы можете указать версию протокола SMB, которую нужно использовать для подключения (версия SMB 1.0 считается небезопасной и отключена по-умолчанию в современных версиях Windows). Чтобы смонтировать сетевую папку по протоколу SMB 3.0, используйте строку:

//192.168.200.30/docs /mnt cifs user,rw,credentials=/root/.smbshare,vers=3.0 0 0

Если на стороне хоста Windows используется несовместимая (старая версия) SMB, при подключении появится ошибка:

mount error(112): Host is down

Чтобы сразу смонтировать сетевую папку, выполните:

mount -a

Linux: подключиться к сетевой папке с помощью клиента samba

Установите в Linux клиент samba:

  • В Ubuntu/Debian: sudo apt-get install smbclient
  • В CentOS/Oracle/RHEL: dnf install smbclient

Разрешите доступ для клиента, добавив правило в файервол:

firewall-cmd --add-service samba-client --permanent; firewall-cmd –reload

Для вывода всех SMB ресурсов в локальной сети:

smbtree -N

Чтобы обнаружить список доступных SMB шар на удаленном хосте под определенной учетной записью, выполните команду:

smbclient –L \\192.168.200.30 –U 'administrator'

подключение сетевой папки в linux с помощью smbclient

Чтобы вывести список опубликованных в Windows сетевых принтеров:

net share -l

Для подключения к сетевой папке Windows используется команда:

smbclient -U usernam1 \\192.168.200.30\shared_docs

Для анонимного доступа:

smbclient -U Everyone \\192.168.200.30\shared_docs

При использовании команды smbclient может появиться ошибка:

Unable to initialize messaging context
smbclient: Can't load /etc/samba/smb.conf - run testparm to debug it

Чтобы исправить ошибку, создайте файл /etc/samba/smb.conf.

В сегодняшней статье речь пойдет о подключении к папке (файловому хранилищу) Windows (Samba) из Ubuntu 20.04 Long-Term Support (LTS)

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

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

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

Подключение к папке Windows из Ubuntu по протоколу SMB

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

Подключение к папке Windows из Ubuntu по протоколу SMB

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

Подключение к папке Windows из Ubuntu по протоколу SMB

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

Подключение к папке Windows из Ubuntu по протоколу SMB
Подключение к папке Windows из Ubuntu по протоколу SMB

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

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

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

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

Подключение к папке Windows из Ubuntu по протоколу SMB

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

Подключение к папке Windows из Ubuntu по протоколу SMB

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

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

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

Подключение к папке Windows из Ubuntu по протоколу SMB

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

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

Подключение к папке Windows из Ubuntu по протоколу SMB

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

Подключение к папке Windows из Ubuntu по протоколу SMB

Результат:

Подключение к папке Windows из Ubuntu по протоколу SMB

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

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

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

Подключение к папке Windows из Ubuntu по протоколу SMB

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

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

Подключение к папке Windows из Ubuntu по протоколу SMB
Подключение к папке Windows из Ubuntu по протоколу SMB

Надеемся у вас получилось подключение к папке Windows из Ubuntu

Читай также как подключить файл подкачки в Ubuntu

Попробуй бесплатно наши курсы по Linux и devOPS на:yodo.im/start

В Linux терминале есть несколько способов подключения к сетевой папке. В этой статье мы рассмотрим два наиболее распространенных способа: через протокол SMB/CIFS и через протокол SSHFS.

Подключение к сетевой папке через протокол SMB/CIFS

SMB/CIFS – это протокол для обмена файлами и папками между компьютерами в сети. Для подключения к сетевой папке через этот протокол необходимо выполнить следующие шаги:

  1. Установить пакеты smbclient и cifs-utils. Для этого в терминале необходимо выполнить следующую команду:

sudo apt-get install smbclient cifs-utils

  1. Создать папку, в которую будет подключаться сетевая папка. Например, папку с именем «shared»:

mkdir ~/shared

  1. Подключиться к сетевой папке с помощью утилиты smbclient, указав имя сервера и путь до папки. Например, если сетевая папка находится на сервере с именем «server» и ее путь до нее «/shared_folder», то команда будет выглядеть так:

smbclient //server/shared_folder -U username

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

  1. Смонтировать сетевую папку в созданную ранее папку «shared». Для этого выполните следующую команду:

sudo mount -t cifs //server/shared_folder ~/shared -o username=username,password=password

Где «server/shared_folder» – путь до сетевой папки, «~/shared» – путь до локальной папки, которая будет использоваться для монтирования, а «username» и «password» – имя пользователя и пароль для подключения к сетевой папке.

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

Подключение к сетевой папке через протокол SSHFS

SSHFS – это протокол для монтирования удаленной файловой системы через SSH-туннель. Для подключения к сетевой папке через этот протокол необходимо выполнить следующие шаги:

  1. Установить пакет sshfs. Для этого в терминале необходимо выполнить следующую команду:

sudo apt-get install sshfs

  1. Создать папку, в которую будет подключаться сетевая папка. Например, папку с именем «shared

mkdir ~/shared

  1. Подключиться к удаленному серверу через SSH и монтировать удаленную папку в созданную ранее папку «shared». Для этого выполните следующую команду:

sshfs username@server:/path/to/folder ~/shared

Где «username» – имя пользователя на удаленном сервере, «server» – IP-адрес или доменное имя удаленного сервера, «/path/to/folder» – путь до сетевой папки на удаленном сервере, «~/shared» – путь до локальной папки, которая будет использоваться для монтирования.

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

Чтобы отмонтировать сетевую папку, выполните следующую команду:

fusermount -u ~/shared

Где «~/shared» – путь до монтированной папки.

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

  1. Подключение к сетевой папке через протокол SMB/CIFS:

sudo apt-get install smbclient cifs-utils
mkdir ~/shared
smbclient //server/shared_folder -U username
sudo mount -t cifs //server/shared_folder ~/shared -o username=username,password=password

  1. Подключение к сетевой папке через протокол SSHFS:

sudo apt-get install sshfs
mkdir ~/shared
sshfs username@server:/path/to/folder ~/shared

В заключение

В Linux терминале подключение к сетевой папке может быть осуществлено через протокол SMB/CIFS или через протокол SSHFS. Для подключения к сетевой папке необходимо установить соответствующие пакеты, создать папку, в которую будет произведено подключение, и выполнить команды для подключения к сетевой папке. После подключения к сетевой папке вы можете работать с файлами в ней так, как будто они находятся на вашем компьютере.

Пожалуй нет ни одного офиса, в котором не применялись бы общие ресурсы локальной сети, будь то папки или принтеры. Крупные и средние компании используют возможности Active Directory, компании поменьше – используют штатные средства ОС Windows или Samba, но на серверах под управлением ОС Linux. Рассмотрим все случаи, как настроить Samba.

Что такое Samba?

Samba – серверное приложение, реализующее доступ клиентских терминалов к папкам, принтерам и дискам про протоколу SMB/CIFS.

Описание структуры Samba

Настройка общих папок в 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:

mkdir /media/samba

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

Создаем каталог для всех пользователей:

mkdir /media/samba/public

Изменим права доступа к каталогу:

chmod -R 0755 /media/samba/public

Также следует воспользоваться командой chown для смены владельца и/или группы.

Создаем директорию для ограниченного круга лиц:

mkdir /media/samba/private

С помощью системных инструментов создадим группу пользователей:

groupadd smbgrp

Добавляем пользователей Samba:

useradd user1

Созданных пользователей добавляем в группу:

usermod -aG smbgrp user1

Изменим группу, которой принадлежит приватная директория:

chgrp smbgrp /media/samba/private

С помощью инструментов Samba создадим пароль для добавленного пользователя:

smbpasswd -a user1

С помощью текстового редактора, например, nano, редактируем конфигурационный файл samba:

nano /etc/samba/smb.conf

Удаляем все строки из файла. Вставляем следующие:

[global]
workgroup = WORKGROUP
security = user
map to guest = bad user
wins support = no
dns proxy = no
[public]
path = /media/samba/public
guest ok = yes
force user = nobody
browsable = yes
writable = yes
[private]
path = /media/samba/private
valid users = @smbgrp
guest ok = no
browsable = yes
writable = yes

Сохраняем используя сочетание 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” @ (“собака”).

Важно! Имя директории общего доступа, отображаемое пользователям, равно имени секции в которой оно описано.

Проверяем настройки с помощью команды:

testparm -s

Перезапускаем сервер:

service smbd restart

service nmbd restart

Настроим межсетевой экран. Для этого в правилах откроем TCP-порты 139 и 445, а также UDP-порты 137 и 138, но только для тех подсетей, которым доверяете. Для указания собственного диапазона адресов, замените значение после ключа “-s”:

iptables -A INPUT -p tcp -m tcp --dport 445 -s 10.0.0.0/24 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 139 -s 10.0.0.0/24 -j ACCEPT

iptables -A INPUT -p udp -m udp --dport 137 -s 10.0.0.0/24 -j ACCEPT

iptables -A INPUT -p udp -m udp --dport 138 -s 10.0.0.0/24 -j ACCEPT

Для сохранения правил и применения их после перезагрузки сервера следует воспользоваться пакетом iptables-persistent. Установим его:

apt-get install iptables-persistent

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

Для проверки существующих правил используем:

iptables -L

Настройка общих папок в Linux

По аналогии с Linux, настроим общий доступ к папкам public и private, но в ОС Windows.

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

Панель управления → Сеть → Центр управления сетями и общим доступом → Расширенные настройки общего доступа.

В обновленном окне открываем раздел “Все сети” и ищем секцию “Общий доступ с парольной защитой”. Устанавливаем параметр в положение “Отключить общий доступ с парольной защитой”. Для сохранения значений параметра кликаем по кнопке “Сохранить изменения”.

Отключаем общий доступ с парольной защитой

Теперь откроем доступ к самому каталогу. Кликаем по папке правой кнопкой мыши, в контекстном меню выбираем “Свойства”. Открываем вкладку “Доступ” и кликаем по “Расширенная настройка”.

Выбираем расширенную настройку

В открывшемся окне расширенных настроек общего доступа отмечаем галочкой “Открыть общий доступ к этой папке”, в поле “Имя общего ресурса” указываем название, которое будет отображено пользователям. Кликаем по кнопке “Разрешения”.

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

Выбираем саму группу и разрешения для группы

В окне свойств папки public кликаем по кнопке “Общий доступ”.

Общий доступ к файлам в Samba | Serverspace

В открывшемся окне добавляем пользователя “Все”, а также делегируем права на “Чтение и запись”. Кликаем по кнопке “Поделиться”.

Выбираем права и делимся ими с пользователями

В обновленном окне нажимаем “Готово”.

Нажимаем готово

Настроим папку общего доступа, но для ограниченного круга лиц.

Кликаем правой кнопкой мыши по папке, выбираем “Свойства”.

В открывшемся окне переходим на вкладку “Доступ”. Кликаем по кнопке “Расширенные настройки”.

В новом открывшемся окне, устанавливаем галку “Открыть общий доступ к этой папке”. Затем кликаем по кнопке “Разрешения”.

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

В открывшемся окне, в поле “Группы или пользователи” выбираем “Все” и нажимаем кнопку “Удалить”.

Удаляем пользователя

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

Окно обновится. Кликаем по кнопке “Добавить”.

В открывшемся окне кликаем по кнопке “Дополнительно”.

Выбираем дополнительные параметры

Окно изменится в размере. Кликаем по кнопке “Поиск”. Двойным кликом выбираем пользователя, которому необходим доступ к этому каталогу, например, buhgalter.

Добавляем пользователя которому нужен доступ к этому каталогу

В открывшемся окне, при желании, можем добавить еще одного пользователя через “Дополнительно” – “Поиск”. Аналогичным образом можно добавить группу пользователей, например, “Администраторы”, при этом следует понимать, что доступ будет предоставлен всем пользователям из этой группы.

При желании добавляем еще одного пользователя

Установим права доступа для пользователя “buhgalter”. Если требуется полный доступ к директории, устанавливаем галку в соответствующем месте.

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

Нажимая кнопки “OK” возвращаемся к окну свойств папки, в котором кликаем по кнопке “Общий доступ”.

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

В данном окне необходимо найти и добавить пользователя “бухгалтер”.

Ищем нашего пользователя и добавляем его

В окне выбора пользователей и групп кликаем по кнопке “Дополнительно”.

Выбираем дополнительные параметры

Окно снова изменит свои размеры. Кликаем по кнопке “Поиск”. В найденном ниже списке пользователей и групп выбираем искомого пользователя. Выбираем его двойным кликом.

Выбираем пользователей

В оставшемся окне проверяем правильно ли указан пользователи и нажимаем кнопку “OK”.

Проверяем выбранного пользователя

Устанавливаем требуемый уровень разрешений для пользователя и кликаем по кнопке “Поделиться”.

Добавляем права и делимся ими

Кликаем по кнопке “Готово”.

Теперь папка общего доступа доступна

Подключение к общим папкам из Linux

Для подключения к общим папкам из среды Linux требуется установка отдельного программного обеспечения – smbclient. Установим:

sudo apt-get install smbclient

Для подключения к серверу используется следующий формат команды:

smbclient -U <Имя_пользователя> <IP-адрес><Имя_каталога_на_сервере>

Пример:

smbclient -U buhgalter 10.0.0.1public

Для того, Чтобы не вводить эту команду каждый раз, можно настроить монтирование общей директории как сетевого диска. Для этого установим пакет cifs-utils:

sudo apt-get install cifs-utils

Монтирование выполняется по следующему шаблону:

mount -t cifs -o username=<Имя_пользователя>,password= //<IP-адрес>/<Общий каталог> <Точка монтирования>

Пример:

mount -t cifs -o username=Everyone,password= //10.0.0.1/public /media

Важно! Если требуется подключение к общим папкам расположенным на Windows-сервере, то в для не защищенных паролем директорий, в качестве имени пользователя, следует использовать “Everyone”. Для подключения к Linux-серверу рекомендуем использовать в качестве имени пользователя “nobody”. В случае доступа к защищенным директориям следует использовать те учетные данные, которые вы указали.

Подключение к общим папкам из Windows

Подключение к удаленным папкам из среды Windows выполняется немного иначе. Для этого в проводнике или окне запуска программ (Windows + R), следует использовать следующий шаблон:

<IP-адрес><имя_папки>

Указав просто IP-адрес сервера вы получите список общих папок.

Список общих папок

При подключении к Windows-серверу, система безопасности может потребовать ввод учетных данных. Для подключения к общей открытой папке используем Everyone, а поле пароля оставляем пустым.

Для подключения к общей папке выбираем Everyone и пустое поле для пароля

При подключении к Linux-серверу из ОС Windows, следует использовать указанный ранее шаблон:

<IP-адрес><имя_папки>

или просто адрес сервера:

<IP-адрес>

Как создать общий сетевой ресурс в Samba

Создайте директорию, которую в хотите сделать общей:

mkdir /home//

Создайте бэкап, если что-то пойдет не так:

sudo cp /etc/samba/smb.conf ~

Отредактируйте файл “/etc/samba/smb.conf”:

sudo nano /etc/samba/smb.conf

Добавьте следующее содержимое в файл:

[]
path = /home//
valid users =
read only = no

Заполните файл своими данными, сохраните его и затем закройте

Перезапустим Samba:

sudo service smbd restart

Использую данную команду проверьте вашу директорию smb.conf на ошибки:

testparm

Чтобы получить доступ к вашему общему сетевому ресурсу:

sudo apt-get install smbclient
# Просмотр всех общих ресурсов:
smbclient -L /// -U
# Подключение:
smbclient /// -U

Note 1: Чтобы подключиться к вашему общему сетевому ресурсу используйте имя вашего пользователя () и пароль, который находится “smb:////”
Учтите, что “” значение передается в “[]”,
другими словами, имя общего ресурса, которое вы ввели в “/etc/samba/smb.conf”.
Note 2: Группа пользователей samba по умолчанию это – “WORKGROUP”.

Вам также может быть интересно

  • Заказать облачный VPS с Ubuntu
  • Заказать облачный VPS с Windows
  • Серверные приложения

Contents

  1. Client Access – Browsing SMB shares

    1. Ubuntu Clients
    2. Windows Clients (XP,Server,Vista, Win7)
  2. Samba Client – Manual Configuration

    1. Connecting using CIFS
    2. Connecting using SMBFS (deprecated)

The samba package is a meta-package intended to be installed on file and printer sharing servers. Clients do not need this meta-package (you are acting as a client if you need to access files on another computer). For example, installing samba is not necessary if you only need your Ubuntu system to do any of the following:

  • Access shared folders, drives and printers on a Windows computer (that is, act as a client with Windows servers). To do this, you only need the smbfs plugin. See MountWindowsSharesPermanently for more information.

  • Have your Windows computer use (via a network) a printer that is attached to a Linux computer. CUPS can be configured to make the printer accessible to the network.
  • Share directories between two Linux computers. You can use NFS or setup an SSH server on one computer and access it from other computers using an scp or sftp client, or Places -> Connect to Server… and choose “SSH” as the service type.

Ubuntu Clients

Ubuntu and Gnome make it easy to access files on a Windows network share. Open the Places Menu, then click on Network. You will see a Windows network icon. Double-click to open it. The next window shows all the domains/workgroups found on your network. Inside each domain/workgroup you will see all the computers on the domain/workgroup with sharing enabled. Double-click on a computer icon to access its shares and files.

  • If you want to be able to share folders with nautilus (the file browser), install the nautilus-share package (installed by default in Ubuntu 9.10 Desktop edition):

sudo apt-get install nautilus-share

Alternate: From the menu at the top select “Location” -> “Connect to a server”. In the “Service type” pull down select “Windows share”. Enter the server ip address in the “Server:” box and the share name in the “Share:” box. Click “Connect” and then “Connect” again on the second dialog box

Alternate 12.04: Double clicking on ‘Windows network’ did not work for me. So I went to ‘Go’ menu in the nautilus file browser and clicked ‘Location’. I got an address bar at the top of the window. I entered “smb://192.168.2.148” (substitute the IP address of your Samba server) – I was presented with user/password window – After typing in user/passwd I was able to see the samba shares on the server and browse the files/folders.

Note: The default installation of Samba does not synchronize passwords. You may have to run “smbpasswd” for each user that needs to have access to his Ubuntu home directory from Microsoft Windows.

Windows Clients (XP,Server,Vista, Win7)

Microsoft Windows clients connect and browse through their corresponding network interface.

Example: XP clients can open Windows Network Neighborhood or My Network Places to browse available SMB shares.

Samba Client – Manual Configuration

This section covers how to manually configure and connect to a SMB file server from an Ubuntu client. smbclient is a command line tool similar to a ftp connection while smbfs allows you to mount a SMB file share. Once a SMB share is mounted it acts similar to a local hard drive (you can access the SMB share with your file browser (nautilus, konqueror, thunar, other).

Connecting to a Samba File Server from the command line

Connecting from the command line is similar to a ftp connection.

List public SMB shares with

smbclient -L //server -U user

Connect to a SMB share with

smbclient //server/share -U user

Enter you user password.

You can connect directly with

smbclient //server/share -U user%password

but your password will show on the screen (less secure).

Once connected you will get a prompt that looks like this :

smb: >

Type “help” , without quotes, at the prompt for a list of available commands.

Connecting using CIFS

CIFS is included in the smbfs package and is a replacement for smbfs (I know, the terminology here is a little confusing).

Reference : http://linux-cifs.samba.org/

As above, install by any method, smbfs, on Ubuntu 12.10, smbfs has been replaced by cifs-utils.

Allow non-root users to mount SMB shares

By default only root may mount SMB shares on the command line. To allow non-root users to mount SMB shares you could set the SUID, but I advise you configure sudo. You should configure sudo with visudo

You may either allow the group “users” to mount SMB shares, or add a group, samba, and add users you wish to allow to mount SMB shares to the samba group.

sudo groupadd samba
sudo adduser user samba

Change “user” to the username you wish to add to the samba group.

sudo visudo

In the “group” section add your group you wish to allow to mount SMB shares

Add a line  in the "group" section :
## Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
%samba   ALL=(ALL) /bin/mount,/bin/umount,/sbin/mount.cifs,/sbin/umount.cifs

Change “%samba” to “%users” if you wish to allow members of the users group to mount SMB shares.

The following will mount the myshare folder on myserver to ~/mnt (it will be in your home directory):

mkdir ~/mnt
sudo mount -t cifs //myserver_ip_address/myshare ~/mnt -o username=samb_user,noexec

Note: “samba_user” = the user name on the samba server (may be different from your log-in name on the client).

The “noexec” option prevents executable scripts running from the SMB share.

You will be asked for BOTH your sudo and then your samba_user password.

To umount,

sudo umount ~/mnt

Automagically mount SMB shares

In order to have a share mounted automatically every time you reboot, you need to do the following:

With any editor, create a file containing your Windows/Samba user account details:

gksu gedit /etc/samba/user

KDE users must use kdesu rather than gksu and instead of Gedit they can use Kwrite as editor.

… it should contain two lines as follows:

username=samba_user
password=samba_user_password

Note: “samba_user” = the user name on the samba server (may be different from your log-in name on the client). “samba_user_password” is the password you assigned to the samba_user on the samba server.

Save the file and exit gedit.

Change the permissions on the file for security:

sudo chmod 0400 /etc/samba/user # permissions of 0400 = read only

Now create a directory where you want to mount your share (e.g. /media/samba_share):

sudo mkdir /media/samba_share

Now, using any editor, and add a line to /etc/fstab for your SMB share as follows:

sudo cp /etc/fstab /etc/fstab.bak
gksu gedit /etc/fstab

Add a line for your SMB share:

//myserver_ip_address/myshare  /media/samba_share  cifs  credentials=/etc/samba/user,noexec  0 0

The share will mount automatically when you boot. The “noexec” option prevents executable scripts running from the SMB share.

To mount the share now, without rebooting,

sudo mount /media/samba_share

You can unmount the share with :

sudo umount /media/samba_share

If you wish to increase security at the expense of convenience, use this line in /etc/fstab

//myserver_ip_address/myshare  /media/samba_share  cifs  noauto,credentials=/etc/samba/user,noexec  0 0

The noexec” option prevents executable scripts running from the SMB share.

Edit /etc/samba/user, remove the password (leave just the samba user).

Now the share will NOT automatically mount when you boot and you will be asked for your samba password.

Mount the share with :

sudo mount /media/samba_share

CIFS may cause a shutdown error.

CIFS VFS: Server not responding.

There is a fix in the troubleshooting section of this forum post.

Back to top

Connecting using SMBFS (deprecated)

Note: This method still works, but as outlined under the “CIFS” section above is “deprecated” (no longer maintained and pending removal from the kernel).

Mounting a share on the local filesystem allows you to work around programs that do not yet use GnomeVFS to browse remote shares transparently. To mount a SMB share, first install smbfs:

sudo apt-get update
sudo apt-get install smbfs

To allow non root accounts to mount shares, change the permissions on the smbmnt program thus:

sudo chmod u+s /usr/bin/smbmnt /usr/bin/smbumount

Note: This may be a security risk as after setting the SUID bit anyone can mount a SMB share. I advise you configure sudo, as above.

The working line in /etc/sudoers is as follows (see CIFS section above):

%samba   ALL=(ALL) /bin/mount,/bin/umount,/sbin/mount.cifs,/sbin/umount.cifs,/usr/bin/smbmount,/usr/bin/smbumount

This allows any user in the samba group to mount SMB shares (you will need to create a samba group and add users).

The following will mount the myshare folder on myserver to ~/mnt (it will be in your home directory):


mkdir ~/mnt
smbmount //myserver/myshare ~/mnt

To umount,

smbumount ~/mnt

In order to have a share mounted automatically every time you reboot, you need to do the following:

Open a shell as root

sudo -s

Create a file containing your Windows/Samba user account details:

vi /etc/samba/user

…it should contain two lines as follows:

username=george
password=secret

Change the permissions on the file for security:

chmod 0600 /etc/samba/user

Now create a directory where you want to mount your share (e.g. /mnt/data):

mkdir /mnt/data

Now edit the file system table (/etc/fstab) and add a line as follows:

//server/share   /mnt/data   smbfs   credentials=/etc/samba/user,rw,uid=bob   0   0

…where ‘bob’ is the non-root user you log into ubuntu with, ‘server’ is the name or address of the Windows machine and ‘share’ is the name of the share.

To mount the share now, just use the following command as root. It will mount automatically on subsequent reboots.

mount /mnt/data

to be continued…

Ubuntu Client

On the Ubuntu client using the menu at the top, go to “Places” -> “Network”. You will see an icon “Windows network” and should be able to browse to your shared folder. You will be asked for a password, leave it blank. Click the “Connect button.

(no need for a password).

If you would like to mount your SMB share using your (server) hostname rather than the IP Address, edit /etc/hosts and add your samba server (syntax IP Address hostname).

192.168.1.100    hostname

Where “hostname” = the name of your samba server.

Windows Client

On Windows open “My Computer” and navigate to “My Network Places”. Navigate to your Ubuntu server and your share will be available without a password.

Alternate : From the menu at the top select “Tools” -> “Map Network Drive”. Select an available letter for your SMB share (Default is z: ). In the “Folder:” box enter \samba_server_ipaddressshare. Tic (Select with the mouse) the option “Reconnect at login” if you want the share to be automatically mounted when you boot Windows. Click the “Finish” box. A dialog box will appear, enter your samba user name and password. Click “OK”.

If you would like to mount your SMB share using your (server) hostname rather than the IP Address, edit C:WINDOWSsystem32driversetchosts and add your samba server (syntax IP Address hostname).

192.168.1.100    hostname

Where “hostname” = the name of your samba server.

Добавить комментарий