Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu Хостинг
Содержание
  1. Книга по SMB и Samba на русском языке. Оглавление
  2. Samba — это SMB для Linux
  3. Как в Linux увидеть все компьютеры Windows с совместными ресурсами
  4. Как в Linux вывести доступные по сети ресурсы (совместные папки и принтеры Windows)
  5. Как подключиться к сетевой папке Windows из Linux
  6. Подключение к SMB папке, требующий авторизации
  7. Команды SMB в Linux
  8. Выводит все доступные команды:
  9. Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:
  10. Удаление файла в шаре:
  11. Показ файлов и папок в текущей папке:
  12. Скачать файлы с общей папки:
  13. Выгрузка файла на общую папку:
  14. Включение и отключение рекурсии
  15. Показ всей возможной информации о файле:
  16. Копирование файла на сервере:
  17. Создание директории:
  18. Удаление директории:
  19. Удаление файлов
  20. Переименование файлов:
  21. Ссылки
  22. Выход с сервера:
  23. Вывод истории команд текущей сессии:
  24. Просмотр содержимого текстового файла:
  25. Показ текущей рабочей директории:
  26. Создание и извлечение архивов tar
  27. Установка таймаута операций:
  28. Установка нового соединения:
  29. Закрытие сессии, выход:
  30. Вывод списка открытых подключений:
  31. Отображение текущего активного подкючения:
  32. Изменение удалённой директории (переход на одну папку выше):
  33. Выполнение команд в локальной системе:
  34. Автоматическое выполнение команд в сетевой папке Windows
  35. Как смонтировать общую папку Windows/Samba в Linux
  36. Настройка автоматического монтирования сетевой папки в Linux
  37. Как создать общую сетевую папку в Samba
  38. Ошибки smbtree
  39. smbc_opendir: No such file or directory
  40. Segmentation fault
  41. smbtree ничего не выводит и «подвисает»
  42. Связанные статьи
  43. Об авторе
  44. Подготовка сервера
  45. 1. Время
  46. 2. Брандмауэр
  47. Установка и запуск Samba
  48. Сетевая корзина
  49. Подключение к шаре
  50. Windows
  51. Linux
  52. Монтирование
  53. SMB Browser
  54. Некоторые опции Samba
  55. 1. hosts allow
  56. 2. hosts deny
  57. 3. interfaces
  58. 4. Force User/Group
  59. 5. Include
  60. Читайте также
  61. Introduction
  62. Prerequisites
  63. Enable Name Resolution
  64. Install cifs-utils
  65. Manual mounting from the command line
  66. Most basic mount command
  67. Unmounting
  68. Mount with read/write access
  69. Mount with authentication — next line
  70. Mount with authentication — same line
  71. Mount with authentication — file
  72. Now we need to create our creds.txt file
  73. FSTAB
  74. FSTAB with inline authentication

Книга по SMB и Samba на русском языке. Оглавление

1. SMB: настройка общей сетевой папки в Windows

2. SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux

2.1. Samba — это SMB для Linux

2.2 Как в Linux увидеть все компьютеры Windows с совместными ресурсами

2.3 Как в Linux вывести доступные по сети ресурсы (совместные папки и принтеры Windows)

2.4 Как подключиться к сетевой папке Windows из Linux

2.5 Команды SMB в Linux

2.6 Автоматическое выполнение команд в сетевой папке Windows

2.7 Как смонтировать общую папку Windows/Samba в Linux

2.8 Настройка автоматического монтирования сетевой папки в Linux

2.9 Как создать общую сетевую папку в Samba

3. Аудит безопасности 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 выполните команду:

sudo apt install samba smbclient

В Arch Linux, BlackArch и их производных выполните команду:

sudo pacman -S samba smbclient

Как в Linux увидеть все компьютеры Windows с совместными ресурсами

Для показа всех совместных сетевых ресурсов Windows выполните команду:

smbtree -N

В этой и последующих командах используется флаг -N, который означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.

WORKGROUP
	\\VYACHESLAV     		
		\\VYACHESLAV\Users          	
		\\VYACHESLAV\IPC$           	Удаленный IPC
		\\VYACHESLAV\1 Для Принтера	
	\\RT-N66U        		RT-N66U
		\\RT-N66U\IPC$           	IPC Service (RT-N66U)
	\\HACKWARE-SERVER		
	\\HACKWARE-MIAL

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

В начале идёт имя рабочей группы WORKGROUP. Затем следует список компьютеров. Для тех из них, для которых удаётся получить список сетевых папок, они выводятся.

Как можно увидеть выше, для компьютера \\VYACHESLAV получен список совместно используемых ресурсов, а для компьютера \\HACKWARE-MIAL — нет. При этом если я включал на компьютере \\HACKWARE-MIAL поддержку протокола SMB 1, а при запуске команды указывал хоть какое-то имя пользователя, например:

smbtree -U qqwee -N

либо просто запускал smbtree с правами администратора:

sudo smbtree -N

то мне удавалось получить список файлов также и для компьютера \\HACKWARE-MIAL. UDP: видимо, такое поведение в том, что совпадали имена польозвателей на компьютерах с Linux и Windows.

Как в Linux вывести доступные по сети ресурсы (совместные папки и принтеры Windows)

Предыдущая команда показала нам несколько компьютеров с сетевыми папками. Предположим, меня интересует компьютер \\HACKWARE-MIAL, чтобы вывести его сетевые папки я запускаю команду вида:

sudo smbclient -L \\ИМЯ-КОМПЬЮТЕРА -N

в моём случае это:

sudo smbclient -L \\HACKWARE-MIAL -N

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Кстати, вместо имени компьютера можно указать IP адрес.

В полученном выводе половину информации составляют сообщения о различных проблемах. Значимые данные:

	Sharename       Type      Comment
	---------       ----      -------
	ADMIN$          Disk      Удаленный Admin
	C$              Disk      Стандартный общий ресурс
	IPC$            IPC       Удаленный IPC
	Share           Disk      
	Users           Disk      
Unable to initialize messaging context
smbclient: Can't load /etc/samba/smb.conf - run testparm to debug it

исчезнут, если создать файл /etc/samba/smb.conf.

Reconnecting with SMB1 for workgroup listing.
protocol negotiation failed: NT_STATUS_CONNECTION_RESET
Unable to connect with SMB1 -- no workgroup available

пропадут, если на компьютере с сетевой папкой включить поддержку протокола SMB1.

Как я уже говорил чуть выше, флаг -N означает не использовать пароль. Если же вы используете пароль, то укажите опцию -U с именем пользователя, пароль нужно будет ввести интерактивно.

Как и для smbtree, для smbclient необязательно использовать sudo, но без sudo для некоторых компьютеров программа срабатывает нормально, а для некоторых завершается ошибкой:

session setup failed: NT_STATUS_ACCESS_DENIED

Как подключиться к сетевой папке Windows из Linux

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

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

Для входа в интерактивный режим запустите команду вида:

sudo smbclient //ИМЯ-КОМПЬЮТЕРА/Папка -N
sudo smbclient //HACKWARE-MIAL/Share -N

Если вы хотите, чтобы при подключении была изменена текущая рабочая директория в сетевой папке, то есть чтобы была открыта другая папка, то используйте опцию -D. К примеру, я хочу подключиться к папке NewFolder, тогда команда следующая:

sudo smbclient //HACKWARE-MIAL/Share -N -D NewFolder

Подключение к SMB папке, требующий авторизации

sudo smbclient //ИМЯ-КОМПЬЮТЕРА/Папка -U ИМЯ-ПОЛЬЗОВАТЕЛЯ

В моём случае это команда:

sudo smbclient //HACKWARE-MIAL/ShareRestricted -U ShareOverlord

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Команды SMB в Linux

Доступны следующие интерактивные команды:

Выводит все доступные команды:

help

Для показа справки по определённой команде, выполните

help КОМАНДА

Переход в другой каталог (смена текущей рабочей директории) на удалённой системе:

cd ПАПКА

Переход в другую директорию на локальной системе:

lcd

Удаление файла в шаре:

del ИМЯ_ФАЙЛА

Имеется псевдоним этой команды:

rm ИМЯ_ФАЙЛА

И ещё одна команда со схожей функцией:

deltree ШАБЛОН_ИМЕНИ

Эта команда рекурсивно удалить все совпавшие с шаблоном имени файлы и директории.

Показ файлов и папок в текущей папке:

dir

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Имеется псевдоним этой команды:

ls

И ещё один, даже более короткий псевдоним:

l

Скачать файлы с общей папки:

get <ИМЯ_УДАЛЁННОГО_ФАЙЛА> [ЛОКАЛЬНОЕ_ИМЯ]

Для повторного скачивания файла:

reget <ИМЯ_УДАЛЁННОГО_ФАЙЛА> [ЛОКАЛЬНОЕ_ИМЯ]

Для скачивания всех файлов, чьём имя совпадает с шаблоном:

mget ШАБЛОН_ИМЕНИ
mget "*.exe"
Get file ChromeSetup.exe? y

Также имеется команда newer, которая скачивает файлы (mget), которые новее, чем указанный локальный файл. Используется она так:

newer ФАЙЛ

Выгрузка файла на общую папку:

put <ЛОКАЛЬНОЕ_ИМЯ> [ИМЯ_УДАЛЁННОГО_ФАЙЛА]

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

print ИМЯ_ФАЙЛА

Повторная закачка файла:

reput <ЛОКАЛЬНОЕ_ИМЯ> [ИМЯ_УДАЛЁННОГО_ФАЙЛА]

Для закачки всех файлов, чьём имя совпадает с шаблоном:

mput ШАБЛОН_ИМЕНИ

К примеру, чтобы закачать в шару все файлы (из локальной текущей рабочей директории), которые имеют расширение *.cap, нужно запустить команду:

mput "*.cap"

Для каждого файла, совпавшего с шаблоном, будет выполнен запрос подтверждения, если вы действительно хотите его закачать, то нажмите клавишу «y»:

Put file wpa.cap? y
putting file wpa.cap as \wpa.cap (335,2 kb/s) (average 277,8 kb/s)
Put file wep.cap? y
putting file wep.cap as \wep.cap (0,6 kb/s) (average 169,1 kb/s)

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Включение и отключение рекурсии

recurse

Можно включать и отключать рекурсивный режим для mget и mput.

Показ всей возможной информации о файле:

allinfo ФАЙЛ
allinfo all-databases.sql
altname: ALL-DA~1.SQL
create_time:    Чт авг 29 12:29:51 2019 MSK
access_time:    Вс янв  5 23:31:47 2020 MSK
write_time:     Ср авг  1 09:51:25 2018 MSK
change_time:    Вс янв  5 19:48:36 2020 MSK
attributes: A (20)
stream: [::$DATA], 381945262 bytes

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

В выводимой информации можно увидеть альтернативное (DOS) имя, временные метки (дата создания, доступа, записи и изменения файла), атрибуты.

Копирование файла на сервере:

scopy <ИСХОДНЫЙ_ФАЙЛ> <НОВЫЙ_ФАЙЛ>

Создание директории:

md ДИРЕКТОРИЯ
mkdir ДИРЕКТОРИЯ

Удаление директории:

rd ДИРЕКТОРИЯ
rmdir ДИРЕКТОРИЯ

Удаление файлов

Следующая команда удалит все совпавшие с МАСКОЙ файлы:

rm МАСКА

Псевдоним команды для удаления файлов:

del МАСКА

С помощью команды wdel можно удалить все совпавшие файлы по подстановочным символам:

wdel АТРИБУТЫ МАСКА

Переименование файлов:

rename ИСХОДНОЕ_ИМЯ НОВОЕ_ИМЯ

Ссылки

Создание жёсткой ссылки Windows:

hardlink ИСТОЧНИК НАЗНАЧЕНИЕ

Создание жёсткой ссылки UNIX:

link СТАРОЕ_ИМЯ НОВОЕ_ИМЯ

Создание символьной ссылки UNIX:

symlink СТАРОЕ_ИМЯ НОВОЕ_ИМЯ

Выход с сервера:

q
quit
exit

Вывод истории команд текущей сессии:

history

Просмотр содержимого текстового файла:

more УДАЛЁННЫЙ_ФАЙЛ

Показ текущей рабочей директории:

pwd
Current directory is \\HACKWARE-MIAL\Share\

Другой вариант показа текущей рабочей директории — это команда cd без аргументов:

cd
Current directory is \

Создание и извлечение архивов tar

tar c АРХИВ.tar ФАЙЛ1 ФАЙЛ2 ФАЙЛ3
tar c all.tar all-databases.sql besside.log ChromeSetup.exe

Если нужно разархивировать файл на локальной системе и всё его содержимое отправить на удалённую общую папку, то запустите команду вида:

tar x АРХИВ.tar

К примеру, я хочу отправить содержимое архива all.tar в общую папку:

tar x all.tar

Для установления режимов tar используется команда

tarmode <full|inc|reset|noreset>

Установка таймаута операций:

timeout <ЧИСЛО>

Таймаут устанавливается в секундах и по умолчанию равен 20.

Читайте также:  Удар поддых от Яндекса. Про закрытие хостинга Яндекс-Фотки. : lewhobotov — LiveJournal

Установка нового соединения:

logon <ИМЯ_ПОЛЬЗОВАТЕЛЯ> [<ПАРОЛЬ>]

Закрытие сессии, выход:

logoff

Вывод списка открытых подключений:

listconnect

Отображение текущего активного подкючения:

showconnect

Изменение удалённой директории (переход на одну папку выше):

Выполнение команд в локальной системе:

!КОМАНДА

Чтобы команда выполнялась не на удалённой системе, а на локальной, поставьте перед ней ! (восклицательный знак), например^

!ls -l

Автоматическое выполнение команд в сетевой папке Windows

Необязательно каждый раз вводить все команды вручную — вы можете перечислить их через запятую и указать в двойных кавычках с опцией -c, например:

sudo smbclient //HACKWARE-MIAL/Share -N -c "cd NewFolder; tar c captures.tar *.cap"

Как смонтировать общую папку Windows/Samba в Linux

Сетевая папка Windows может быть доступна в файловых менеджерах Linux как любая другая локальная папка. Для этого её нужно смонтировать. После монтирования не придётся использовать консоль для просмотра списка файлов и скачивания или закачивания файлов.

Начните с установки пакета cifs-utils.

В Debian, Linux Mint, Ubuntu, Kali Linux и производных выполните:

sudo apt install cifs-utils

В Arch Linux, BlackArch и производных выполните:

sudo pacman -S cifs-utils

Предыдущие команды smbtree и smbclient понимали имена компьютеров Windows, такие имена как HACKWARE-MIAL. Монтирование выполняется с помощью команды mount, которая такие имена не умеет обрабатывать без помощи преобразования имён DNS. Поэтому при монтировании можно либо:

  1. Использовать вместо имён компьютеров IP адрес. В этом случае у компьютера с сетевой папкой должен быть постоянный (статичный) IP адрес
  2. Либо настроить преобразование имён для компьютеров Windows. Это можно сделать, например, с помощью файла /etc/hosts. Кстати, в этом случае у компьютера с общей папкой также должен быть постоянный IP адрес (смотрите Как настроить локальный DNS используя файл /etc/hosts в Linux)

В общем, в любом случае настройте в роутере или в самой Windows постоянный локальный IP.

Если вы хотите настроить преобразование имён с помощью файла /etc/hosts, то откройте его:

sudo gedit /etc/hosts

И добавьте туда запись вида

IP_АДРЕС	ИМЯ_КОМПЬЮТЕРА

Например, у меня IP_АДРЕС это 192.168.0.101, а именем компьютера является HACKWARE-MIAL, тогда я добавляю следующую запись:

192.168.0.101	HACKWARE-MIAL

Пингуем по имени компьютера Windows, чтобы убедиться, что всё сработало:

ping HACKWARE-MIAL
sudo mkdir /mnt/share
sudo chown ПОЛЬЗОВАТЕЛЬ /ПУТЬ/ДО/ТОЧКИ/МОНТИРОВАНИЯ/ШАРЫ

Чтобы узнать имя текущего пользователя выполните команду:

echo $USER
sudo chown mial /mnt/share/

Теперь для монтирования сетевой шары Windows нужно запустить команду вида:

sudo mount -t cifs -o username=guest,password=,uid=1000,iocharset=utf8 //ИМЯ-КОМПЬЮТЕРА/Папка /точка/монтирования

В этой команде вы должны вставить свои значения для

  • //ИМЯ-КОМПЬЮТЕРА/Папка
  • /точка/монтирования

Значение других элементов команды:

  • sudo — монтировать шару можно и без прав суперпользователя, но использовать опцию -o, после которой указываются опции для монтирования, можно только с правами root
  • -t cifs выбор файловой системы для монтирования
  • -o означает, что после этой опции будут перечислены опции для монтирования:
  • username=guest,password= — произвольное имя пользователя без пароля — используется для подключение к общей папки, для которой не требуется вход. Вместо этой конструкции можно указать просто guest, но в этом случае на некоторых системах всё равно запрашивается пароль. По моим наблюдениям, пароль запрашивается когда имя текущего пользователя на Linux совпадает с именем пользователя на Windows
  • uid=1000 — в качестве владельцев всех файлов в шаре будет указан текущий пользователь Linux
  • iocharset=utf8 — эта кодировка позволяет работать с именами файлов, в которых используются не только латинские буквы
sudo mount -t cifs -o username=guest,password=,uid=1000,iocharset=utf8 //HACKWARE-MIAL/Share /mnt/share

Вид сетевой папки Windows в Double Commander:

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Вид сетевой папки в стандартном проводнике Linux:

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

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

sudo umount /mnt/share
sudo mount -t cifs -o username=ShareOverlord,password=1234,uid=1000,iocharset=utf8 //HACKWARE-MIAL/ShareRestricted /mnt/share

Чуть дальше очень похожий набор опций, в том числе пароль в открытом виде, мы будем использовать в файле /etc/fstab для настройки автоматического монтирования сетевой папки. Файл /etc/fstab доступен для чтения всем а, следовательно, также доступен всем ваш пароль от Windows в нём. Чтобы обойти эту проблему, можно использовать файл с учётными данными. Это файл содержит только имя пользователя и пароль.

Используя текстовый редактор, создайте файл с учётными данными для входа на ваш удалённый сервер:

gedit ~/.smbcredentials

В этот файл введите имя пользователя и пароль от Windows:

username=ИМЯ-ПОЛЬЗОВАТЕЛЯ
password=ПАРОЛЬ

В моём примере это:

username=ShareOverlord
password=1234

Сохраните файл и закройте редактор.

Измените права доступа к этому файлу, чтобы предотвратить нежелательный доступ к вашим учётным данным:

chmod 600 ~/.smbcredentials

Посмотрите абсолютный путь до этого файла:

realpath ~/.smbcredentials

В моём случае абсолютный путь:

/home/mial/.smbcredentials

Теперь вместо двух опций:

username=ПОЛЬЗОВАТЕЛЬ,password=ПАРОЛЬ
credentials=/home/ПОЛЬЗОВАТЕЛЬ/.smbcredentials

Моя команда стала выглядеть так:

sudo mount -t cifs -o credentials=/home/mial/.smbcredentials,uid=1000,iocharset=utf8 //HACKWARE-MIAL/ShareRestricted /mnt/share

Настройка автоматического монтирования сетевой папки в Linux

Автоматически монтируемые файловые системы прописываются в файле /etc/fstab. Откроем этот файл:

sudo gedit /etc/fstab

Теперь в него нужно добавить строку вида:

//ИМЯ-КОМПЬЮТЕРА/Папка	/точка/монтирования	cifs	credentials=/home/mial/.smbcredentials,uid=1000,iocharset=utf8,nofail,_netdev	0	0

Мы добавили опцию nofail, чтобы ОС нормально загружалась даже если не удалось смонтировать данную файловую систему. Ещё добавьте опцию _netdev, эта опция означает, что файловая система находится на устройстве, которому требуется доступ к сети (используется для предотвращения попыток системы смонтировать эти файловые системы до тех пор, пока в системе не будет включена сеть).

Для моего примера это строка:

//HACKWARE-MIAL/ShareRestricted	/mnt/share	cifs	credentials=/home/mial/.smbcredentials,uid=1000,iocharset=utf8,nofail,_netdev	0	0

Сохраним и закроем этот файл. Для проверки выполним:

sudo mount -a

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

//ИМЯ-КОМПЬЮТЕРА/Папка	/точка/монтирования	cifs	username=guest,password=,uid=1000,iocharset=utf8,nofail,_netdev	0	0

Либо можно по-прежнему использовать файл .smbcredentials, как это было показано выше:

//ИМЯ-КОМПЬЮТЕРА/Папка	/точка/монтирования	cifs	credentials=/home/mial/.smbcredentials,uid=1000,iocharset=utf8,nofail,_netdev	0	0

Но в файл ~/.smbcredentials запишите следующее:

username=guest
password=

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

Если в этой статье вы пропустили предыдущие части, так как вам нужно только настроить файловый сервер на Linux, то начните с установки пакета samba.

Следующая команда не сработает, если отсутствует файл /etc/samba/smb.conf. Если у вас тоже нет этого файла, то создаёте его заглушку — к настройке самого файла smb.conf мы вернёмся позже:

sudo touch /etc/samba/smb.conf

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

Для установки пароля Samba, выполните следующую команду:

sudo smbpasswd -a $USER

Если вы хотите, чтобы у пользователя не было пароля, то укажите опцию -n.

Создайте папку, которая станет совместно используемой:

mkdir ~/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

На самом деле, мы настроили не полноценную Samba, а только файловый сервер SMB. Одно из следствий этого — показанные выше способы обнаружения сетевых папок, такие как команда smbtree в Linux или переход во вкладку «Сеть» в проводнике Windows, не обнаружат нашу шару.

Для подключения к этой общей сетевой папке на Linux нужно использовать IP адреса компьютера Linux вместо имени компьютера, как это мы делали раньше. Кстати, поэтому нужно настроить статичный IP (смотрите статью «Как настроить Linux на использование статичного IP адреса»).

Создадим файл, чтобы сетевая папка не была пустой:

echo "Документ на Linux" > ~/linuxshare/document.txt

Посмотрите локальный IP адрес компьютера, на котором запущена Linux:

ip a
\\192.168.0.89\linuxshare

Вводим учётные данные (которые мы установили командой smbpasswd):

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Видим содержимое совместно используемой папки, размещённой на Linux с помощью SMB:

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

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

sudo smbclient //IP_АДРЕС/Папка -U ПОЛЬЗОВАТЕЛЬ

Для моего примера это:

sudo smbclient //192.168.0.89/linuxshare -U mial

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

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

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

Ошибки smbtree

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

smbc_opendir: No such file or directory

smbtree -N

завершает работу с ошибкой

smbc_opendir: No such file or directory

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

Если компьютеры с совместными ресурсами присутствуют в сети, но вы всё равно получаете эту ошибку, то попробуйте активировать на них SMB 1.

Segmentation fault

smbtree -N

приводит к ошибке

===============================================================
INTERNAL ERROR: Signal 11: Segmentation fault in pid 20313 (4.15.3)
If you are running a recent Samba version, and if you think this problem is not yet fixed in the latest versions, please consider reporting this bug, see https://wiki.samba.org/index.php/Bug_Reporting
===============================================================
PANIC (pid 20313): Signal 11: Segmentation fault in 4.15.3
BACKTRACE: 13 stack frames:
 #0 /usr/lib/libsamba-util.so.0(log_stack_trace+0x31) [0x7f7e7d8ef8c1]
 #1 /usr/lib/libsamba-util.so.0(smb_panic+0xa) [0x7f7e7d8efb2a]
 #2 /usr/lib/libsamba-util.so.0(+0xdbc5) [0x7f7e7d8efbc5]
 #3 /usr/lib/libc.so.6(+0x3cda0) [0x7f7e7d711da0]
 #4 /usr/lib/libbsd.so.0(strlcpy+0x10) [0x7f7e7d8bdf60]
 #5 /usr/lib/libsmbclient.so.0(+0x13886) [0x7f7e7db03886]
 #6 /usr/lib/libsmbclient.so.0(+0x13e21) [0x7f7e7db03e21]
 #7 /usr/lib/libsmbclient.so.0(+0x13f46) [0x7f7e7db03f46]
 #8 /usr/lib/libsmbclient.so.0(+0x14ab0) [0x7f7e7db04ab0]
 #9 /usr/lib/libsmbclient.so.0(+0xc08d) [0x7f7e7dafc08d]
 #10 smbtree(main+0x27f) [0x55876ec6f29f]
 #11 /usr/lib/libc.so.6(__libc_start_main+0xd5) [0x7f7e7d6fcb25]
 #12 smbtree(_start+0x2e) [0x55876ec6f73e]
Can not dump core: corepath not set up

Точная причина не ясна, возможно это ошибка конкретной версии smbtree, попробуйте обновить эту программу.

Попробуйте запуск с другими опциями.

smbtree ничего не выводит и «подвисает»

Если smbtree не выводит явных ошибок, то для того, чтобы разобраться, на каком именно этапе стопорится работа программы, добавьте к вашей команде опцию -d и укажите число от 0 (выводить только критические ошибки) до 10 (выводить все сообщения).

Связанные статьи

  • Руководство по SMB и Samba (100%)
  • Аудит безопасности SMB и Samba (83.1%)
  • SMB: настройка общей сетевой папки в Windows (68.2%)
  • Всё о монтировании: от системного администрирования до IT криминалистики (54.6%)
  • Азы работы в командной строке Linux (часть 5) (54.3%)
  • Установка Kali Linux (RANDOM — 50%)

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

В этой небольшой статье мы рассмотрим как настраиваются общие папки Linux с помощью стандартной системы полномочий Linux.

Читайте также:  VPS/VDS почтовый сервер для рассылок, виртуальный сервер: цены на аренду

Как вы знаете, в Linux есть своя система полномочий для файлов и папок, в которой можно разрешить чтение, запись и выполнение для пользователя владельца, определённой группы пользователей и всех остальных. Если вы забыли как это работает ознакомьтесь со статьей Права доступа к файлам и Группы пользователей Linux.

Сначала давайте создадим саму папку:

Если надо разрешить доступ к папке всем, то достаточно установить такие права:

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Эти две команды аналогичны. Они включают для владельца файла полный доступ к нему, а для группы и всех остальных — только чтение и запись. Опция -R позволяет применить изменения рекурсивно ко всем подпапкам и файлам в этом каталоге. Для того чтобы разрешить вообще всё используйте маску прав 777:

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

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

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

sudo groupadd project

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Затем группу папки надо изменить на project. Для этого можно воспользоваться командой chgrp:

Осталось сделать права для этой папки. Кроме стандартных прав, которые разрешают чтение, запись и выполнение файлов для группы project нам необходимо установить SGID бит. Если этот флаг устанавливается для файла, то он позволяет выполнять этот файл с правами группы файла, но если он устанавливается для папки, то все файлы и папки, создаваемые в ней будут получать ту же группу что и у этой папки. Это как раз то, что нам надо:

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Маска прав 774 разрешает всё группе и владельцу, и разрешает только чтение всем остальным. Можно запретить им и чтение заменив 4 на 0, получится 770. После этого оба пользователя losst и losst1 смогут создавать файлы в этой папке, а также оба получат доступ к созданным файлам.

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Как видите всё очень просто. А если вам надо создать общую папку, доступную по сети посмотрите на статью про настройку NFS или Samba.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Об авторе

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Используемые термины: Samba, Ubuntu, SMB.

Samba позволяет настроить файловое хранилище различных масштабов — от малых офисов для крупных организаций. В данной инструкции мы рассмотрим процесс настройки файлового сервера. Сначала мы выполним установку и базовую настройку с предоставлением гостевого доступа. После будет приведены примеры разграничения доступа по пользователям, группам и пользователям Active Directory.

Подготовка сервера

1. Время

Для корректного отображения дат, необходимо позаботиться о синхронизации времени. Для этого будем использовать демон chrony. Установим его:

apt-get install chrony

Разрешим автозапуск сервиса:

systemctl enable chrony

2. Брандмауэр

По умолчанию, в системах на базе Debian брандмауэр разрешает все соединения. Но если в нашем случае мы используем брандмауэр, необходимо открыть порты:

iptables -I INPUT -p tcp —dport 445 -j ACCEPT

iptables -I INPUT -p udp —dport 137:138 -j ACCEPT

iptables -I INPUT -p tcp —dport 139 -j ACCEPT

* где порт 445 используется для samba, а порты 137, 138 и 139 — для работы NetBIOS (использование имени компьютера для доступа).

apt-get install iptables-persistent

Установка и запуск Samba

Установка выполняется из репозитория одной командой:

apt-get install samba

Разрешаем автостарт сервиса:

systemctl enable smbd

И проверим, что сервис запустился: 

systemctl status smbd

Проверяем, что сервер самба позволяет к себе подключиться. Для этого можно с компьютера обратиться к серверу по SMB, например, на компьютере с Windows это можно сделать из проводника, прописав путь к серверу с двух слэшей:

Пример подключения к SMB шаре с компьютера на Windows

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

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

Открываем на редактирование конфигурационный файл samba:

И добавляем настройку для общей папки:

  • [Общая папка] — имя общей папки, которое увидят пользователи, подключившись к серверу.
  • comment — свой комментарий для удобства.
  • path — путь на сервере, где будут храниться данные.
  • public — для общего доступа. Установите в yes, если хотите, чтобы все могли работать с ресурсом.
  • writable — разрешает запись в сетевую папку.
  • read only — только для чтения. Установите no, если у пользователей должна быть возможность создавать папки и файлы.
  • guest ok — разрешает доступ к папке гостевой учетной записи.
  • create mask, directory mask, force create mode, force directory mode — при создании новой папки или файла назначаются указанные права. В нашем примере права будут полные.

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

mkdir -p /data/public

chmod 777 /data/public

Применяем настройки samba, перезагрузив сервис:

systemctl restart smbd

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

Открываем конфигурационный файл samba:

Добавляем настройку для новой папки:

* эти настройки, во многом, похожи на те, что использовались в примере выше. Вот основные различия:

  • path = /data/staff — используем новый путь до папки.
  • public = no — запрещаем публичный доступ.
  • guest ok = no — не разрешаем гостевое подключение.

Создаем каталог для новой папки:

Задаем права на созданный каталог:

chmod 777 /data/staff

Создаем пользователя в системе Linux:

* где staff1 — имя пользователя.

Задаем пароль для пользователя:

Теперь создадим пользователя в samba:

systemctl restart smbd

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

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

Открываем конфигурационный файл samba:

Добавляем настройку для новой папки:

* стоит обратить внимание на следующие настройки:

  • path = /data/private — используем новый путь до папки.
  • writable = no и read only = yes — в данном примере мы разрешим запись в каталог только некоторым пользователям. Поэтому общие настройки, разрешающие запись в папку, должны быть запрещены.
  • valid users — список пользователей, которым разрешено подключаться к каталогу. В данном примере разрешения работают для пользователей admin, staff2 и staff3, а также для всех, кто входим в группу privateusers.
  • write list — список пользователей, которые имеют доступ к папке на чтение и запись. В данном примере мы разрешаем это только для пользователей admin и staff2.
  • inherit owner — опция позволяем включить наследование владельца при создании папок и файлов.

* если мы хотим, чтобы доступ к каталогу был полный у определенных пользователей (без разделения на тех, кто может только читать и тех, кто может также писать в папку), то опцию write list можно не указывать, а опции writable и read only оставить как в примерах выше.

Создаем каталог для новой папки:

Задаем права на созданный каталог:

chmod 777 /data/private

Для применения настроек перезапускаем samba:

systemctl restart smbd

Создать группу пользователей можно командой:

Добавить ранее созданного пользователя в эту группу:

Подробнее о работе с учетными записями в Linux.

Проверяем возможность работы с новым каталогом.

Сетевая корзина

При удалении файлов из общей папки, данные удаляются навсегда. Но мы можем настроить сетевую корзину — скрытый каталог, в который будут перемещаться удаляемые с самбы объекты.

Открываем конфигурационный файл:

  • vfs objects = recycle — использовать подсистему recycle.
  • recycle:repository — где хранить удаленные объекты. В данном примере удаленные файлы попадут в скрытый каталог .recycle к котором создастся каталог с именем пользователя, удалившего файл или папку.
  • recycle:keeptree — удалять объекты с сохранение дерева каталогов.
  • recycle:touch — изменить ли дату изменения файла при его перемещении в корзину.
  • recycle:versions — при удалении файлов с совпадающими именами, добавлять номер версии.
  • recycle:maxsize — не помещать в корзину файлы, размер которых больше заданного параметра (в байтах). В данном примере, помещать файлы любого размера.
  • recycle:exclude — исключить файлы.
  • recycle:exclude_dir — исключить каталог.

Создаем каталог и задаем права:

systemctl restart smbd

Пробуем зайти в сетевой каталог Recycle и создать, а после удалить файл. Он должен оказаться к скрытой папке .recycle.

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

* в данном скрипте мы ищем все файлы в каталоге /data/recycle/.recycle, которые старше 30 дней и удаляем их.

Разрешаем запуск скрипта:

chmod +x /scripts/cleanrecycle.sh

Создаем задание в планировщике:

0 5 * * * /scripts/cleanrecycle.sh

* в данном примере мы будем запускать скрипт по очистке сетевой корзины каждый день в 05:00.

Подключение к шаре

Теперь разберем примеры подключения к нашим шарам из разных систем.

Windows

Для разового подключения можно использовать проводник, прописав в нем адрес сервера через косые линии:

Пример подключения к SMB шаре с компьютера на Windows

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

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

В открывшемся окне прописываем путь до сетевой папки и выбираем имя диска:

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

Сетевой диск настроен.

Но мы может сделать те же действия из командной строки:

net use x: \\samba.dmosk.local\AD ACL /persistent:yes

* где x: — имя сетевого диска; \\samba.dmosk.local\AD ACL — путь до сетевого каталога; persistent:yes — указывает на то, что нужно восстанавливать данный диск каждый раз при входе в систему.

Linux

Монтирование

В Linux мы можем монтировать удаленный каталог с помощью команды mount, например:

Подробнее, процесс монтирования описан в инструкции Как в Linux монтировать шару CIFS.

SMB Browser

Также мы можем увидеть содержимое удаленных папок на samba при помощи клиента smb. Для начала установим данного клиента:

а) на Red Hat / CentOS / Fedora:

yum install samba-client

б) на Debian / Ubuntu / Mint:

apt-get install samba-client

Также мы можем подключиться к конкретной папке, например:

Мы подключимся клиентом samba — можно выполнить запрос на показ содержимого:

smb: \> ls

Или полный список возможных команд:

Некоторые опции Samba

Рассмотрим некоторые полезные опции, которые могут пригодится при настройке Samba.

1. hosts allow

Пример использования параметра.

hosts allow = comp1, 192.168.1., 192.168.160.0/255.255.252.0

* в нашем примере мы разрешим доступ только для компьютера comp1, компьютеров из сетей 192.168.1.0/24 и 192.168.160.0/22.

2. hosts deny

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

Читайте также:  Список лучших локальных серверов | Статьи о хостинге, настройке Linux и Windows хостинга - Блог компании

hosts deny = comp2, 192.168.2., 192.168.164.0/255.255.252.0

hosts deny = ALL EXCEPT 192.168.3.

3. interfaces

По умолчанию samba использует все сетевые интерфейсы, кроме локальной петли (127.0.0.1). Параметр interfaces позволит указать, на каком сетевом адаптере файловый сервер должен принимать запросы. Пример:

interfaces = ens32 192.168.1.15/24 192.168.2.15/255.255.255.0

4. Force User/Group

Прописывается для шары:

* данная настройка позволит подключаться к шаре под пользователем apache.

5. Include

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

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

Возможно, эти инструкции будут также Вам полезны:

1. Установка и настройка samba в Linux CentOS.

2. Как настроить автоматическое монтирование дисков в Linux.

3. Настройка дисковых квот в Linux.

В современных дистрибутивах Linux уже можно совершенной спокойно путешествовать по сетевым дискам. Но куда удобнее если смонтировать сетевой диск сразу в папку, да еще и на рабочем столе, красота. Я создал папку с общим доступом на сервере Hyper-V, её и буду монтировать. Монтирование SMB буду делать под специально заведенным пользователем, дабы не светить пароль админа.

Монтируемая папка

Монтируемая директория доступна только администраторам и пользователю smb (создан специально для монтирования). Сделать общую папку на сервере Windows можно двумя способами: 1 — через свойства папки; 2 — через Powershell. Через свойства папки проще и быстрее как для новичка.

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Но в моем случае с сервером HyperV 2019 сработал только второй способ, через Powershell.

New-SmbShare -Name "smb_mount" -Path "F:\smb_mount" -FullAccess "Administrator", "smb"
Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu
Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Общая папка у меня доступна по пути \\hvs19\smb_mount, но монтировать я буду ее по ip адресу. Принципиального вопроса как монтировать нет, просто не всегда есть возможность использовать имя.

С монтируемой папкой закончили, создадим папку куда будем монтировать. Я создал папку в /opt и назвал её F (по имени диска где лежит монтируемая папка) для удобства.

Установим набор утилит для монтирования SMB

Для Ubuntu (и прочих Debian`ов)

sudo apt-get install cifs-utils

Для Centos 8 (и прочих RPM дистрибутивов на YUM)

sudo yum install cifs-utils
Монтирование SMB

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

sudo mount -t cifs -o username=smb,password=пароль //192.168.1.110/smb_mount /opt/F

Пройдемся по параметрам:

  • -t cifs — тип файловой системы cifs (полностью совместим с SMB)
  • username — пользователь у которого есть доступ к монтируемой папке (на сетевом диске). Если разрешено, можно использовать гостя, без пароля. В таком случае указываем username=guest
  • password — пароль от учетной записи этого пользователя
  • //192.168.1.110/smb_mount — общая папка на сервере которую монтируем
  • /opt/F — папка куда монтируем.

Посмотрим что все получилось, проверим свободное место в сетевой папке

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Можно использовать дополнительные возможности при монтировании, используя ключи после параметра -o. Вот некоторые из них

  • rw — запись и чтение
  • ro — только чтение
  • iocharset=utf8 — в данной кодировке будет выводится информация;
  • codepage=cp866 — кодировка используемая на сервере с общей папкой. Обычно Windows устанавливает кодировку cp866.
  • vers=3.0 — принудительно указать версию подключения SMB протокола. Для безопасного подключения используйте последнюю версию.

Используя команду mount мы монтируем папку в ручном режиме и после перезагрузки монтирования не произойдет. Для автоматического монтирования папки читаем следующий раздел.

Автоматическое монтирование SMB

Для постоянного монтирования папке при старте системы необходимо внести изменения в файл /etc/fstab. При монтировании сетевого диска с SMB используется пароль. Для большей сохранности не будем указывать его в файле fstab, а сохраним в директории root.

Создадим файл с учетными данными

Добавим в файл строки: имя пользователя, пароль, домен (если используется). У меня домена нет, поэтому добавлю только имя и пароль

username=smb
password=пароль
domain=mydomain

Откроем файл /etc/fstab для редактирования

Добавим новую строку в конец файла

//192.168.1.110/smb_mount /opt/F   cifs   user,rw,credentials=/root/.cifsmnt 0 0
Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

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

Разберем указанные параметры

  • //192.168.1.110 — ip адрес сервера где находится сетевая папка
  • /smb_mount — сетевая папка на указанном выше сервере
  • /opt/F — папка на локальном компьютере куда будем монтировать сетевую папку
  • cifs — тип монтируемой файловой системы
  • user — разрешение монтировать для любого пользователя
  • rw — разрешения на чтение/запись на диск при монтировании
  • credentials — путь к файлу с данными учетной записи используемых для подключения по SMB
  • 0 — не использовать дамп
  • 0 — не проверять файловую систему при старте программой fsck
Права на папки и файлы

Примонтированный диск по умолчанию монтируется от root и разрешает запись на диск только под ним. Рассмотрим опции позволяющие изменить доступ на примонтированные папки и файлы. Также рассмотрим настройки по смене владельца смонтированной папки.

  • uid — задает владельца каталога. Узнать uid пользователей можно в файле /etc/passwd
  • gid — задает группу владельца каталога. Узнать gid групп можно в файле /etc/passwd
  • file_mode=0777 — права на доступ к файлам. 0777 — разрешено запись/чтение всем.
  • dir_mode=0777 — права на доступ к папкам. 0777 — разрешено запись/чтение всем.

Пример записи в файле /etc/fstab монтирования от моего пользователя (не root) с полным доступом ко всем файлам и папкам

//192.168.1.110/smb_mount /opt/F   cifs   user,rw,credentials=/root/.cifsmnt,file_mode=0777,dir_mode=0777,uid=1000,gid=1000 0 0
Размонтирование SMB

Размонтировать сетевую папку SMB можно используя команду umount

В параметрах команды umount указываем директорию куда была смонтирована сетевая папка. В моем случае это /opt/F

Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu

Если смонтированная файловая система сейчас занята, появится сообщение umount: target is busy . В таком случае размонтировать получиться с ключом -l

Решение проблем монтирования

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

grep "cifs" /var/log/syslog
Ubuntu монтирует сетевой диск и монтирует файловую систему samba на ubuntu
Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.

Introduction


Prerequisites


  • A machine running Ubuntu 14.04 or newer
  • A machine running Windows XP or newer
  • The IP address or hostname of the Windows machine
  • The name of the file share on the Windows machine
  • A Windows username and password with permission to the file share
  • root access to the Ubuntu machine. Pretty much every command on this page requires root.

Enable Name Resolution


This optional step requires Ubuntu 18.04 or newer and allows you to use the hostname of your windows machines instead of its IP address.

First, install winbind and libnss-winbind

apt install winbind libnss-winbind

then, edit nsswitch.conf and find the line that starts with «hosts» and add «wins» after «files»

nano /etc/nsswitch.conf
systemctl restart winbind

Install cifs-utils


To be able to control the kernel’s cifs client, you’ll need to install cifs-utils:

apt install cifs-utils

Manual mounting from the command line


All of these commands require root permission, so let’s just start bash with root so we don’t have to type sudo on everything:

sudo bash

You’ll need to create a folder to host the mount point:

mkdir /mnt/share1

Most basic mount command


This command will only work if the windows machine as the “Turn OFF password protected sharing” option set.

Let’s start out with the most basic form of the mount command that actually works:

mount //win10/share1 /mnt/share1

Unmounting


To UNmount it:

umount /mnt/share1

(notice it’s not unmount, it’s umount)

Mount with read/write access


mount -o noperm //win10/share1 /mnt/share1

Mount with authentication — next line

mount -o noperm,username=john,domain=domain1 //win10/share1 /mnt/share1

When it asks for a password, enter the windows password that goes with the windows account.

-o means mount options are specified next

noperm means “client does not do permission check”

replace “domain1” with the name of your active directory domain. If you don’t know what an active directory domain is, you don’t have one, so just leave this option blank or remove it.

replace “win10” with the hostname of your windows machine

Mount with authentication — same line

mount -o noperm,username=john,password=123,domain=domain1 //win10/share1 /mnt/share1

-o means mount options are specified next

noperm means “client does not do permission check”

replace “123” with the windows password

replace “domain1” with the name of your active directory domain. If you don’t know what an active directory domain is, you don’t have one, so just leave this option blank or remove it.

replace “win10” with the hostname of your windows machine

Mount with authentication — file

mount -o noperm,credentials=/root/creds.txt //win10/share1 /mnt/share1

-o means mount options are specified next

noperm means “client does not do permission check”

replace “win10” with the hostname of your windows machine

Now we need to create our creds.txt file

nano /root/creds.txt
username=john
password=123
domain=domain1

replace “123” with the windows password

replace “domain1” with the name of your active directory domain. If you don’t know what an active directory domain is, you don’t have one, so just leave this option blank or remove it.

You can make it readable only by root:

chmod 600 /root/creds.txt

FSTAB


If you want to have persistent mounts, so that the mounts get mounted automatically at boot time, you can use the fstab file.

nano /etc/fstab
//win10/share1  /mnt/share1     cifs    noperm,_netdev  0       0

replace “win10” with the hostname of your windows machine

cifs tells the kernel to use mount.cifs as opposed to ext3 or ntfs or some other type of file system

_netdev will cause the kernel to wait on the network to become ready before attempting the mount. Without this option, the mount will probably fail during boot because the network won’t be ready yet

the 2 zeros tell the kernel we don’t want to dump or check the filesystem

Now you can mount and unmount with very simple commands:

mount /mnt/share1
umount /mnt/share1

FSTAB with inline authentication


//win10/share1  /mnt/share1  cifs  noperm,_netdev,username=john,password=123,domain=domain1  0   0

replace “win10” with the hostname of your windows machine

cifs tells the kernel to use mount.cifs as opposed to ext3 or ntfs or some other type of file system

_netdev will cause the kernel to wait on the network to become ready before attempting the mount. Without this option, the mount will probably fail during boot because the network won’t be ready yet

replace “123” with the windows password

replace “domain1” with the name of your active directory domain. If you don’t know what an active directory domain is, you don’t have one, so just leave this option blank or remove it.

the 2 zeros tell the kernel we don’t want to dump or check the filesystem

Оцените статью
Хостинги