====== Подключение сетевых SMB ресурсов в Linux ====== ===== Установка необходимых пакетов ===== Для дальнейшей работы с нам потребуется пакет **cifs-utils** установить его можно следующей командой yum install cifs-utils -y ===== Команда mount.cifs ===== mount -t cifs -o username=user,password=password,domain=domain_name //server/share /local/folder/path **username=** имя пользователя, от имени которого производится монтирование.\\ **password=** пароль пользователя, от имени которого производится монтирование.\\ **domain=** имя домена, в котором находится пользователь.\\ Не требуется указывать домен, если пользователь локальный. ===== Монтирование через fstab ===== Предыдущий метод подходит для разового монтирования шары или проверки настроек при настройке монтирования через **fstab**. Данный метод является более предпочтительным, т.к должен автоматически подключать сетевые ресурсы при перезагрузке сервера.\\ Для того чтобы подключить сетевые ресурсы данным способом необходимо отредактировать файл **/etc/fstab** дописав в него строку монтирования ресурса. Выглядеть строка может так: //server/share /mount/folder cifs rw,username=user,password=pass,noauto,iocharset=cp1251,file_mode=0777,dir_mode=0777,user 0 0 Собственно по своей сути данная строчка является аналогом команды mount.cifs стоит так же обратить внимание, на то, что можно указать кодировку для имен файлов и папок смонтированного сетевого ресурса, чтобы не было проблем с русскими названиями **iocharset=cp1251**. Так же отмечу, что опция **noauto** должна восстанавливать смонтированный сетевой ресурс в том случае, если он "отвалился", но к нему обратились. так же здесь можно указать опции монтирования **file_mode=** и **dir_mode=** которые определят маску прав доступа к папке, в которую смонтирован сетевой ресурс. ==== Монтирование с использование credetials ==== Показанный выше способ монтирования не является безопасным, т.к любой пользователь сервера может прочитать файл **/etc/fstab**, в связи с чем рекомендуется использовать монтирование с помощью **credentials**.\\ **credentials** - это по сути текстовый файл содержащий в себе данные пользователя для подключения.\\ Доступ к такому файлу можно ограничить для других пользователей, чтобы они не могли узнать логин и пароль (в случае если злоумышленники получили доступ к рядовому пользователю linux. Файл можно расположить например в директории root либо ограничить к нему доступ только для текущего пользователя, чтобы не смогли прочесть другие. Выглядит файл следующим образом: username=user password=pass domain=domain_name Для ограничения доступа к нему только текущего пользователя можно использовать команду: chmod 600 /path/to/file Имя файла может быть произвольным. в таком случае строка монтирования в fstab будет выглядеть так: //filesrv-2/linuxbackup /backup cifs rw,credentials=/root/.smbcredentials,noauto,iocharset=cp1251,file_mode=0777,dir_mode=0777,user 0 0 Обратите внимание, что имя пользователя, пароль и имя домена более не указываются явно в файле. ===== Монтирование с помощью systemd unit ===== Данный способ монтирования является наиболее предпочтительным, т.к. при нем доступность сетевого ресурса проверяется автоматически и так же автоматически будет восстановлено подключение. Для того, чтобы воспользоваться данным методом необходимо создать 2 файла в **/etc/systemd/system**. ==== /etc/systemd/system/mnt-myshare.mount ==== Обратите внимание, что имя файла лучше всего создавать по аналогии с монтируемым ресурсом или папкой, в которую вы его монтируете. **mnt-myshare** служит только для примера [Unit] Description=Mount Share at boot [Mount] What=//server/share Where=/mount/folder Options=rw,credentials=/root/.smbcredentials,noauto,iocharset=cp1251 Type=cifs TimeoutSec=30 [Install] WantedBy=multi-user.target ==== /etc/systemd/system/mnt-myshare.automount ==== [Unit] Description=Automount my-share [Automount] Where=/mount/folder [Install] WantedBy=multi-user.target После создания файлов необходимо перезапустить демона командой: systemctl daemon-reload и включить в автозагрузку для автоматического монтирования ресурса при доступе к нему командой: systemctl enable mnt-myshare.automount && systemctl start mnt-myshare.automount