Mount.CIFS
Содержание
Монтирование сетевых ресурсов 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 v5 для автоматической аутентификации пользователя.
Создайте каталог для монтирования ресурса 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
Теперь осталось описать сетевые папки в файле /etc/security/pam_mount.conf.xml
. Для этого находим там
и пишем после нее определение своих подключаемых сетевых каталогов. Все необходимые опции монтирования пропишутся, и даже каталог-точку монтирования можно не создавать — все делается автоматически.
Пример:
<volume fstype="cifs" server="winserver.keleg-home.ru" path="UserShare" mountpoint="/mnt/cifs_share" />