Для того чтобы примонтировать сетевой диск samba необходимо отредактировать файл /etc/fstab
//192.168.0.76/obmen /media/obmen cifs _netdev,noauto,users,user=human,password=04-fadetoblack,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
//192.168.0.76/obmen- место шары в сети.
готово.
После перезагрузки должен монтироваться по клику на папку
Команда mount в Linux или все о монтировании разделов, дисков, образов ISO и SMB ресурсов.
Если Вам нужно подключить/примонтировать жесткий диск с файловой системой NTFS или ext2, ext3 к компьютеру на базе операционной системы Linux, то Вы читаете правильную статью.
Зачем делать это руками, если современные desktop-системы Линукс делают автоматически?
Есть отдельные случаи когда система Linux не может автоматически примонтировать/подключить диск в силу каких-то логических сбоев диска, вирусов, которыми заражены NTFS/FAT разделах или из-за еще чего-то аномального. Для этого настоящие системные администраторы делают это руками. И делают это командой mount.
Команда mount в линуксе является очень гибким инструментом в руках системного администратора. С помощью команды mount можно подключить сетевой диск, раздел жесткого диска или USB-накопитель.
Данная статья не является полным, исчерпывающим описанием команды mount (полное описание команды mount можно найти выполнив в консоли команду man mount), но стремиться к этому. Статья по описанию команды mount постоянно дорабатывается и видоизменяется. Все пожелания по статье можете оставлять в комментариях.
Устройства, которые в данный момент подключены к компьютеру, можно посмотреть набрав в консоли:
# sudo fdisk -l
Эта команда показывает все устройства, которые подключенны. Они могут быть не примонтированы, но подключены. На экране Вы увидите примерно это:
Диск /dev/sda: 40.0 ГБ, 40020664320 байт
255 heads, 63 sectors/track, 4865 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x815aa99a
Устр-во | Загр | Начало | Конец | Блоки | Id | Система |
/dev/sda1* | 1 | 1824 | 14651248+ | 83 | Linux | |
/dev/sda2 | 4742 | 4865 | 996030 | 82 | Linux | своп / Solaris |
/dev/sda3 | 1825 | 4741 | 23430802+ | 83 | Linux |
Пункты таблицы разделов расположены не в дисковом порядке
Диск /dev/sdb: 80.0 ГБ, 80026361856 байт
255 heads, 63 sectors/track, 9729 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0x973248ad
Устр-во Загр Начало Конец Блоки Id Система
/dev/sdb1 * 1 9729 78148161 83 Linux
Диск /dev/sdc: 1027 МБ, 1027604480 байт
32 heads, 62 sectors/track, 1011 cylinders
Units = цилиндры of 1984 * 512 = 1015808 bytes
Disk identifier: 0x6f20736b
Из листинга выше видно, что к операционной системе подключено:
- два жестких диска: /dev/sda — операционная система и /dev/sdb — «файловая помойка»
- сменный USB-носитель: /dev/sdc
Просмотр примонтированых устройств осуществляется командой:
# sudo mount
После этого на экране можно увидеть:
/dev/sda1 on / type reiserfs (rw,relatime,notail) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,nosuid,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
lrm on /lib/modules/2.6.27-14-generic/volatile type tmpfs (rw,mode=755)
/dev/sda3 on /home type ext3 (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/user/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=user)
/dev/sdc on /media/USBFlash type vfat (rw,nosuid,nodev,uhelper=hal, shortname=mixed,uid=1000,utf8, umask=077,flush)
- в первой строке сообщается, что в качестве корневой ФС выступает файловая система reiserfs с параметрами монтирования: доступ на чтение и запись (rw)
- /dev/sda3 — это раздел диска /home
- /dev/sdc — это примонтированное сменное USB-устройство
Этого же результата можно достигнуть посмотрев содержимое файла /etc/mtab (в некоторых системах Linux файл называется /etc/mnt/tab)
# cat /etc/mtab
Монтирование разделов жесткого диска
Наверх
Из приведенного примера видно, что жесткий диск /dev/sdb подключен, но не примонтирован. Примонтируем раздел жесткого диска /dev/sdb1 к диску /dev/sda. Точку монтирования выберем, к примеру — /home/user/Видео. Точку монтирования можно взять любую.
# sudo mount /dev/sdb1 /home/user/Видео
где user — это название Вашего имени пользователя.
Все очень просто, сначала пишется команда mount, потом пишется то, что нужно присоединять (цифра показывает номер раздела, у нас он всего один), а потом куда присоединять. Почти всегда этого достаточно. Диск, командой mount, монтируется в указанную папку. В некоторых случаях, когда имеются логические ошибки на разделах подключаемого жесткого диска, нужно дополнительно указать тип файловой системы. В данном случае у нас ext3.
# sudo mount -t ext3 /dev/sdb1 /home/user/Видео
Так же этот параметр может принимать значения:
- -t ntfsили -t ntfs-3g
- -t vfat
- -t iso9660
Соответственно для NTFS, FAT и CD-дисков файловых систем. Последний нужен только для подключения CD/DVD-ROM устройств и образа диска .iso.
Чтобы вручную задать параметры доступа к примонтированному разделу следует указать параметр:
- -o rw
- -o ro
Первый разрешает чтение и запись, второй только чтение. Ну например, так:
# sudo mount -t ext3 -o rw /dev/sdb1 /home/user/Видео
Дополнительные параметры, которые помогают в некоторых случаях:
# sudo mount -t ext3 -o rw,iocharset=utf8,codepage=866 /dev/sdb1 /home/user/Видео
Первый явно задает кодировку системной локали, в нашем случае это utf8 (для разных дистрибутивов она своя, но чаще utf8), а другая добавляет поддержку русского языка.
Если все же жесткий диск отказывается монтироваться в операционной системе Linux, то можно примонтировать его вручную. Параметр -o force позволяет принудительно монтировать разделы жесткого диска в линуксе. Ну, к примеру, так:
# sudo mount -t ext3 -o force /dev/sdb1 /home/user/Видео
У меня, к примеру, раздел жесткого диска не хотел монтироваться после подключения к Windows-машине, которая была заражена вирусами. Так получилось, что вирус кинул autorun.exe в корень моего раздела и Linux из-за этого не хотел монтировать этот раздел. Данный выше параметр команды mount помог примонтировать инфицированный раздел. После чего вирус успешно был удален вручную.
Есть в Linux уникальная возможность указать зеркало папки, которое получает все права и доступные над папкой действия. Допустим, раздел /dev/sdb1 применяется еще и для хранения документов. Зеркалим его в /home/user/Документы:
# sudo mount —bind /home/user/Видео /home/user/Документы
Действие команды mount —bind напоминает DOS-овский subst.
Посмотреть полную информацию(доступный объем диска, свободное место) о примонтированных устройствах можно командой:
# df -h
Отмонтироватние устройства производится командой:
# sudo umount /dev/sdb1
или
# sudo umount /home/user/Видео
Монтирование дисков CD/DVD-ROM
Наверх
Если Вам нужно примонтировать CD/DVD-ROM, то монтирование CD/DVD-ROM осуществляется точно так же, той же командой mount, которая были приведены выше:
# sudo mount -t iso9660 -o ro /dev/cdrom /cd
Только при монтировании CD-ROM нужно указать тип файловой системы iso9660.
Монтирование образов диска ISO
Наверх
Если Вы хотите примонтировать образ диска ISO, то это тоже достаточно просто сделать командой mount:
# sudo mount -t iso9660 -o loop /home/file.iso /home/iso
Где /home/file.iso — путь и имя файла ISO
/home/iso — точка монтирования
Добавился только параметр -o loop, который указывает, что используется файл .iso.
Монтирование сетевых дисков SMB
Наверх
В некоторых случаях необходимо примонтировать удаленный сетевой диск. В некоторых дистрибутивах Linux, он так же монтируется автоматически (например в Ubuntu) при открытии его по сети. Можно примонтировать его вручную командой mount через консоль. Можно сделать ярлык и поместив его на рабочем столе активировать его когда нужен удаленный доступ к сетевому ресурсу. Ну или мало еще для чего.
# sudo mount -t smbfs -o username=vasja,password=pupkin //pupkin_v/Video /home/user/video
Где username=vasja,password=pupkin — это имя и пароль доступа к удаленному сетевому ресурсу, а //pupkin_v/Video — имя сетевого ресурса, /home/user/video — точка монтирования
Графические инструменты монтирования в Linux
Наверх
Есть альтернатива — графические инструменты монтирования в Linux. На просторах Internet`a можно найти много графических инструментов монтирования в Linux, но самым, наверное, продвинутым можно назвать — Mount Manager (Mount Manager — графический инструмент монтирования). Это продукт некоммерческой организации ViaLinx. Интерфейс программы простой, но функционал потрясает своей мощью, она может совершать абсолютно все действия, которые описаны в этой статье. Скачать программу можно с
официального сайта
или в репозиториях вашего дистрибутива (в Ubuntu этот менеджер есть).
Монтирование SMB не что иное как подключение сетевой папки WIndows в Linux. SMB (Server Message Block) — сетевой протокол удаленного доступа к сетевым ресурсам (файлы, папки, принтеры и т.п.). В первой версии протокола был известен также как CIFS (Common Internet File System). Протоком SMB повсеместно используется во всех ОС Microsoft Windows.
В современных дистрибутивах Linux уже можно совершенной спокойно путешествовать по сетевым дискам. Но куда удобнее если смонтировать сетевой диск сразу в папку, да еще и на рабочем столе, красота. Я создал папку с общим доступом на сервере Hyper-V, её и буду монтировать. Монтирование SMB буду делать под специально заведенным пользователем, дабы не светить пароль админа.
Монтируемая папка
Монтируемая директория доступна только администраторам и пользователю smb (создан специально для монтирования). Сделать общую папку на сервере Windows можно двумя способами: 1 — через свойства папки; 2 — через Powershell. Через свойства папки проще и быстрее как для новичка.
Но в моем случае с сервером HyperV 2019 сработал только второй способ, через Powershell.
New-SmbShare -Name "smb_mount" -Path "F:smb_mount" -FullAccess "Administrator", "smb"
Данной командой я сделал общей папку расположенную по пути F:smb_mount и присвоил ей имя smb_mount. Права на доступ к папке выдал пользователю Administrator и smb.
Общая папка у меня доступна по пути \hvs19smb_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 — папка куда монтируем.
Посмотрим что все получилось, проверим свободное место в сетевой папке
Можно использовать дополнительные возможности при монтировании, используя ключи после параметра -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
Сохраним файл и перезагрузим компьютер. После этого сетевая папка будет монтироваться автоматически.
Разберем указанные параметры
- //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
Если смонтированная файловая система сейчас занята, появится сообщение umount: target is busy . В таком случае размонтировать получиться с ключом -l
Решение проблем монтирования
Если по какой либо причине после ваших попыток папка все же не монтируется, необходимо смотреть системный журнал.
grep "cifs" /var/log/syslog
В системном журнале будет указана причина ошибки монтирования. Как пример не верный логин/пароль, не установленные утилиты cifs и т.п.
Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.
В операционных системах Linux и UNIX общий ресурс Windows можно смонтировать в определенной точке монтирования в дереве локальных каталогов, используя cifs
параметр mount
команды.
Общая файловая система Интернета (CIFS) — это сетевой протокол обмена файлами. CIFS является формой SMB.
Установка пакетов утилит CIFS
Чтобы смонтировать общий ресурс Windows в системе Linux, сначала необходимо установить пакет утилит CIFS.
-
Установка утилит CIFS в Ubuntu и Debian:
sudo apt update
sudo apt install cifs-utils
-
Установка утилит CIFS в CentOS и Fedora:
sudo dnf install cifs-utils
Имя пакета может отличаться в разных дистрибутивах Linux.
Монтирование удаленного общего ресурса Windows аналогично монтированию обычных файловых систем.
Сначала создайте каталог, который будет служить точкой монтирования для удаленного общего ресурса Windows:
sudo mkdir /mnt/win_share
Запустите следующую команду как пользователь root или пользователь с правами sudo для монтирования общего ресурса:
sudo mount -t cifs -o username=<win_share_user> //WIN_SHARE_IP/<share_name> /mnt/win_share
Вам будет предложено ввести пароль:
Password:
В случае успеха не выводится.
Чтобы убедиться, что удаленный общий ресурс Windows успешно смонтирован, используйте команду mount
или df -h
.
После монтирования общего ресурса точка монтирования становится корневым каталогом смонтированной файловой системы. Вы можете работать с удаленными файлами, как если бы они были локальными файлами.
Пароль также можно указать в командной строке:
sudo mount -t cifs -o username=<win_share_user>,password=<win_share_password> //WIN_SHARE_IP/<share_name> /mnt/win_share
Если пользователь находится в рабочей группе или домене Windows, вы можете установить его следующим образом:
sudo mount -t cifs -o username=<win_share_user>,domain=<win_domain> //WIN_SHARE_IP/<share_name> /mnt/win_share
Для большей безопасности рекомендуется использовать файл учетных данных, который содержит имя пользователя, пароль и домен общего ресурса.
Файл учетных данных имеет следующий формат:
/etc/win-credentials
username = user
password = password
domain = domain
Файл не должен быть доступен для чтения пользователям. Чтобы установить правильные разрешения и владельца , запустите:
sudo chown root: /etc/win-credentials
sudo chmod 600 /etc/win-credentials
Чтобы использовать файл учетных данных, определите его следующим образом:
sudo mount -t cifs -o credentials=/etc/win-credentials //WIN_SHARE_IP/<share_name> /mnt/win_share
По умолчанию подключенный общий ресурс принадлежит пользователю root, а разрешения установлены на 777.
Используйте dir_mode
опцию, чтобы установить разрешение каталога и file_mode
установить разрешение файла:
sudo mount -t cifs -o credentials=/etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
Пользователь по умолчанию и группа собственность могут быть изменены с uid
и gid
опциями:
sudo mount -t cifs -o credentials=/etc/win-credentials,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
Чтобы установить дополнительные параметры , добавьте их в виде списка через запятую после -o
параметра. Чтобы получить список всех опций монтирования, введите man mount
ваш терминал.
Авто монтаж
Когда общий ресурс монтируется вручную с помощью mount
команды, он не сохраняется после перезагрузки.
/etc/fstab
Файл содержит список записей , которые определяют , где , как и то , что файловая система будет смонтирована на старте системы.
Чтобы автоматически смонтировать общий ресурс Windows при запуске вашей системы Linux, определите монтирование в /etc/fstab
файле. Строка должна содержать имя хоста или IP-адрес ПК с Windows, имя общего ресурса и точку монтирования на локальном компьютере.
Откройте /etc/fstab
файл в текстовом редакторе :
sudo nano /etc/fstab
Добавьте следующую строку в файл:
/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass>
//WIN_SHARE_IP/share_name /mnt/win_share cifs credentials=/etc/win-credentials,file_mode=0755,dir_mode=0755 0 0
Выполните следующую команду для монтирования общего ресурса:
sudo mount /mnt/win_share
Команда, будет читать содержание
mount /etc/fstab
и установить долю.
При следующей перезагрузке системы общий ресурс Windows будет смонтирован автоматически.
Команда umount
отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.
Чтобы отсоединить подключенный общий ресурс Windows, используйте umount
команду с указанием либо каталога, в котором он был подключен, либо удаленного общего ресурса:
sudo umount /mnt/win_share
Если в fstab
файле CIFS есть запись в файле, удалите ее.
Команда umount
не сможет отсоединить общий ресурс, когда он используется. Чтобы узнать, какие процессы обращаются к общему ресурсу Windows, используйте fuser
команду:
fuser -m MOUNT_POINT
Найдя процессы, вы можете остановить их с помощью kill
команды и размонтировать общий ресурс.
Если у вас по-прежнему возникают проблемы с размонтированием общего ресурса, используйте параметр -l
( --lazy
), который позволяет размонтировать занятую файловую систему, как только она больше не будет занята.
sudo umount -l MOUNT_POINT
Вывод
В Linux вы можете смонтировать общий доступ к Windows, используя mount
команду с cifs
параметром.
В сети 2 машины. Одна из них винда с папкой shared-folder доступной по сети, вторая — Debian 10. Задача: расшарить на unix указанный каталог, сделав из него сетевой диск. Рассмотрим 3 способа:
- Монтирование сетевого диска из командной строки
- Монтирование сетевого диска указанного в /etc/fstab
- Монтирование сетевого диска из systemd
Все операции выполняем под root. В первую очередь в Linix создадим каталог куда будем монтировать /mnt/shared-folder и установим необходимые пакеты
mkdir /mnt/shared—folder apt install cifs—utils —y |
Создадим файлик с паролем и логином к сетевому ресурсу и поставим на него нужные права от чужих глаз
echo —e «username=youusernamenpassword=12345» > /etc/samba/passwd chmod 0600 /etc/samba/passwd |
Монтирование сетевого диска из командной строки
mount —t cifs //192.168.56.1/share—folder /mnt/share—folder —o noexec,noperm,iocharset=utf8,credentials=/etc/samba/passwd mount && df umount /mnt/share—folder |
Смонтировали — посмотрели что смонтировали — размонтировали
Монтирование сетевого диска указанного в /etc/fstab
В данном случае после ребута наш сетевой диск будет монтирован автоматически. Открываем /etc/fstab
Добавляем строку
//192.168.56.1/share-folder /mnt/share-folder cifs noexec,noperm,iocharset=utf8,credentials=/etc/samba/passwd 0 0 |
Монтируем — смотрим — размонтируем:
mount /mnt/share—folder mount && df umount /mnt/share—folder |
Ребут сервера: reboot
Смотрим: mount && df
Смонтировано. Пока оставим смонтированным и перейдем к следующему способу.
Монтирование сетевого диска из systemd
Посмотрим на этот файлик в каталоге /run/systemd/generator/
cat /run/systemd/generator/mnt—sharex2dfolder.mount |
Этот юнит нам автоматически сгенерировал systemd-fstab-generator из указанного нами в /etc/fstab
# Automatically generated by systemd-fstab-generator [Unit] SourcePath=/etc/fstab Documentation=man:fstab(5) man:systemd—fstab—generator(8) Before=remote—fs.target [Mount] What=//192.168.56.1/share—folder Where=/mnt/share—folder Type=cifs Options=noexec,noperm,iocharset=utf8,credentials=/etc/samba/passwd |
Копируем его:
cp «/run/systemd/generator/mnt-sharex2dfolder.mount» «/lib/systemd/system/mnt-sharex2dfolder.mount» |
Обратите внимание, что переименовывать юнит файл нельзя, генератор нам добавил хренов бекслеш и закодировал дефис в имени, что вызовет неказистость в будущих командах systemctl, но ничего не поделать. Единственный выход — использовать другое имя для каталога монтирования /mnt/share-folder Поэтому в командах либо заключаем имя в кавычки, либо беслешим бекслеш как тут:
cp /run/systemd/generator/mnt—sharex2dfolder.mount /lib/systemd/system/mnt—sharex2dfolder.mount |
Открываем юнит и редактируем:
nano /lib/systemd/system/mnt—sharex2dfolder.mount |
Это нужно добавить внизу:
[Install] WantedBy=remote—fs.target |
А это права:
chmod 0600 /lib/systemd/system/mnt—sharex2dfolder.mount |
Не забываем размонтировать диск и отредактировать fstab убрав строку монтирования
umount /mnt/share—folder nano /etc/fstab |
Перезагружаем конфиги systemctl
Готово, управляем сетевым диском из systemd
systemctl status mnt—sharex2dfolder.mount systemctl is—enabled mnt—sharex2dfolder.mount systemctl enable mnt—sharex2dfolder.mount systemctl start mnt—sharex2dfolder.mount systemctl stop mnt—sharex2dfolder.mount systemctl disable mnt—sharex2dfolder.mount |
- Посмотрели статус
- Проверили включена ли автозагрузка(монтирование при загрузке)
- Включили автозагрузку(монтирование при загрузке)
- Смонтировали сетевой диск
- Размонтировали сетевой диск
- Отключили автозагрузку(монтирование при загрузке)
В операционных системах Linux и UNIX общий ресурс Windows можно cifs
к определенной точке монтирования в локальном дереве каталогов с cifs
опции cifs
команды mount
.
Common Internet File System (CIFS) — это сетевой протокол обмена файлами. CIFS — это форма SMB.
В этом руководстве мы объясним, как вручную и автоматически монтировать общие ресурсы Windows в системах Linux.
Установка пакетов утилит CIFS
Чтобы смонтировать общий ресурс Windows в системе Linux, сначала необходимо установить пакет утилит CIFS.
-
Установка утилит CIFS в Ubuntu и Debian:
sudo apt update
sudo apt install cifs-utils
-
Установка утилит CIFS на CentOS и Fedora:
sudo dnf install cifs-utils
Имя пакета может отличаться в зависимости от дистрибутива Linux.
Монтирование общего ресурса CIFS Windows
Подключение удаленного общего ресурса Windows аналогично монтированию обычных файловых систем.
Сначала создайте каталог, который будет точкой монтирования для удаленного общего ресурса Windows:
sudo mkdir /mnt/win_share
Выполните следующую команду от имени пользователя root или пользователя с привилегиями sudo, чтобы смонтировать общий ресурс:
sudo mount -t cifs -o username=<win_share_user> //WIN_SHARE_IP/<share_name> /mnt/win_share
Вам будет предложено ввести пароль:
Password:
В случае успеха вывод не производится.
Чтобы убедиться, что удаленный общий ресурс Windows успешно смонтирован, используйте команду mount
или df -h
.
После монтирования общего ресурса точка монтирования становится корневым каталогом смонтированной файловой системы. Вы можете работать с удаленными файлами, как если бы они были локальными.
Пароль также можно указать в командной строке:
sudo mount -t cifs -o username=<win_share_user>,password=<win_share_password> //WIN_SHARE_IP/<share_name> /mnt/win_share
Если пользователь находится в рабочей группе или домене Windows, вы можете установить его следующим образом:
sudo mount -t cifs -o username=<win_share_user>,domain=<win_domain> //WIN_SHARE_IP/<share_name> /mnt/win_share
Для большей безопасности рекомендуется использовать файл учетных данных, который содержит имя пользователя, пароль и домен общего ресурса.
Файл учетных данных имеет следующий формат:
/etc/win-credentials
username=user
password=password
domain=domain
Файл не должен быть доступен для чтения пользователям. Чтобы установить правильные разрешения и владение , запустите:
sudo chown root: /etc/win-credentials
sudo chmod 600 /etc/win-credentials
Чтобы использовать файл учетных данных, определите его следующим образом:
sudo mount -t cifs -o credentials=/etc/win-credentials //WIN_SHARE_IP/<share_name> /mnt/win_share
По умолчанию подключенный общий ресурс принадлежит пользователю root, а права доступа установлены на 777.
Используйте параметр dir_mode
чтобы установить права file_mode
к каталогу, и file_mode
чтобы установить права file_mode
к файлу:
sudo mount -t cifs -o credentials=/etc/win-credentials,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
Владение пользователем и группой по умолчанию можно изменить с помощью параметров uid
и gid
:
sudo mount -t cifs -o credentials=/etc/win-credentials,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //WIN_SHARE_IP/<share_name> /mnt/win_share
Чтобы установить дополнительные параметры , добавьте их в виде списка, разделенного запятыми, после параметра -o
. Чтобы получить список всех параметров монтирования, введите в терминале man mount
.
Автоматический монтаж
Когда общий ресурс монтируется вручную с помощью команды mount
, он не сохраняется после перезагрузки.
Файл /etc/fstab
содержит список записей, определяющих, где, как и какая файловая система будет монтироваться при запуске системы.
Чтобы автоматически монтировать общий ресурс Windows при запуске системы Linux, определите монтирование в /etc/fstab
. Строка должна включать имя хоста или IP-адрес ПК с Windows, имя общего ресурса и точку монтирования на локальном компьютере.
Откройте файл /etc/fstab
текстовом редакторе :
sudo nano /etc/fstab
Добавьте в файл следующую строку:
/etc/fstab
# <file system> <dir> <type> <options> <dump> <pass>
//WIN_SHARE_IP/share_name /mnt/win_share cifs credentials=/etc/win-credentials,file_mode=0755,dir_mode=0755 0 0
Выполните следующую команду, чтобы смонтировать общий ресурс:
sudo mount /mnt/win_share
Команда mount
прочитает содержимое /etc/fstab
и смонтирует общий ресурс.
В следующий раз, когда вы перезагрузите систему, общий ресурс Windows будет подключен автоматически.
Отключение общего ресурса Windows
Команда umount
отсоединяет (размонтирует) смонтированную файловую систему от дерева каталогов.
Чтобы отсоединить смонтированный общий ресурс Windows, используйте команду umount
за которой следует либо каталог, в котором он был смонтирован, либо удаленный общий ресурс:
sudo umount /mnt/win_share
Если для CIFS-монтирования есть запись в fstab
, удалите ее.
Команда umount
не сможет отсоединить общий ресурс, когда он используется. Чтобы узнать, какие процессы обращаются к общему ресурсу Windows, используйте команду fuser
:
fuser -m MOUNT_POINT
Как только вы найдете процессы, вы можете остановить их с помощью команды kill
и отключить общий ресурс.
Если у вас все еще есть проблемы с --lazy
ресурса, используйте параметр -l
( --lazy
), который позволяет вам отключить занятую файловую систему, как только она больше не будет занята.
sudo umount -l MOUNT_POINT
Выводы
В Linux вы можете cifs
к Windows с помощью команды mount
с опцией cifs
.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Обновлено: 14.07.2021
Опубликовано: 18.07.2016
Что такое Linux и CIFS простыми словами.
Работа с общими папками Windows происходит с использованием протокола CIFS (SMB). Все примеры в данном руководстве выполняются на Linux Ubuntu и CentOS.
Подготовительная работа
Синтаксис mount
Ручное монтирование
Автоматическое монтирование
Примеры
Подготовка
Установка пакетов
Для монтирования общей папки необходимо установить набор утилит для работы с CIFS.
CentOS:
yum install cifs-utils
Ubuntu:
apt-get install cifs-utils
Сетевые порты
Если мы будем монтировать сетевую папку, сервер которой находится за брандмауэром, необходимо открыть следующие порты:
- 137/UDP
- 138/UDP
- 139/TCP
- 445/TCP
Синтаксис
mount.cifs <папка на сервере> <во что монтируем> <-o опции>
* вместо mount.cifs можно написать mount -t cifs.
Пример:
mount.cifs //192.168.1.1/public /mnt
* простой пример монтирования папки public на сервере 192.168.1.1 в локальный каталог /mnt.
Ручное монтирование
Теперь монтирование можно выполнить следующей командой:
mount.cifs //192.168.1.10/share /mnt -o user=dmosk
* в данном примере будет примонтирован каталог share на сервере 192.168.1.10 в локальную папку /mnt под учетной записью dmosk.
То же самое, с использованием домена:
mount.cifs //192.168.1.10/share /mnt -o user=dmosk,domain=dmosk.local
Автоматическое монтирование CIFS через fstab
Для начала создаем файл, в котором будем хранить данные авторизации при подключении к общей папке:
vi /root/.smbclient
И добавляем в него данные следующего вида:
username=dmosk
password=dPassw0rd
domain=dmosk.local
* в этом примере создана пара логин/пароль — dmosk/dPassw0rd; domain указывать не обязательно, если аутентификация выполняется без него.
Теперь открываем конфигурационный файл fstab:
vi /etc/fstab
и добавляем в него следующее:
//192.168.1.10/share /mnt cifs user,rw,credentials=/root/.smbclient 0 0
* в данном примере выполняется монтирование общей папки share на сервере с IP-адресом 192.168.1.10 в каталог /mnt. Параметры для подключения — user: позволяет выполнить монтирование любому пользователю, rw: с правом на чтение и запись, credentials: файл, который мы создали на предыдущем шаге.
Чтобы проверить правильность настроек, вводим следующую команду:
mount -a
Примеры использования опций
Версии SMB
Если на стороне Windows используется старая или слишком новая версия протокола SMB, при попытке монтирования мы можем получить ошибку mount error(112): Host is down. Чтобы это исправить, указываем версию:
mount.cifs //192.168.1.10/share /mnt/ -o vers=1.0
* монтирование по протоколу SMB1.0
Монтирование от гостевой учетной записи
Если сервер принимает запросы без логина и пароля, то клиент подключается, как гость:
mount.cifs //192.168.1.10/share /mnt -o guest
или в fstab:
//192.168.1.10/share /mnt cifs guest 0 0
Права на примонтированные каталоги
При монтировании папки мы можем указать определенные права:
mount.cifs //192.168.1.10/share /mnt -o file_mode=0777,dir_mode=0777
Для указания владельца, который будет назначен для примонтированного каталога, используем:
mount.cifs //192.168.1.10/share /mnt -o uid=33,gid=33
* чтобы посмотреть идентификаторы пользователя, вводим id -u <имя пользователя> и id -g <имя группы>.