Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 0

[Решено] Как в Thunderbird вложить файл из сетевой папки Windows? Подключаем сетевой диск Windows в Linux.

07/13/2015

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

apt-get install cifs-utils

Эта команда проверит, установлен ли указанный пакет и, если нет, установит его.

Создайте в /mnt (или любом другом месте) папку, в которую мы будем подключать сетевой диск Windows:

mkdir /mnt/winshare

И наконец само подключение сетевой папки Windows в Linux выполняется с помощью команды mount.cifs

mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o username=WIN_USER_NAME,password=WIN_USER_PASSWORD

Такая команда выполнит присоединение к фаловой системе Linux сетевого диска Windows с именем SHARE_NAME, расположенного на сервере с IP-адресом SERVER_IP от имени WIN_USER_NAME с паролем WIN_USER_PASSWORD. Следует понимать, что на стороне Windows уже логичным образом указанная папка должна быть расшарена и права на доступ к ней должны принадлежать указанному пользователю.

В большинстве случаев этого достаточно, если вы работаете от лица суперпользователя. Если же вы от лица суперпользователя производите только подключение сетевой папки Windows, а работать с ней планируете от лица обычного, непривелегированного пользователя, то в качестве опции команде mount.cifs необходимо передать значения UID и GID этого пользователя, иначе, скорее всего, вам не будут доступны операции редактирования файлов и каталогов. Получить UID и GID пользователя можно командой:

grep MY_USER_NAME /etc/passwd

Подставив вместо MY_USER_NAME имя пользователя, под которым вы работаете в Linux, вы получите примерно следующую строчку:

MY_USER_NAME:x:1000:1000:user,,,:/home/user:/bin/bash

где 3-е и 4-е поле как раз указывают на UID и GID пользователя MY_USER_NAME. Теперь просто подставим полученные значения в качестве дополнительных аргументов команды mount.cifs:

mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o username=WIN_USER_NAME,password=WIN_USER_PASSWORD,uid=1000,gid=1000

где uid=1000,gid=1000 — uid и gid, полученные из примера выше.

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

mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o guest

И наконец, чтобы в Linux автоматически подключать сетевую папку после перезагрузки, вносим соответствующую информацию в /etc/fstab (дописываем в конец файла):

//SERVER_IP/SHARE_NAME   /MOUNT_POINT_PATH   cifs   ALL_OPTIONS   0   0

Т.е. должно получиться что-то вроде

//192.168.0.1/share   /mnt/winshare   cifs user=WIN_USER_NAME,password=WIN_USER_PASSWORD,uid=1000,gid=1000   0   0

Вы скажите, что это плохо — хранить пароль в открытом виде в файле, доступном для чтения всем, и будете правы. К счастью, разработчики об это позаботились. Создаем файл с помощью редактора, например, nano:

nano /etc/credentials   #имя файла может быть любым

такого содержания:

   username=WIN_USER_NAME

   password=WIN_USER_PASSWORD

   domail=WIN_WORKGROUP

Делаем его доступным для чтения и записи только для пользователя root:

chmod 600 /etc/credentials   #указывайте файл, который создавали вы

и вместо всей обвязки из имен и паролей просто пишем в опциях credentials=/etc/credentials (или тот файл, который вы создали). Эта опция работает как при ручном монтировании сетевого диска Windows

mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o credentials=/etc/credentials,uid=1000,gid=1000

так и автоматическом, при внесении записи в /etc/fstab (из примера выше):

//192.168.0.1/share   /mnt/winshare   cifs   credentials=/etc/credentials,uid=1000,gid=1000   0   0

Примечание. Если вы используете дистрибутив, основанный на SystemD (Debian версии 8 и выше, Ubuntu версии 15.04 и выше, Fedora, ArchLinux…), применение файла /etc/fstab для автоматического монтирования файловых систем является нежелательным, так как SystemD использует несколько другой механизм для монтирования файловых систем, хотя он и обратно совместим с /etc/fstab. Узнать, как можно использовать возможности SystemD для монтирования файловых систем можно в статье SystemD Automount

Статьи по теме: SystemD AutomountНоябрь, 17th 2016Рубрика:*NIX 11456Подписаться накомментарии по RSS

Сперва обозначу суть проблемы — файловом менеджер Thunderbird не видит сетевых папок в Linux Mint / Ubuntu (другие дистрибутивы не проверял), соотвественно нет возможности прикреплять файлы к сообщениям из расшаренных сетевых папок Windows. Вместо самого файла в поле вложения прописывается лишь путь к нему «smb://сервер/папка/файл.расширение» и при отправке сообщения выдается ошибка с просьбой проверить имеете ли вы доступ к файлу.

Конечно, можно просто скопировать необходимые для отправки файлы на свой компьютер, однако проделывать данную операцию постоянно довольно хлопотно. Скрадывать драгоценные минуты пользователей от общения в соцсетях на подобные «извращения» с файлами не наш метод. Придется выходить из сложившейся ситуации по другому.

Подключаем сетевой диск Windows в Linux

Поддержку сетевых дисков Windows в Linux обеспечивает пакет cifs-utils. В Linux Mint/Ubuntu обычно установлен по умолчанию, если нет, можно доустановить:

sudo apt-get install cifs-utils

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

В домашнем каталоге пользователя создаем точку монтирования (куда будет подключаться сетевая папка Windows), назовем эту папку scan:</li>

mkdir ~/scan

Файл /etc/fstab содержит информацию необходимую для автоматического монтирования разделов. Вызываем текстовый редактор xed (или любой другой который вам нравится) для редактирования:

sudo xed /etc/fstab

</li>В конец этого файла добавляем строку такого вида: </li>

//192.168.1.10/scan /home/user/scan cifs user=guest,password=guest,uid=1000,gid=1000 0 0

Сейчас поясню что это значит. Общий синтаксис файла такой:

//SERVER_IP/SHARE_NAME /MOUNT_POINT_PATH cifs ALL_OPTIONS 0 0

где:

  • //SERVER_IP/SHARE_NAME — расшаренный Windows ресурс, в нашем случае //192.168.1.10/scan
  • /MOUNT_POINT_PATH — полный путь до точки монтирования. У нас /home/user/scan
  • cifs — тип файловой системы монтируемого устройства
  • ALL_OPTIONS — параметры с которыми монтируется ресурс к системе. Подробнее во всеми опциями можно ознакомиться выполнив команду man mount.cifs. В примере я указал имя пользователя и пароль для подключения к Windows-ресурсу (guest) и значения UID и GID, так как подключение у нас производится от лица суперпользователя, а работать с ресурсом мы планируем от лица обычного, непривелегированного пользователя.
  • Последние два нуля 0 0 — указывают что не нужно делать резервную копию и проверять эту область при возникновении ошибок

Получить UID и GID нужного пользователя можно командой:

grep USER_NAME /etc/passwd

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

USER_NAME:x:1000:1000:user,,,:/home/user:/bin/bash

Ну и напоследок осталось рассказать о простом способе перемонтирования всех разделов из /etc/fstab без перезагрузки системы. Для этого есть следующая команда:

sudo mount --all

Эта команда перемонтирует все файловые системы указанные в /etc/fstab, за исключением разделов с опцией noauto.

defoto-250-288.jpg
Ошибка OpenVPN CRL has expired (просрочен список CRL)
encription-250-288.jpeg
Шифрование файлов с помощью OpenSSL
defoto-250-288.jpg
Remmina ошибка «Невозможно подключиться к серверу RDP»
kyocera1060-250-288.jpg
Подключение принтера KYOCERA FS-1060DN в Linux
defoto-250-288.jpg
CanoScan LiDE 110 в Ubuntu 10.04
defoto-250-288.jpg
Контроль переписки в Postfix («большой брат» следит за тобой)

Для того чтобы примонтировать сетевой диск samba необходимо отредактировать файл /etc/fstab например в терминале — sudo gedit /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- место шары в сети. в поле user -пишем вашего пользователя (вместо human) в поле password — ваш пароль, вместо 04-fadetoblack В папке media создаем каталог share,сделать это можно командой sudo mkdir /media/obmen Затем получаем права на него sudo chmod 777 -R -v  /media/share готово. Пробуем монтировать sudo mount /media/share После перезагрузки должен монтироваться по клику на папку Если Вам нужно подключить/примонтировать жесткий диск с файловой системой NTFS или ext2, ext3 к компьютеру на базе операционной системы Linux, то Вы читаете правильную статью. Зачем делать это руками, если современные desktop-системы Линукс делают автоматически? Есть отдельные случаи когда система Linux не может автоматически примонтировать/подключить диск в силу каких-то логических сбоев диска, вирусов, которыми заражены NTFS/FAT разделах или из-за еще чего-то аномального. Для этого настоящие системные администраторы делают это руками. И делают это командой mount.</span>

Содержание

Команда mount в линуксе является очень гибким инструментом в руках системного администратора. С помощью команды mount можно подключить сетевой диск, раздел жесткого диска или USB-накопитель. Данная статья не является полным, исчерпывающим описанием команды mount (полное описание команды mount можно найти выполнив в консоли команду man mount), но стремиться к этому. Статья по описанию команды mount постоянно дорабатывается и видоизменяется. Все пожелания по статье можете оставлять в комментариях. Устройства, которые в данный момент подключены к компьютеру, можно посмотреть набрав в консоли: # sudo fdisk -l Эта команда показывает все устройства, которые подключенны. Они могут быть не примонтированы, но подключены. На экране Вы увидите примерно это: Диск /dev/sda: 40.0 ГБ, 40020664320 байт255 heads, 63 sectors/track, 4865 cylindersUnits = цилиндры of 16065 * 512 = 8225280 bytesDisk 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 cylindersUnits = цилиндры of 16065 * 512 = 8225280 bytesDisk identifier: 0x973248adУстр-во Загр Начало Конец Блоки Id Система/dev/sdb1 * 1 9729 78148161 83 LinuxДиск /dev/sdc: 1027 МБ, 1027604480 байт32 heads, 62 sectors/track, 1011 cylindersUnits = цилиндры of 1984 * 512 = 1015808 bytesDisk identifier: 0x6f20736b

Из листинга выше видно, что к операционной системе подключено:

  1. два жестких диска: /dev/sda — операционная система и /dev/sdb — «файловая помойка»
  2. сменный 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

Монтирование разделов жесткого дискаНаверх</h2> Из приведенного примера видно, что жесткий диск /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Наверх</h2> Если Вам нужно примонтировать CD/DVD-ROM, то монтирование CD/DVD-ROM осуществляется точно так же, той же командой mount, которая были приведены выше: # sudo mount -t iso9660 -o ro /dev/cdrom /cdТолько при монтировании CD-ROM нужно указать тип файловой системы iso9660.

Монтирование образов диска ISOНаверх</h2>Если Вы хотите примонтировать образ диска ISO, то это тоже достаточно просто сделать командой mount: # sudo mount -t iso9660 -o loop /home/file.iso /home/isoГде /home/file.iso — путь и имя файла ISO /home/iso — точка монтированияДобавился только параметр -o loop, который указывает, что используется файл .iso.

Монтирование сетевых дисков SMBНаверх</h2> В некоторых случаях необходимо примонтировать удаленный сетевой диск. В некоторых дистрибутивах 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Наверх</h2> Есть альтернатива — графические инструменты монтирования в Linux. На просторах Internet`a можно найти много графических инструментов монтирования в Linux, но самым, наверное, продвинутым можно назвать — Mount Manager (Mount Manager — графический инструмент монтирования). Это продукт некоммерческой организации ViaLinx. Интерфейс программы простой, но функционал потрясает своей мощью, она может совершать абсолютно все действия, которые описаны в этой статье. Скачать программу можно с  или в репозиториях вашего дистрибутива (в Ubuntu этот менеджер есть).Используемые источники:

  • https://www.hippolab.ru/kak-podklyuchit-setevoy-disk-windows-v-linux
  • https://mdex-nn.ru/page/setevoj-disk-windows-v-linux.html
  • http://uraganltd.blogspot.com/2017/02/windows-linux.html

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации