Ubuntu подключение сетевого диска windows

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

Поддержку сетевых дисков 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,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 #имя файла может быть любым

Делаем его доступным для чтения и записи только для пользователя 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 (из примера выше):

Читайте также:  Philips 245e1s драйвер windows 10

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

Заметки Белого Рыцаря

30 октября 2009 г.

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

Предположим, что на компьютере с IP адресом 192.168.0.1 открыта на доступ папка linux и нам нужно подключить ее в Ubuntu, чтобы получить к ней доступ, как к любой другой папке на диске.

    Подключение сетевого диска вручную
    После выполнения следующих команд содержимое сетевой папки //192.168.0.1/linux будет доступно пользователю в директории /media/sharename на локальном компьютере:

    sudo mkdir /media/sharename
    sudo mount //192.168.0.1/linux /media/sharename/ -o username=myusername,password=mypassword

Почему-то у меня при попытке подключиться к расшаренным windows-папкам пришлось указывать и username и password, даже для дисков, которые расшарены для всех. Если их вообще не писать, то попытка монтировки происходила под пользователем root, и mount возвращал ошибку -13 (permission denied), а если указать только имя пользователя — высвечивал приглашение ввести пароль доступа к папке.

Подключение сетевого диска вручную на чтение/запись для всех пользователей

sudo mkdir /media/sharename
sudo mount //192.168.0.1/linux /media/sharename/ -o username=myusername,password=mypassword,dmask=777,fmask=777

Подключение сетевого диска на этапе загрузки через fstab

sudo mkdir /media/sharename
sudo cp /etc/fstab /etc/fstab_backup

Создать файл /root/.smbcredentials и добавить следующие строки:
username=myusername
password=mypassword

Сделать файл /root/.smbcredentials недоступным для пользователей, а для root — только на чтение:
sudo chmod 400 /root/.smbcredentials

В файл /etc/fstab добавить следующие строки:
//192.168.0.1/linux /media/sharename smbfs credentials=/root/.smbcredentials 0 0

Для доступа на чтение/запись для всех:
//192.168.0.1/linux /media/sharename smbfs credentials=/root/.smbcredentials,dmask=777,fmask=777 0 0

На данный момент (в Ubuntu 9.10) тип smbfs устарел, поэтому нужно использовать тип cifs . Для типа cifs вместо dmask и fmask нужно указывать параметры dir_mode и file_mode , причем числовые значения этих параметров должны начинаться с нуля — » dir_mode=0777,file_mode=0777 «.

Подключение дисков из fstab без перезагрузки операционой системы
sudo mount -a

  • Синтаксис:
    Для smbfs — //192.168.1.1/foldername
    Для nfs — 192.168.1.1:/foldername
  • Дополнения:

    1. Если подключения диска не происходит, то можно посмотреть коды возвращаемых ошибок с помощью команды dmesg , а еще лучше запустить mount с помощью утилиты strace — sudo strace mount . .

    Если mount возвращает ошибку (или вообще происходит нечно непонятное), то в первую очередь убедитесь, что у вас установлен mount , соответствующий типу файловой системы, которую вы хотите подключить. Например, для nfs в системе должен быть установлен mount.nfs , для smbfs — mount.smbfs , для cifs — mount.cifs и т.д. В качестве иллюстрации проблемы можно привести пример с cifs : при отсутствующем mount.cifs можно вполне успешно примонтировать cifs-диск используя параметры » username=. password=. «, но при этом попытка использования credential-файлов, будет заканчиваться ошибкой (http://ubuntuforums.org/archive/index.php/t-79612.html).

    Ошибка монтирования » mount error 12 = Cannot allocate memory » при попытке подключения к расшаренной папке Windows.

    Возможная причина — не хватает памяти на сервере (то есть, в Windows), а не на клиенте. В этом случае, могут помочь изменения в реестре Windows: . \LanmanServer
    \Parameters\IRPStackSize (для XP, 2000, NT) или . /LanmanServer\Parameters\Size и . \Session Manager\Memory Management\LargeSystemCache (для Windows 7).

    Ошибка монтирования » mount error 5 = Input/output error «. В логах dmesg сообщается об ошибке «CIFS VFS: cifs_read_super: get root inode failed«.

    Если при этом упоминается «Malformed FILE_UNIX_BASIC_INFO response«, то возможно поможет добавление nounix в параметры вызова команды mount .

    Еще одна возможная причина — проблемы с правами доступа к расшаренной папке. У меня такая ошибка возникла, когда на папку, которую, я хотел примонтировать, в числе прочих были установлены права «Everyone — Access denied». После корректировки прав доступа всё успешно примонтировалось.

    Проблема монтирования CIFS диска на Ubuntu 9.10 — ресурс расшарен на другой unix-системе и успешно монтируется, но доступен только на чтение, хотя, если подключиться к этому ресурсу с помощью smbclient , то ресурс доступен и на чтение, и на запись.

    Как быстро подмонтировать сетевой диск в Linux

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

    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

    Помогла статья? Подписывайся на telegram канал автора

    Автор Zerox

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

    Добрый день, были ли у вас проблемы в монтировании шары в CentOS 8, а именно в моём случае если к шаре в течении получаса не было обращений, то он как бы отключается, и становится не доступна (настроена через fstab), причём если перезагрузиться то всё снова успешно монтируется.

    Надо признать, что если тоже самое повторить в CentOS 7 — то там не таких проблем, шара живёт вечно :/

    Не сталкивался с таким. Правда я и шары очень редко подключаю к linux серверам. А что конкретно происходит, когда шара недоступна? Она в системе остается? Какая ошибка при обращении к ней?

    Как смонтировать папку тольк для чтения ?

    Все объекты, что в шаре, стали иметь владельца root)))
    Даже если монтировать через sudo.

    Спасибо тебе большое , добрый человек, за правильную команду 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 uid=$(id -u),gid=$(id -g),rw,vers=3.0,user=user1,password=pass123

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

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

    Вы уверены что надо так: \\10.1.5.43\documents .
    а не так: //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 не видит экран ноутбука
    Оцените статью