Mount.CIFS — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
Строка 106: Строка 106:
 
Пример:
 
Пример:
 
  <volume fstype="cifs" server="winserver.keleg-home.ru" path="UserShare" mountpoint="/mnt/cifs_share" />
 
  <volume fstype="cifs" server="winserver.keleg-home.ru" path="UserShare" mountpoint="/mnt/cifs_share" />
 +
 +
[[Категория:ROSA Server]]

Версия 16:22, 10 марта 2023

Монтирование сетевых ресурсов CIFS/SMB

Введение

CIFS (Common Internet File System) — это протокол сетевого доступа к файловой системе, который обеспечивает обмен файлами и папками между компьютерами в сети. CIFS используется в Windows и в других операционных системах, таких как Linux, для доступа к общим ресурсам файловой системы. В этой статье мы рассмотрим, как монтировать CIFS в Linux. Иногда CIFS называют SMB.

Сервером может выступать Windows Server или Samba в Linux.

Прежде чем начать, нужно убедиться, что у вас есть правильные разрешения на доступ к ресурсам CIFS. Это означает, что вы должны иметь учетную запись на сервере CIFS и соответствующие разрешения на чтение и запись файлов.

Для монтирования CIFS-шар должен быть установлен пакет cifs-utils:

sudo dnf install cifs-utils

Монтирование CIFS без пароля

Если на сервере CIFS не установлен пароль, вы можете монтировать его без указания пароля в командной строке.

Создайте каталог для монтирования ресурса CIFS. Например, для создания каталога с именем "cifs_share" выполните следующую команду:

sudo mkdir /mnt/cifs_share

В командной строке выполните команду для монтирования ресурса CIFS:

sudo mount -t cifs //SERVER_NAME/SHARE_NAME /mnt/cifs_share

Замените SERVER_NAME на имя сервера CIFS и SHARE_NAME на имя общего ресурса.

Если все настроено правильно, ресурс CIFS будет смонтирован в каталог /mnt/cifs_share без запроса пароля. Проверьте доступность файлов на ресурсе:

ls /mnt/cifs_share

Монтирование CIFS с паролем

Создайте каталог для монтирования ресурса CIFS. Например, для создания каталога с именем "cifs_share" выполните следующую команду:

sudo mkdir /mnt/cifs_share

В командной строке выполните команду для монтирования ресурса CIFS, указав имя пользователя и пароль:

sudo mount -t cifs //SERVER_NAME/SHARE_NAME /mnt/cifs_share -o username=USER_NAME,password=PASSWORD

Замените SERVER_NAME на имя сервера CIFS, SHARE_NAME на имя общего ресурса, USER_NAME на имя пользователя и PASSWORD на пароль.

Если все настроено правильно, ресурс CIFS будет монтироваться в каталог /mnt/cifs_share с указанным именем пользователя и паролем.

Монтирование CIFS с использованием билета Kerberos

Проверьте, что установлены необходимые пакеты:

sudo dnf install krb5 cifs-utils

Вы также можете монтировать CIFS с использованием билета Kerberos для автоматической аутентификации пользователя.

Создайте каталог для монтирования ресурса CIFS. Например, для создания каталога с именем "cifs_share" выполните следующую команду:

sudo mkdir /mnt/cifs_share

Компьютер, на котором осуществляется монтирование, должен быть введен в домен, либо на нем должен быть отдельно настроен /etc/krb5.conf. Пример файла /etc/krb5.conf в случае настройки без ввода в домен:

[libdefaults]
    default_realm = EXAMPLE.COM
    dns_lookup_realm = false
    dns_lookup_kdc = false
[realms]
    EXAMPLE.COM = {
        kdc = kdc.example.com
        admin_server = kdc.example.com
    }
[domain_realm]
    .example.com = EXAMPLE.COM
    example.com = EXAMPLE.COM

Программа монтирования cifs — mount.cifs — осуществляет поиск уже существующего билета Kerberos для пользователя. При необходимости получите билет:

kinit username@EXAMPLE.COM

В командной строке выполните команду для монтирования ресурса CIFS, указав имя пользователя и при необходимости (необязательно) домен Kerberos:

sudo mount -t cifs //SERVER_NAME/SHARE_NAME /mnt/cifs_share -o sec=krb5,username=USER_NAME,domain=DOMAIN_NAME

Замените SERVER_NAME на имя сервера CIFS, SHARE_NAME на имя общего ресурса, USER_NAME на имя пользователя и DOMAIN_NAME на имя домена Kerberos.

Если все настроено правильно, ресурс CIFS будет монтироваться в каталог /mnt/cifs_share с использованием билета Kerberos для автоматической аутентификации пользователя.

Настройка автоматического монтирования CIFS (SMB)

Выше были приведены команды для одноразового монтирования. Чтобы монтирование происходило автоматически при запуске ОС, можно добавить запись в файл /etc/fstab. Приведенные выше команды mount единообразно преобразуются в запись в fstab. Например, была команда:

sudo mount -t cifs //SERVER_NAME/SHARE_NAME /mnt/cifs_share

Эквивалентная строка для добавления в /etc/fstab будет такой:

//SERVER_NAME/SHARE_NAME /mnt/cifs_share cifs

А такая команда:

sudo mount -t cifs //SERVER_NAME/SHARE_NAME /mnt/cifs_share -o sec=krb5

Преобразуется в:

//SERVER_NAME/SHARE_NAME /mnt/cifs_share cifs sec=krb5

После правки /etc/fstab выполните:

sudo systemctl daemon-reload

И посмотрите, какой mount-унит был создан из добавленной строки:

sudo systemctl cat mnt-cifs_share.mount

Перезагрузите компьютер. Обратите внимание, что монтирование может происходить еще до получения билета Kerberos, поэтому монтирование пользовательских сетевых ресурсов — каталогов, доступ к которым осуществляется по полученному пользователем при входе в систему билету Kerberos — обычно делается через pam_mount, а не /etc/fstab.

pam_mount

pam_mount осуществляет монтирование сетевого ресурса после входа пользователя в систему, когда он уже получил билет Kerberos.

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

sudo dnf install pam_mount

Если используется менеджер входа GDM (по умолчанию в дистрибутивах ROSA 12), то редактируйте файл /etc/pam.d/password-auth, в некоторых других случаях — /etc/pam.d/system-auth. Добавьте в файл строку:

auth optional pam_mount.so

И еще строку:

session optional pam_mount.so

Теперь осталось описать сетевые папки в файле <code>/etc/security/pam_mount.conf.xml. Для этого находим там и пишем после нее определение своих подключаемых сетевых каталогов. Все необходимые опции монтирования пропишутся, и даже каталог-точку монтирования можно не создавать — все делается автоматически.

Пример:

<volume fstype="cifs" server="winserver.keleg-home.ru" path="UserShare" mountpoint="/mnt/cifs_share" />