Меню Закрыть

Linux подключить сетевой диск windows

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

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

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

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

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

  1. В домашнем каталоге пользователя создаем точку монтирования (куда будет подключаться сетевая папка Windows), назовем эту папку scan:
  2. Файл /etc/fstab содержит информацию необходимую для автоматического монтирования разделов. Вызываем текстовый редактор xed (или любой другой который вам нравится) для редактирования:
  3. В конец этого файла добавляем строку такого вида:

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

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

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

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

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

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

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

Иногда нужно быстро подмонтировать к Linux сетевую шару Windows. Делается это очень просто одной командой в консоли с помощью mount -t cifs.

Читайте также:  Как заряжать геймпад ps4
10.1.5.43адрес шары
/mnt/documentsточка монтирования
user1пользователь с доступом к шаре
pass123пароль пользователя

Если получаете ошибку примерно такого содержания:

Установите пакет cifs-utils:

Debian/Ubuntu# apt-get install -y cifs-utils
Centos/RHEL# yum install -y cifs-utils

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

Чтобы подмонтировать виндовую шару навечно, надо отредактировать fstab:

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

Онлайн курс по Linux

Помогла статья? Есть возможность отблагодарить автора

Автор Zerox

11 комментариев

Спасибо тебе большое , добрый человек, за правильную команду mount -t cifs //10.1.5.43/documents /mnt/documents -o user=user1,password=pass123 .

При попытке использовать опции -t и -o получаем отлуп — только рут может использовать данные ключи.
Как обойти это при монтировании смб-шары пользователем с обычными правами?

Внесу, пожалуй, свои 5 копеек:

1) Монтирование шары через fstab — не по феншую, ввиду наличия проблем с загрузкой, в случае недоступности шары. Давно уже придуманы systemd mount-unit’ы — они позволяют монтироваться автоматически, при обращении к шаре или, если это требуется, монтироваться после инициализации сети (aka network-online.target).

2) Замечу так же, что для получения нормальной скорости, при переходе на 4-ю версию самбы, требуется фиксить версии используемых протоколов. В противном случае получим значительный просад по скорости. Конфиги при этом требуется править как на сервере, так и на клиенте указывая минимальную версию протокола — SMB2. Примерно так:

server min protocol = SMB2
server max protocol = SMB3
client min protocol = SMB2
client max protocol = SMB3
min protocol = SMB2
max protocol = SMB3
client ipc min protocol = SMB2

В случае монтирования из консоли, так же лучше указать это в опциях, пример:

sudo mount
-t cifs //10.1.5.43/documents /mnt/documents
-o u >

где `vers=3.0` — версия протокола

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

Вы уверены что надо так: \10.1.5.43documents ….
а не так: //10.1.5.43/documents

Пробовал у себя как у Вас в примере написано, не заработало, повернул слеши и шара подцепилась.
Правда у меня не CentOS, а Mageia, но fstab думаю и в Африке fstab :))

Спасибо за замечание. Вы правы, слеши должны быть в другую сторону, как и в команде на ручное монтирование. Это была ошибка.

Читайте также:  Как написать человеку который заблокировал тебя вк

Добрый день! Подскажите пож-та, может сталкивались с такой проблемой и решили её: Есть Ubuntu 18.04 Gui gnome, введена в домен AD, логинятся доменные пользователи. Доступ залогиненных доменных пользователей к обменной папке на win2008r2 производится следующим образом: через nautilus-> другие места-> smb://server/obmen. В Nautilus появляется примонтированный obmen. Нажимаю ПКМ и добавляю в закладки(закладка останется в списке постоянно). Но при интенсивной работе c файлами в обменнике, он периодически отваливается с одной из двух ошибок: 1. Не удалось показать «server-11(smb)». Неизвестный тип файла 2. Ой, что-то пошло не так. Недостаточно прав для получения доступа к запрошенному адресу. Если выполнить smbclient -L server, то папку obmen видно. К папкам на других серверах доступ остаётся. В smb.conf вписал client max protocol = NT1. Есть подозрение, что проблема кроется в libreoffice, который не совсем корректно работает с файлами по сети. Как можно примонтировать сетевую папку скриптом в автозагрузке доменного пользователя, чтобы была сквозная доменная авторизация(пароли доменных пользователей меняются раз два месяца) т.к. нет возможности явно указать пароли в fstab?

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

Команда для автоматического монтирования не сработала. Добавил в /etc/fstab. Подскажите в чем может быть проблема. Может какие-то логи можно посмотреть?

В логах должна отразиться ошибка. Если через fstab совсем не получается и не понятно почему, а через консоль монтирует, то можно команду для монтирования через консоль просто добавить в /etc/rc.local Эффект будет тот же самый.

слеши в начале строчки разверни в другую сторону, по линуксовому =)

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

apt-get install cifs-utils

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

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

И наконец само подключение сетевой папки 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, вы получите примерно следующую строчку:

где 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,u >

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

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,u >

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

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

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

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

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

mount.cifs //SERVER_IP/SHARE_NAME /mnt/winshare -o credentials=/etc/credentials,u >

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

//192.168.0.1/share /mnt/winshare cifs credentials=/etc/credentials,u >

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

Рекомендуем к прочтению

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

code

Adblock detector