К основному контенту

Использование windows(samba) диска в linux


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

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

sudo apt 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, а работать с ней планируете от лица обычного, непривелегированного пользователя, то в качестве опции команде 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
domain=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


Монтирование сетевого диска windows (samba) в linux.

Для того чтобы примонтировать сетевой диск samba необходимо отредактировать файл /etc/fstab

sudo nano /etc/fstab

добавляем строку после всего
//192.168.1.100/share /mnt/share cifs _netdev,noauto,users,user=xxxx,password=xxxx,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0

где
//192.168.1.100/share- место шары в сети.
в поле user -пишем вашего пользователя
в поле password — ваш пароль
В папке mnt создаем каталог share,сделать это можно командой
sudo mkdir /mnt/share

Затем получаем права на него
sudo chmod 777 -R -v /mnt/share

Пробуем монтировать

sudo mount /mnt/share

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



Команда 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 - операционная система и /dev/sdb - "файловая помойка"
сменный USB-носитель: /dev/sdc
Просмотр примонтированых устройств осуществляется командой:

# sudo mount

После этого на экране можно увидеть все примонтированые устройства

Этого же результата можно достигнуть посмотрев содержимое файла /etc/mtab (в некоторых системах Linux файл называется /etc/mnt/tab)

# cat /etc/mtab

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

Если Вы хотите примонтировать образ диска ISO, то это тоже достаточно просто сделать командой mount:

# sudo mount -t iso9660 -o loop /home/file.iso /home/iso

Где /home/file.iso — путь и имя файла ISO
/home/iso — точка монтированияДобавился только параметр -o loop, который указывает, что используется файл .iso.

В некоторых случаях необходимо примонтировать удаленный сетевой диск. В некоторых дистрибутивах 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 - точка монтирования



Комментарии

Популярные сообщения из этого блога

Многономерной транк от Датагруп к Elastix 2.5

В очередной раз украли кабель укртелекома, и восстановление "через полгода", но городские надо. Поскольку есть сервер Elastix2.5, решение очевидно sip-trunk. Укртелеком на вопрос sip-trunk "отморозился" причиной "он нестабилен, он ненадежен, и т.п., берите облачную атс" (зачем мне облачная атс?) Побывав на IT-Forum2018, встретил (единственного!!!! на весь форум) оператора/провайдера Датагруп, выяснил, что возможность подключить транк есть и подходит под мои условия(nat,отсутствие "белого ip") ТЗ;  -sip-trunk на 3 номера и 10 голосовых сессий; -атс на базе Elastix2.5. После заключения всех договоров и оплаты подключения, получен заветный конверт с логином паролем и адресом подключения (и иными параметрами подключения), 1) создаем транк: меню Trunk / Add SIP trunk Рис.1 Создаем  (Рис.1) Trunk Name : "имя транка",  Outbound CallerID : логин из конверта Рис.2 Далее (Рис.2) Trunk Name : "имя транка...

FreeBSD полезности

Приглашение командной строки bash В файле /etc/profile добавляется строка PS1="\h\\$ "; export PS1 в этом виде: \h - имя компьютера до первой точки; \\$ - если UID пользователя 0 (su/root), то будет выведен символ # , иначе $; можно использовать и другие символы: \u - имя юзера; \H - полное имя компьютера; \d -текущая дата " день недели месяц число"; \n - символ новой строкиж; \r - возврат карретки; \t - время в 24 формате (ч:м:с); \T - время в 12 формате; \w - текущий каталог с полным путем; \W - название текущего каталога; $() - внешняя команда в скобках, например (date). Ошибка при запуске MC common.c: unimplemented subshell type 1 read (subshell_pty...): ... проверить export $SHELL если /bin/sh изменить на /bin/csh командой chsh -s /bin/csh root перезайти netstat -nr проверить текущий шлюз по умолчанию