Linux mount smb folder

Монтирование SMB/Samba

Чтобы обеспечить наилучшую совместимость для обмена файлами между различными ОС, Samba является распространенным решением. В Linux вы можете настроить сервер Samba для предоставления доступа клиентам, использующим протоколы Server Message Block (SMB) или Common Internet File System (CIFS) для доступа к этим общим ресурсам. Вы также можете настроить Linux в качестве клиента для серверов, предлагающих общие ресурсы SMB или CIFS, что позволяет серверам получать прямой доступ к общим ресурсам Windows. В этой статье вы узнаете, как смонтировать удаленную файловую систему SMB. Эта процедура может быть применена для монтирования SMB-совместимых общих ресурсов, которые предлагаются с любой платформы, поэтому она работает на общих ресурсах Windows и Linux.

Обнаружение SMB-шар

Перед тем как смонтировать общий ресурс SMB, убедитесь, что на клиентском компьютере установлены пакеты RPM cifs-utils и samba-client. Также вам необходимо добавить службу samba-client в конфигурацию брандмауэра на клиенте с помощью firewall-cmd —add-service samba-client —permanent; firewall-cmd —reload. После установки вы можете использовать команду smbclient -L для обнаружения доступных общих ресурсов SMB.

Команда smbclient запрашивает пароль текущего пользователя. Это связано с тем, что smbclient — это очень общая утилита, которая позволяет составлять список общих ресурсов, а также входить в общие ресурсы Samba на удаленных серверах и извлекать файлы с удаленного сервера. Однако для составления списка шар учетные данные не требуются. Итак, когда команда просит
пароль, вы можете просто нажать Enter. В качестве альтернативы вы можете использовать опцию -Uusername с smbclient для аутентификации с использованием действительной учетной записи пользователя Samba.

Вывод команды smbclient -L

[root@localhost ~]# smbclient -L 192.168.122.201
Enter root’s password:
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
——— —- ——-
data Disk Demo data directory
homedirs Disk LDAP user home directories
IPC$ IPC IPC Service (Samba Server Version
4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
——— ——-
IPA Samba Server Version 4.1.1
Workgroup Master
——— ——-
MYGROUP IPA

В спойлере вы можете увидеть, как утилита smbclient используется для обнаружения доступных общих ресурсов по IP-адресу 192.168.122.201. (Чтобы обойти возможные проблемы с разрешением имен, вместо имени используется IP-адрес хоста.) Затем команда запрашивает пароль текущего пользователя. Поскольку опция -L запрашивает только список доступных общих ресурсов и ничего больше, вы можете просто нажать Enter, чтобы проигнорировать этот вопрос. Далее отображается текущий домен или рабочая группа сервера Samba, а также доступные общие ресурсы.

Читайте также:  Пакеты имеющие неудовлетворенные зависимости linux generic

В качестве альтернативы вы можете использовать команду net share -l. Эта команда перечисляет только общие ресурсы, доступные на сервере Samba, и не отображает дополнительную конфигурацию, которая отображается при использовании smbclient -L. Обратите внимание, что команда net share -l также выводит список общих принтеров, тогда как smblcient -L просто отображает общие каталоги. Команда net доступна в Linux для предоставления интерфейса командной строки, который более знаком администраторам Windows, которые хотят настроить общий доступ к файлам с сервера Linux.

Вывод результата команды net share -l

[root@server1 ~]# net share -l
Enter root’s password:
Anonymous login successful
Enumerating shared resources (exports) on remote server:
Share name Type Description
———- —- ————
sambashare Disk Sambashare
IPC$ IPC IPC Service (Samba Server Version 4.1.12)
textprinter Print textprinter
DummyPrinter Print DummyPrinter

Монтирование SMB

Чтобы смонтировать общий ресурс SMB, вы можете использовать команду mount. Вы можете использовать опцию -t cifs, чтобы указать, что монтируется на общий ресурс SMB, но без этой опции он также будет работать, потому что команда mount достаточно умна, чтобы самостоятельно определить, что это общий ресурс SMB, к которому вы хотите подключиться. Если на общем ресурсе разрешен гостевой доступ, вы можете указать опцию -o guest для аутентификации в качестве гостевого пользователя без пароля. Или же используйте параметр -o user = guest для той же цели.
Полная команда монтирования выглядит следующим образом:

mount -t cifs -o user=guest //192.168.122.200/data /mnt

Эта команда монтирует общий ресурс /data, который доступен на 192.168.122.200 в локальном каталоге /mnt. Обратите внимание, что вы сможете получить доступ к файлам в общем ресурсе, но не сможете записывать какие-либо файлы в общем ресурсе, потому что вы аутентифицированы как гостевой пользователь с ограниченными правами доступа к общему ресурсу.

Аутентификация на SMB-шаре

Выше вы прочитали, как подключить общий ресурс с учетными данными гостя. Если вы хотите что-то сделать с общим ресурсом, вы должны аутентифицироваться как действительный пользователь Samba. Это конкретная учетная запись пользователя, которая имеет учетные данные, необходимые для подключения к общему ресурсу Samba. (Обычный пользователь Linux не может этого сделать.) Для этого должен быть создан пользователь Samba.

Чтобы указать имя пользователя Samba, которое вы хотите использовать, вы можете добавить опцию -o username=someone:

Читайте также:  What is root user in linux

mount -o username=sambauser1 //server/share /somewhere

Когда вы делаете это, команда mount запрашивает пароль. Ниже пример, как находить и монтировать общие ресурсы Samba.

1. Зайдите на сервер под рутом.
2. Введите yum install -y cifs-utils samba-client, чтобы установить необходимые пакеты RPM.
3. Введите smbclient -L 192.168.122.200, чтобы получить список доступных общих ресурсов на сервере.
4. Введите mount -t cifs -o guest //192.168.122.200/data /mnt, чтобы смонтировать общий ресурс /data в качестве гостя в каталоге /mnt.
5. Введите mount, чтобы убедиться, что монтирование прошло успешно.

Монтирование SMB-ресурсов через fstab

При монтировании файловых систем SMB через /etc/fstab вам необходимо учесть конкретную проблему: вам необходимо указать учетные данные пользователя, необходимые для выполнения монтирования. На общем ресурсе NFS это не обязательно, поскольку пользователь, который по умолчанию обращается к общей файловой системе, делает это, используя свои собственные учетные данные. При монтировании общего ресурса Samba через /etc/fstab эти учетные данные пользователя обычно указываются с параметрами username= и password=, но не рекомендуется помещать их в виде открытого текста в файл /etc/fstab.

Не забудьте включить параметр монтирования _netdev в /etc/fstab, а также для всего, что связано с сетью, для монтирования, которое будет завершено. Это гарантирует, что монтирование будет сделано намного быстрее. Также обязательно включите параметр x-systemd.automount, который гарантирует оптимальную интеграцию с systemd и значительно ускоряет монтирование.

В качестве альтернативы указанию учетных данных в файле /etc/fstab напрямую, вы можете использовать файл учетных данных. При использовании файла учетных данных сам файл учетных данных содержит имя пользователя, пароль и (необязательно) домен, к которому вы хотите подключиться. При использовании файла учетных данных его необходимо обязательно защитить. Лучший путь
чтобы защитить его, поместите его в домашний каталог пользователя root, установите для владельцев значение root:root и установите права 600.

Содержимое файла creds может выглядеть так

username=user password=secret domain=mydomain

Расположение файла учетных данных описано в man mount.cifs.

Чтобы использовать файл учетных данных при монтировании из командной строки, вы можете включить параметр -o credentials=filename, как показано ниже:

mount -t cifs -o credentials=/root/creds //server1/data /mnt/data

Чтобы сделать то же самое из файла /etc/fstab, в файл /etc/fstab необходимо включить следующую строку:

//server1/data /mnt/data cifs _netdev,, x-systemd. automount,credentials=/root/creds 0 0

Новость отредактировал: yatakoi — 28-12-2020, 16:13
Причина: В статью добавлено монтирование SMB через fstab

Источник

Как в Linux монтировать шару CIFS

Обновлено

Обновлено: 01.05.2023 Опубликовано: 18.07.2016

Что такое Linux и CIFS простыми словами. Работа с общими папками Windows происходит с использованием протокола CIFS (SMB). Все примеры в данном руководстве выполняются на Linux Ubuntu и CentOS.

Читайте также:  Linux шлюз сделай сам

Подготовка

Установка пакетов

Сетевые порты

Синтаксис

* вместо mount.cifs можно написать mount -t cifs.

mount.cifs //192.168.1.1/public /mnt

* простой пример монтирования папки public на сервере 192.168.1.1 в локальный каталог /mnt.

Если нам не известны расшаренные папки на сервере, мы можем воспользоваться утилитой smbclient. Для начала установим ее.

а) на RPM (Rocky Linux / РЕД ОС / Red Hat / CentOS / Fedora):

б) на Deb (Debian / Ubuntu / Astra Linux / Mint):

или, при необходимости авторизоваться на файловом сервере:

smbclient -L 192.168.1.1 -U username

Ручное монтирование

Теперь монтирование можно выполнить следующей командой:

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

Для начала создаем файл, в котором будем хранить данные авторизации при подключении к общей папке:

И добавляем в него данные следующего вида:

username=dmosk
password=dPassw0rd
domain=dmosk.local

* в этом примере создана пара логин/пароль — dmosk/dPassw0rd; domain указывать не обязательно, если аутентификация выполняется без него.

Задаем права на созданный файл, чтобы доступ был только у пользователя, скажем, root:

chown root:root /root/.smbclient

Теперь открываем конфигурационный файл 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: файл, который мы создали на предыдущем шаге.

Чтобы проверить правильность настроек, вводим следующую команду:

Примеры использования опций

Версии 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

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

Источник

Оцените статью
Adblock
detector