Монтирование FTP хранилища как папки в CentOS.
- Шаг 1. Установим пакет CurlFtpFS
- Шаг 2. Подключение FTP
- Шаг 3. Автоматическое монтирование
- Шаг 4. Настройка Iptables
- Was this answer helpful?
- Смонтировать сетевую папку в Linux с помощью cifs-util
- Автоматическое монтирование сетевой папки в Linux
- : Host is downилиmount error: Operation not supported Чтобы сразу смонтировать сетевую папку, выполните: $ mount -a Подключиться к сетевой папке с помощью клиента samba Установите в Linux клиент samba: В Ubuntu/Debian: $ sudo apt-get install smbclient В CentOS/Oracle/RHEL: # dnf install smbclient Для вывода всех SMB ресурсов в локальной сети: $ smbtree -N Вывести список доступных SMB папок на удаленном хосте Windows: smbclient -L //192.168.31.33 -N Если в Windows запрещен анонимный доступ, появится ошибка: session setup failed: NT_STATUS_ACCESS_DENIED В этом случае нужно указать учетную запись пользователя Windows, которую нужно использовать для подключения: Если нужно использовать учетную запись пользователя домена, добавьте опцию –W: Для интерактивного подключения к сетевой папке Windows используется команда: Для анонимного доступа: smbclient //192.168.31.33/backup -U Everyone После успешного входа появится приглашение: Вывести список файлов в сетевой папке: get remotefile.txt /home/sysops/localfile.txt Сохранить локальный файл из Linux в SMB каталог: put /home/sysops/localfile.txt remotefile.txt Можно последовательно выполнить несколько команд smbclient: Полный список команд в smbclient можно вывести с помощью команды help. Команды smbclient схожи с командами ftp клиента. При использовании команды smbclient может появиться ошибка: Unable to initialize messaging contextsmbclient: Can't load /etc/samba/smb.conf - run testparm to debug it. Чтобы исправить ошибку, создайте файл /etc/samba/smb.conf . Если на хосте Windows отключен протокол SMB 1.0, то при подключении с помощью smbclient появится ошибка: Reconnecting with SMB1 for workgroup listing. protocol negotiation failed: NT_STATUS_CONNECTION_RESET Unable to connect with SMB1 -- no workgroup available. Share Configuration FIG1 – Windows Share Permissions FIG2 – NTFS Share Permissions We use an Active Directory account in this tutorial as an example of how someone would accomplish this in an enterprise environment. Preparing CentOS 7 for Mounting SMB Shares Install the cifs-utils package from the default CentOS yum repository. yum install cifs-utils Next, we need an account on the CentOS server that will map to the Windows account granted permission to the SMB share, _share_library_core. We’ll create a service account named svc_library_core with a user id (UID) of 5000. useradd -u 5000 svc_library_core We also want a group on the CentOS server that will map to the share. This group will contain all of the Linux accounts that will need access to the share. Our account will be called share_library_core and it will have a group id (gid) of 6000. groupadd -g 6000 share_library_core Finally, add any Linux accounts that require access to the SMB share to the newly created Linux group. I have an existing account named user1 that I will add to the share_library_core group. usermod -G share_library_core -a user1 Mounting an SMB Share Create a directory to mount the SMB share into. We’ll mount the share in a directory called lib_core. mkdir /lib_core Using the mount.cifs command, mount the SMB share into lib_core using the Active Directory user account _share_library_core. We need to map the UID of our svc_library_core account (5000) and the gid of our share_library_core group (6000) to the SMB share. mount.cifs \\WS12FS01\libraries\core /lib_core -o user=_share_library_core,pass="secret",uid=5000,gid=6000 If no errors appeared, the share should successfully be mounted. The verify this, use the df command or the mount . Hiding SMB USer Credentials If not Root, SU into the Root account. su - root Create a credentials file in Root’s home directory. I typically create this file in a sub-directory in Root’s home, for organizational reasons. But for this example, I will place it in /root. touch /root/creds_smb_library_core Modify the file’s permissions so that only the Root account is granted read permissions. No groups or other users should have access to the file. chmod 0600 /root/creds_smb_library_core Open the file in a text editor. I like using VI, but you can use whichever you prefer. vi /etc/root/creds_smb_library_core Add the following lines to the file. Remember to replace the username and password values so that they match your environment. username=_share_library_core password=secret Save your changes to the credential file and exit the text editor. Mount the SMB share. However, instead of using the user and pass options, we instead use the credentials option and point to our credentials file. mount.cifs \\WS12FS01\libraries\core /lib_core -o credentials=/root/creds_smb_library_core,uid=5000,gid=6000 Persistent SMB Mounts using FSTAB The downfall of the examples above is that the mounts are only temporary – the will not remount at system boot. The make the mount permanent we need to add it the fstab. Open /etc/fstab into a text editor. vi /etc/fstab Add the following line to your fstab. Remember to replace the values with those that match your environment. \\WS12FS01\libraries\core /lib_core cifs credentials=/root/creds_smb_library_core,uid=5000,gid=6000 0 0 Save your changes and exit the text editor. The SMB share will mount the next time the CentOS server is rebooted. To mount the share immediately, use the mount command. mount -a В современных дистрибутивах Linux уже можно совершенной спокойно путешествовать по сетевым дискам. Но куда удобнее если смонтировать сетевой диск сразу в папку, да еще и на рабочем столе, красота. Я создал папку с общим доступом на сервере Hyper-V, её и буду монтировать. Монтирование SMB буду делать под специально заведенным пользователем, дабы не светить пароль админа. Монтируемая папка Монтируемая директория доступна только администраторам и пользователю smb (создан специально для монтирования). Сделать общую папку на сервере Windows можно двумя способами: 1 — через свойства папки; 2 — через Powershell. Через свойства папки проще и быстрее как для новичка. Но в моем случае с сервером HyperV 2019 сработал только второй способ, через Powershell. New-SmbShare -Name "smb_mount" -Path "F:\smb_mount" -FullAccess "Administrator", "smb" Общая папка у меня доступна по пути \hvs19\smb_mount , но монтировать я буду ее по ip адресу. Принципиального вопроса как монтировать нет, просто не всегда есть возможность использовать имя. С монтируемой папкой закончили, создадим папку куда будем монтировать. Я создал папку в /opt и назвал её F (по имени диска где лежит монтируемая папка) для удобства. Установим набор утилит для монтирования SMB Для Ubuntu (и прочих Debian`ов) sudo apt-get install cifs-utils Для Centos 8 (и прочих RPM дистрибутивов на YUM) sudo yum install cifs-utils Монтирование SMB Все необходимые папки мы создали, теперь приступим к монтированию файловой системы. sudo mount -t cifs -o username=smb,password=пароль //192.168.1.110/smb_mount /opt/F Пройдемся по параметрам: -t cifs — тип файловой системы cifs (полностью совместим с SMB) username — пользователь у которого есть доступ к монтируемой папке (на сетевом диске). Если разрешено, можно использовать гостя, без пароля. В таком случае указываем username=guest password — пароль от учетной записи этого пользователя //192.168.1.110/smb_mount — общая папка на сервере которую монтируем /opt/F — папка куда монтируем. Посмотрим что все получилось, проверим свободное место в сетевой папке Можно использовать дополнительные возможности при монтировании, используя ключи после параметра -o . Вот некоторые из них rw — запись и чтение ro — только чтение iocharset=utf8 — в данной кодировке будет выводится информация; codepage=cp866 — кодировка используемая на сервере с общей папкой. Обычно Windows устанавливает кодировку cp866 . vers=3.0 — принудительно указать версию подключения SMB протокола. Для безопасного подключения используйте последнюю версию. Используя команду mount мы монтируем папку в ручном режиме и после перезагрузки монтирования не произойдет. Для автоматического монтирования папки читаем следующий раздел. Автоматическое монтирование SMB Для постоянного монтирования папке при старте системы необходимо внести изменения в файл /etc/fstab . При монтировании сетевого диска с SMB используется пароль. Для большей сохранности не будем указывать его в файле fstab , а сохраним в директории root . Создадим файл с учетными данными Добавим в файл строки: имя пользователя, пароль, домен (если используется). У меня домена нет, поэтому добавлю только имя и пароль username=smb password=пароль domain=mydomain Откроем файл /etc/fstab для редактирования Добавим новую строку в конец файла //192.168.1.110/smb_mount /opt/F cifs user,rw,credentials=/root/.cifsmnt 0 0 Сохраним файл и перезагрузим компьютер. После этого сетевая папка будет монтироваться автоматически. Разберем указанные параметры //192.168.1.110 — ip адрес сервера где находится сетевая папка /smb_mount — сетевая папка на указанном выше сервере /opt/F — папка на локальном компьютере куда будем монтировать сетевую папку cifs — тип монтируемой файловой системы user — разрешение монтировать для любого пользователя rw — разрешения на чтение/запись на диск при монтировании credentials — путь к файлу с данными учетной записи используемых для подключения по SMB 0 — не использовать дамп 0 — не проверять файловую систему при старте программой fsck Права на папки и файлы Примонтированный диск по умолчанию монтируется от root и разрешает запись на диск только под ним. Рассмотрим опции позволяющие изменить доступ на примонтированные папки и файлы. Также рассмотрим настройки по смене владельца смонтированной папки. uid — задает владельца каталога. Узнать uid пользователей можно в файле /etc/passwd gid — задает группу владельца каталога. Узнать gid групп можно в файле /etc/passwd file_mode=0777 — права на доступ к файлам. 0777 — разрешено запись/чтение всем. dir_mode=0777 — права на доступ к папкам. 0777 — разрешено запись/чтение всем. Пример записи в файле /etc/fstab монтирования от моего пользователя (не root ) с полным доступом ко всем файлам и папкам //192.168.1.110/smb_mount /opt/F cifs user,rw,credentials=/root/.cifsmnt,file_mode=0777,dir_mode=0777,uid=1000,gid=1000 0 0 Размонтирование SMB Размонтировать сетевую папку SMB можно используя команду umount В параметрах команды umount указываем директорию куда была смонтирована сетевая папка. В моем случае это /opt/F Если смонтированная файловая система сейчас занята, появится сообщение umount: target is busy . В таком случае размонтировать получиться с ключом -l Решение проблем монтирования Если по какой либо причине после ваших попыток папка все же не монтируется, необходимо смотреть системный журнал. grep "cifs" /var/log/syslog Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей. Работа с сетевыми папками происходит с использованием протокола CIFS. В данном примере мы разберем, как подключить выделенное Вам хранилище по сети. Так же рассмотрим, как настроить параметры таким образом, чтобы после перезагрузки сервера сетевой диск был виден в системе. Для монтирования общей папки необходимо установить набор утилит для работы с CIFS. # yum install cifs-utils # apt-get install cifs-utils Теперь создадим точку монтирования. В данном примере мы создадим путь — /mnt/fb1234. Вы можете казать любой удобный для вас путь. # mkdir /mnt/fb1234 Вы можете использовать 2 команды для монтирования сетевого диска. Обе они верные. Внимание! Пользователь и директория будут начинаться с fb и далее персональный номер, который мы вам выделим. В данной статье указан простой пример, как это должно выглядеть. После ввода одной из команд, введите пароль. После этого проверьте, что диск действительно смонтирован командой: # df -h Автоматическое монтирование CIFS через /etc/fstab Создаём файл, в котором буду хранится данные для авторизации при подключении к общей папке: # vi /root/.smbclient # nano /root/.smbclient И добавляем в него данные — пользователя и пароль. Теперь открываем конфигурационный файл /etc/fstab и добавляем в него следующее: Теперь Ваш диск доступен root-пользователю и всем остальным «обычным пользователям». Помог ли вам данный ответ? Overview CIFS, also known as SMB, is a popular network file sharing protocol primarily used by Microsoft Windows servers and desktops. Although, in a mixed Microsoft and Linux\Unix environment, it can also be found on Linux\Unix servers. Mounting can be done using two methods. You can make it a persistent mount by adding an entry into the fstab, or you can make it a temporary mount by invoking the mount command. Simple Mount as Guest mount.cifs //fileserver1.serverlab.intra/dept /mnt/share mount.cifs //fileserver1.serverlab.intra/dept /mnt/share -o guest Mount as User mount.cifs //fileserver1.serverlab.intra/dept/ /mnt/dept -o user= workgroup\charlie Mounting CIFS using Fstab <share-path> <mount-path> cifs <option> , <option> , <option> 0 0 //fileserver1.serverlab.intra/Dept /mnt/dept cifs user=charlie 0 0 Монтирование файловых систем по NFS, что позволяет расшаривать директории нескольких серверов между друг другом. Шаг 1. Установка NFS Master Server : 192.168.2.1 Client Server : 192.168.2.10 Установим необходимые пакеты: yum install nfs-utils nfs-utils-lib Добавим в автозагрузку и запустим: chkconfig nfs on service rpcbind start service nfs start Шаг 2. Настройка Определим какую директорию будем расшаривать на клиентский сервер и указываем её в файле /etc/exports Например мы хотим расшарить папку /storage /storage 192.168.2.10(rw,sync,no_root_squash,no_subtree_check) rw : Данная опция позволяет производить чтение и запись в выбранный каталог sync : Синхронный режим работы, ответы на запросы происходят только после того, как данные надежно будут записаны на диск. Надежность выше, производительность меньше. no_subtree_check : Если экспортируется подкаталог файловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных. no_root_squash : — root (uid0) на стороне клиента, выглядит как nobody (uid 65534) на стороне сервера, это называется смещением root т.к. позволяет защитить файлы, владельцом которых является root от изменений клиентами NFS . Опция no_root_squash : отменяет такое поведение, и позволяет пользователю root (на стороне клиента) иметь доверенный полный доступ к разделу. Данная опция может использоваться только в случае доверия. После того, как были внесены изменения запускаем команду: Шаг 3. Настройка клиента Установим дополнительные пакеты: yum install nfs-utils nfs-utils-lib Шаг 4. Монтирование директорий Создаем папку для монтируемой директории: mkdir -p /storage mount 192.168.2.1:/storage /storage Выполним df -h для проверки маунта Filesystem Size Used Avail Use% Mounted on /dev/sda 20G 783M 18G 5% / 192.168.2.1:/storage 20G 785M 18G 5% /storage Используем команду mount для проверки примонтированных директорий. /dev/sda on / ext4 (rw,errors=remount-ro) none on /proc/sys/fs/binfmt_misc binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs rpc_pipefs (rw) nfsd on /proc/fs/nfsd nfsd (rw) 192.168.2.1:/storage on /storage nfs (rw,noatime,nolock,,nfsvers=2,intr,tcp,actimeo=1800,addr=192.168.2.1) Для автоматического монтирования после перезагрузки, добавим запись в /etc/fstab 192.168.2.1:/storage /storage nfs auto,noatime,nolock,,nfsvers=3,intr,tcp,actimeo=1800 0 0 Правила для Firewall -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 32769 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT -A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT Правила для FirewallD firewall-cmd --permanent --zone=internal --add-service=nfs firewall-cmd --permanent --zone=internal --add-service=mountd firewall-cmd --permanent --zone=internal --add-service=rpc-bind
- Подключиться к сетевой папке с помощью клиента samba
- Share Configuration
- Preparing CentOS 7 for Mounting SMB Shares
- Mounting an SMB Share
- Hiding SMB USer Credentials
- Persistent SMB Mounts using FSTAB
- Помог ли вам данный ответ?
- Overview
- Simple Mount as Guest
- Mount as User
- Mounting CIFS using Fstab
- Шаг 3. Настройка клиента
- Шаг 4. Монтирование директорий
- Правила для Firewall
- Правила для FirewallD
Шаг 1. Установим пакет CurlFtpFS
Доступен в EPEL
-репозитории. Начиная с версии CentOS 6.7
репозиторий вшит в ОС.
yum install curlftpfs
Шаг 2. Подключение FTP
На данном этапе создадим папку, куда будет монтироваться хранилище и подключим его.
Проверим успешное монтирование хранилища:
Filesystem Size Used Avail Use% Mounted on
8,9G 4,9G 3,6G 58% /
tmpfs 2,1G 0 2,1G 0% /dev/shm
/dev/sda1 500M 59M 415M 13% /boot
Шаг 3. Автоматическое монтирование
Для автоматического монтирования хранилища при запуске системы, необходимо добавить строчку в /etc/fstab
Шаг 4. Настройка Iptables
Если на сервере включен Firewall
, необходимо прописать правила, позволяющие работать протоколу FTP
как в активном, так и в пассивном режимах, для этого сначала загрузим модуль modprobe ip_conntrack_ftp
, а затем добавим правила в таблицу:
iptables -A INPUT -p tcp -m tcp --dport 21 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
iptables -A OUTPUT -p tcp -m tcp --dport 21 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 21"
iptables -A INPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
iptables -A OUTPUT -p tcp -m tcp --dport 20 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "Allow ftp connections on port 20"
Ensure the command mount.cifs is present in your distro. If you haven’t need to install cifs-utils. We are also will consider, how to mount network folder and after rebooting folder will be saw in system.
# yum install cifs-utils
# apt-get install cifs-utils
Now you need to create a mount point. For example create folder — /mnt/fb1234. You can choose any way for your disk space.
# mkdir /mnt/fb1234
# df -h

# vi /root/.smbclient
# nano /root/.smbclient

In this article was mounted network folder «fb1234» on the server «Server IP-addresses» in point /mnt/fb1234.

Was this answer helpful?
Network File System (NFS)
— протокол доступа к файловым системам по сети. NFS
позволяет удаленно подключаться к общим папкам. Подключая общую папку мы работаем с ней как с локальной директорией. Давайте разберемся как происходит монтирование NFS на популярных дистрибутивах Linux.
В качестве NFS сервера у меня будет выступать FreeNAS
— бесплатная сборка NAS на FreeBSD. Вероятно на вашей системе уже установлен клиент NFS, если нет установим его. Я буду монтировать NFS на Centos 8
. Настройки для Ubuntu
подобных также привожу.
Установка клиента NFS
Перед началом работы советую установить все текущие обновления.
Установка клиента NFS на Centos (и прочие на yum)
sudo yum update sudo yum install nfs-utils

Установка клиента NFS на Ubuntu (и прочие на apt)
sudo apt-get update sudo apt-get upgrade sudo apt-get install nfs-common
Монтирование NFS
Создадим в нашей системе папку куда будем монтировать NFS

Расположение и название папки может быть любым.
Монтирование NFS директории в папку /opt/nas
sudo mount -t nfs 192.168.20.2:/mnt/GENERAL /opt/nas

Разберем указанные параметры:
- -t
— указывает тип файловой системы - 192.168.20.2
— ip адрес моего NAS сервера - :/mnt/GENERAL
— путь к монтируемой папке на NAS сервере - /opt/nas
— папка на клиенте куда монтируем
Путь к монтируемой папке необходимо точно указывать. На разных серверах путь разный. В моём случае:

Если монтирование прошло удачно никаких сообщений не будет. Когда возникает ошибка, на экране это обязательно отобразится. У меня все прошло без ошибок.
У команды mount
множество возможных ключей. Например можно подключить папку и сделать ее только для чтения, используя ключ -r
. Полный список возможностей можно узнать прочитав man.

Либо посмотреть список ключей касательно монтирования NFS

Увидеть подключенные файловые системы с указанием точки монтирования можно так

Данная команда удобна тем, что показывает куда смонтирована файловая система. Также видна статистика по общему количеству места, занятому и свободному.
Ручной тип подключения файловых систем, а именно монтирование, работает до перезагрузки. Перезагрузив компьютер потребуется снова монтировать папку. Чтобы автоматизировать данный процесс переходим к следующему пункту.
Автоматическое монтирование NFS
Автоматическое монтирование NFS происходит путем редактирования файла /etc/fstab
. Указанный файл содержит список файловых систем с параметрами, которые автоматически монтируются при старте системы. Добавим в /etc/fstab
монтирование NFS.
Добавляем в конец файла новую строку
192.168.20.2:/mnt/GENERAL /opt/nas nfs defaults 0 0

- 192.168.20.2
— адрес моего сервера NAS - :/mnt/GENERAL
— папка на сервере - /opt/nas
— папка на клиенте куда монтируем - nfs
— тип файловой системы - defaults
— использовать параметры монтирования по умолчанию - 0
— не использовать дамп - 0
— не проверять файловую систему при старте программой fsck
Сохраняем файл и перезагружаемся. Если все заполнили верно, после перезагрузки появится подключенная папка с файловой системой NFS.
Размонтирование NFS
При автоматическом монтировании размонтировать NFS папку можно удалив строку в файле /etc/fstab
. После перезагрузки папка NFS не будет подключена. Отключить файловую систему без перезагрузки можно командой umount

Если размонтировать не получилось, по причине того что накопитель используется, поможет ключ -l
Ключ -l
позволяет размонтировать файловую систему когда она больше не используется. Есть еще ключ -f
позволяющий отключить файловую систему если она более не доступна. Однако использовать его нужно с осторожность, т.к. данные могут быть потеряны.
Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.
Совет
. Для доступа к сетевым папкам по SMB/CIFS используется порт TCP/445. Для разрешения имени используются порты UDP 137, 138 и TCP 139. Если эти порты закрыты, вы сможете подключиться к сетевой папке Windows только по IP адресу.
Смонтировать сетевую папку в Linux с помощью cifs-util
Вы можете смонтировать сетевую папку, находящуюся на Windows хосте, с помощью утилит из пакета cifs-util. Для установки пакета выполните команду:
- В Ubuntu/Debian:
$ sudo apt-get install cifs-utils - В CentOS/Oracle/RHEL:
$ sudo dnf install cifs-utils
Создайте точку монтирования:
Укажите пароль пользователя Windows для подключения к сетевой папке.

При подключении сетевой SMB папки можно задать дополнительные параметры:
- //192.168.31.33/backup
– сетевая папка Windows - /mnt/share
– точка монтирования - -t cifs
– указать файловую систему для монтирования - -o
опции монтирования (эту опцию можно использовать только с правами root, поэтому в команде используется sudo) - username=User03,password=PasswOrd1
– имя и пароль пользователя Windows, у которого есть права доступа к сетевой папке. Можно указать имя пользователя guest
, если разрешен анонимный доступ к сетевой папке - iocharset=utf8
– включить поддержку кодировки UTF8 для отображения имен файлов - uid=1000
– использовать этого пользователя Linux в качестве владельца файлов в папке

По умолчанию шары Windows монтируются в Linux с полными правами (0755). Если вы хотите изменить права по-умолчанию при монтировании, добавьте в команду опции:
dir_mode=0755,file_mode=0755
Если вы хотите использовать имя компьютера при подключении сетевого каталога Windows, добавьте в файл / etc/hosts
строку:
IP_АДРЕС ИМЯ_КОМПЬЮТЕРА
Чтобы не указывать учетные данные пользователя Windows в команде монтирования сетевой папки, их можно сохранить в файле.
$ mcedit ~/.windowscredentials
Добавьте в файл:
username=User03 password=PasswOrd1

Для подключения к папке под анонимным пользователем:
username=guest password=
Если нужно указать учетную запись пользователя из определенного домена Active Directory, добавьте в файл третью строку:
domain = vmblog.ru
Измените права на файл:
$ chmod 600 ~/.windowscredentials
Теперь при подключении сетевой папки вместо явного указания имени пользователя и пароля можно указать путь к файлу:
Отмонтировать сетевую SMB папку:
Автоматическое монтирование сетевой папки в Linux
Можно настроить автоматическое монтирование сетевой папки Windows через /etc/fstab.
$ sudo mcedit /etc/fstab
Добавьте в файл следующую строку подключения SMB каталога:
//192.168.31.33/backup /mnt/share cifs user,rw,credentials=/home/sysops/.windowscredentials,iocharset=utf8,nofail,_netdev 0 0
- rw
– смонтировать SBM папку на чтение и запись - nofail –
продолжить загрузку ОС если не удается смонтировать файловую систему - _netdev
– указывает что подключается файловая система по сети. Linux не будет монтировать такие файловые системы пока на хосте не будет инициализирована сеть.
Вы можете указать версию протокола SMB, которую нужно использовать для подключения (версия SMB 1.0 считается небезопасной и отключена по-умолчанию в современных версиях Windows). Добавьте в конец строки с настройками подключения параметр vers=3.0
.
//192.168.31.33/backup /mnt/share cifs user,rw,credentials=/home/sysops/.windowscredentials,iocharset=utf8,nofail,_netdev,vers=3.0 0 0
Если на стороне хоста Windows используется несовместимая (старая версия) SMB, при подключении появится ошибка:
mount error: Host is downилиmount error: Operation not supported
Чтобы сразу смонтировать сетевую папку, выполните:
$ mount -a
Подключиться к сетевой папке с помощью клиента samba
Установите в Linux клиент samba:
- В Ubuntu/Debian:
$ sudo apt-get install smbclient - В CentOS/Oracle/RHEL:
# dnf install smbclient
Для вывода всех SMB ресурсов в локальной сети:
$ smbtree -N
Вывести список доступных SMB папок на удаленном хосте Windows:
smbclient -L //192.168.31.33 -N
Если в Windows запрещен анонимный доступ, появится ошибка:
session setup failed: NT_STATUS_ACCESS_DENIED
В этом случае нужно указать учетную запись пользователя Windows, которую нужно использовать для подключения:
Если нужно использовать учетную запись пользователя домена, добавьте опцию –W:

Для интерактивного подключения к сетевой папке Windows используется команда:
Для анонимного доступа:
smbclient //192.168.31.33/backup -U Everyone
После успешного входа появится приглашение:
Вывести список файлов в сетевой папке:

get remotefile.txt /home/sysops/localfile.txt
Сохранить локальный файл из Linux в SMB каталог:
put /home/sysops/localfile.txt remotefile.txt
Можно последовательно выполнить несколько команд smbclient:
Полный список команд в smbclient можно вывести с помощью команды help. Команды smbclient схожи с командами ftp клиента.
При использовании команды smbclient может появиться ошибка:
Unable to initialize messaging contextsmbclient: Can't load /etc/samba/smb.conf - run testparm to debug it.
Чтобы исправить ошибку, создайте файл /etc/samba/smb.conf
.
Если на хосте Windows отключен протокол SMB 1.0, то при подключении с помощью smbclient появится ошибка:
Reconnecting with SMB1 for workgroup listing. protocol negotiation failed: NT_STATUS_CONNECTION_RESET Unable to connect with SMB1 -- no workgroup available.
Share Configuration

– Windows Share Permissions

– NTFS Share Permissions
We use an Active Directory account in this tutorial as an example of how someone would accomplish this in an enterprise environment.
Preparing CentOS 7 for Mounting SMB Shares
- Install the cifs-utils package from the default CentOS yum repository.
yum install cifs-utils
- Next, we need an account on the CentOS server that will map to the Windows account granted permission to the SMB share, _share_library_core. We’ll create a service account named svc_library_core with a user id (UID) of 5000.
useradd -u 5000 svc_library_core
- We also want a group on the CentOS server that will map to the share. This group will contain all of the Linux accounts that will need access to the share. Our account will be called share_library_core and it will have a group id (gid) of 6000.
groupadd -g 6000 share_library_core
- Finally, add any Linux accounts that require access to the SMB share to the newly created Linux group. I have an existing account named user1 that I will add to the share_library_core group.
usermod -G share_library_core -a user1
Mounting an SMB Share
- Create a directory to mount the SMB share into. We’ll mount the share in a directory called lib_core.
mkdir /lib_core
- Using the mount.cifs command, mount the SMB share into lib_core using the Active Directory user account _share_library_core. We need to map the UID of our svc_library_core account (5000) and the gid of our share_library_core group (6000) to the SMB share.
mount.cifs \\\\WS12FS01\\libraries\\core /lib_core -o user=_share_library_core,pass="secret",uid=5000,gid=6000
- If no errors appeared, the share should successfully be mounted. The verify this, use the df
command or the mount
.
Hiding SMB USer Credentials
- If not Root, SU into the Root account.
su - root
- Create a credentials file in Root’s home directory. I typically create this file in a sub-directory in Root’s home, for organizational reasons. But for this example, I will place it in /root.
touch /root/creds_smb_library_core
- Modify the file’s permissions so that only the Root account is granted read permissions. No groups or other users should have access to the file.
chmod 0600 /root/creds_smb_library_core
- Open the file in a text editor. I like using VI, but you can use whichever you prefer.
vi /etc/root/creds_smb_library_core
- Add the following lines to the file. Remember to replace the username and password values so that they match your environment.
username=_share_library_core password=secret
- Save your changes to the credential file and exit the text editor.
- Mount the SMB share. However, instead of using the user and pass options, we instead use the credentials option and point to our credentials file.
mount.cifs \\\\WS12FS01\\libraries\\core /lib_core -o credentials=/root/creds_smb_library_core,uid=5000,gid=6000
Persistent SMB Mounts using FSTAB
The downfall of the examples above is that the mounts are only temporary – the will not remount at system boot. The make the mount permanent we need to add it the fstab.
- Open /etc/fstab into a text editor.
vi /etc/fstab
- Add the following line to your fstab. Remember to replace the values with those that match your environment.
\\\\WS12FS01\libraries\\core /lib_core cifs credentials=/root/creds_smb_library_core,uid=5000,gid=6000 0 0
- Save your changes and exit the text editor.
- The SMB share will mount the next time the CentOS server is rebooted. To mount the share immediately, use the mount command.
mount -a
В современных дистрибутивах Linux уже можно совершенной спокойно путешествовать по сетевым дискам. Но куда удобнее если смонтировать сетевой диск сразу в папку, да еще и на рабочем столе, красота. Я создал папку с общим доступом на сервере Hyper-V, её и буду монтировать. Монтирование SMB буду делать под специально заведенным пользователем, дабы не светить пароль админа.
Монтируемая папка
Монтируемая директория доступна только администраторам и пользователю smb (создан специально для монтирования). Сделать общую папку на сервере Windows можно двумя способами: 1 — через свойства папки; 2 — через Powershell. Через свойства папки проще и быстрее как для новичка.

Но в моем случае с сервером HyperV 2019 сработал только второй способ, через Powershell.
New-SmbShare -Name "smb_mount" -Path "F:\smb_mount" -FullAccess "Administrator", "smb"


Общая папка у меня доступна по пути \\hvs19\smb_mount
, но монтировать я буду ее по ip адресу. Принципиального вопроса как монтировать нет, просто не всегда есть возможность использовать имя.
С монтируемой папкой закончили, создадим папку куда будем монтировать. Я создал папку в /opt
и назвал её F
(по имени диска где лежит монтируемая папка) для удобства.
Установим набор утилит для монтирования SMB
Для Ubuntu (и прочих Debian`ов)
sudo apt-get install cifs-utils
Для Centos 8 (и прочих RPM дистрибутивов на YUM)
sudo yum install cifs-utils
Монтирование SMB
Все необходимые папки мы создали, теперь приступим к монтированию файловой системы.
sudo mount -t cifs -o username=smb,password=пароль //192.168.1.110/smb_mount /opt/F
Пройдемся по параметрам:
- -t cifs
— тип файловой системы cifs (полностью совместим с SMB) - username
— пользователь у которого есть доступ к монтируемой папке (на сетевом диске). Если разрешено, можно использовать гостя, без пароля. В таком случае указываем username=guest - password
— пароль от учетной записи этого пользователя - //192.168.1.110/smb_mount
— общая папка на сервере которую монтируем - /opt/F
— папка куда монтируем.
Посмотрим что все получилось, проверим свободное место в сетевой папке

Можно использовать дополнительные возможности при монтировании, используя ключи после параметра -o
. Вот некоторые из них
- rw
— запись и чтение - ro
— только чтение - iocharset=utf8
— в данной кодировке будет выводится информация; - codepage=cp866
— кодировка используемая на сервере с общей папкой. Обычно Windows устанавливает кодировку cp866
. - vers=3.0
— принудительно указать версию подключения SMB протокола. Для безопасного подключения используйте последнюю версию.
Используя команду mount мы монтируем папку в ручном режиме и после перезагрузки монтирования не произойдет. Для автоматического монтирования папки читаем следующий раздел.
Автоматическое монтирование SMB
Для постоянного монтирования папке при старте системы необходимо внести изменения в файл /etc/fstab
. При монтировании сетевого диска с SMB используется пароль. Для большей сохранности не будем указывать его в файле fstab
, а сохраним в директории root
.
Создадим файл с учетными данными
Добавим в файл строки: имя пользователя, пароль, домен (если используется). У меня домена нет, поэтому добавлю только имя и пароль
username=smb password=пароль domain=mydomain
Откроем файл /etc/fstab
для редактирования
Добавим новую строку в конец файла
//192.168.1.110/smb_mount /opt/F cifs user,rw,credentials=/root/.cifsmnt 0 0

Сохраним файл и перезагрузим компьютер. После этого сетевая папка будет монтироваться автоматически.
Разберем указанные параметры
- //192.168.1.110
— ip адрес сервера где находится сетевая папка - /smb_mount
— сетевая папка на указанном выше сервере - /opt/F
— папка на локальном компьютере куда будем монтировать сетевую папку - cifs
— тип монтируемой файловой системы - user
— разрешение монтировать для любого пользователя - rw
— разрешения на чтение/запись на диск при монтировании - credentials
— путь к файлу с данными учетной записи используемых для подключения по SMB - 0
— не использовать дамп - 0
— не проверять файловую систему при старте программой fsck
Права на папки и файлы
Примонтированный диск по умолчанию монтируется от root
и разрешает запись на диск только под ним. Рассмотрим опции позволяющие изменить доступ на примонтированные папки и файлы. Также рассмотрим настройки по смене владельца смонтированной папки.
- uid
— задает владельца каталога. Узнать uid
пользователей можно в файле /etc/passwd - gid
— задает группу владельца каталога. Узнать gid
групп можно в файле /etc/passwd - file_mode=0777
— права на доступ к файлам. 0777
— разрешено запись/чтение всем. - dir_mode=0777
— права на доступ к папкам. 0777
— разрешено запись/чтение всем.
Пример записи в файле /etc/fstab
монтирования от моего пользователя (не root
) с полным доступом ко всем файлам и папкам
//192.168.1.110/smb_mount /opt/F cifs user,rw,credentials=/root/.cifsmnt,file_mode=0777,dir_mode=0777,uid=1000,gid=1000 0 0
Размонтирование SMB
Размонтировать сетевую папку SMB можно используя команду umount
В параметрах команды umount
указываем директорию куда была смонтирована сетевая папка. В моем случае это /opt/F

Если смонтированная файловая система сейчас занята, появится сообщение umount: target is busy
. В таком случае размонтировать получиться с ключом -l
Решение проблем монтирования
Если по какой либо причине после ваших попыток папка все же не монтируется, необходимо смотреть системный журнал.
grep "cifs" /var/log/syslog

Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.
Работа с сетевыми папками происходит с использованием протокола CIFS. В данном примере мы разберем, как подключить выделенное Вам хранилище по сети. Так же рассмотрим, как настроить параметры таким образом, чтобы после перезагрузки сервера сетевой диск был виден в системе.
Для монтирования общей папки необходимо установить набор утилит для работы с CIFS.
# yum install cifs-utils
# apt-get install cifs-utils
Теперь создадим точку монтирования. В данном примере мы создадим путь — /mnt/fb1234. Вы можете казать любой удобный для вас путь.
# mkdir /mnt/fb1234
Вы можете использовать 2 команды для монтирования сетевого диска. Обе они верные.
Внимание! Пользователь и директория будут начинаться с fb и далее персональный номер, который мы вам выделим. В данной статье указан простой пример, как это должно выглядеть.
После ввода одной из команд, введите пароль. После этого проверьте, что диск действительно смонтирован командой:
# df -h

Автоматическое монтирование CIFS через /etc/fstab
Создаём файл, в котором буду хранится данные для авторизации при подключении к общей папке:
# vi /root/.smbclient
# nano /root/.smbclient
И добавляем в него данные — пользователя и пароль.

Теперь открываем конфигурационный файл /etc/fstab и добавляем в него следующее:

Теперь Ваш диск доступен root-пользователю и всем остальным «обычным пользователям».
Помог ли вам данный ответ?
Overview
CIFS, also known as SMB, is a popular network file sharing protocol primarily used by Microsoft Windows servers and desktops. Although, in a mixed Microsoft and Linux\Unix environment, it can also be found on Linux\Unix servers.
Mounting can be done using two methods. You can make it a persistent mount by adding an entry into the fstab, or you can make it a temporary mount by invoking the mount
command.
Simple Mount as Guest
mount.cifs //fileserver1.serverlab.intra/dept /mnt/share
mount.cifs //fileserver1.serverlab.intra/dept /mnt/share -o guest
Mount as User
mount.cifs //fileserver1.serverlab.intra/dept/ /mnt/dept -o user= workgroup\charlie
Mounting CIFS using Fstab
<share-path> <mount-path> cifs <option> , <option> ,<option> 0 0
//fileserver1.serverlab.intra/Dept /mnt/dept cifs user=charlie 0 0
Монтирование файловых систем по NFS, что позволяет расшаривать директории нескольких серверов между друг другом.
Шаг 1. Установка NFS
Master Server
Client Server
: 192.168.2.10
yum install nfs-utils nfs-utils-lib
Добавим в автозагрузку и запустим:
- service nfs start
chkconfig nfs on
service rpcbind start
Шаг 2. Настройка
Определим какую директорию будем расшаривать на клиентский сервер и указываем её в файле /etc/exports
Например мы хотим расшарить папку /storage
/storage 192.168.2.10(rw,sync,no_root_squash,no_subtree_check)
rw
: Данная опция позволяет производить чтение и запись в выбранный каталог
sync
: Синхронный режим работы, ответы на запросы происходят только после того, как данные надежно будут
записаны на диск. Надежность выше, производительность меньше.
no_subtree_check
: Если экспортируется подкаталог файловой системы, но не вся файловая система, сервер проверяет, находится ли запрошенный файл в экспортированном подкаталоге. Отключение проверки уменьшает безопасность, но увеличивает скорость передачи данных.
no_root_squash
: — root (uid0)
на стороне клиента, выглядит как nobody (uid 65534)
на стороне сервера, это называется смещением root
т.к. позволяет защитить файлы, владельцом которых является root от изменений клиентами NFS
. Опция no_root_squash
: отменяет такое поведение, и позволяет пользователю root (на стороне клиента) иметь доверенный полный доступ к разделу. Данная опция может использоваться только в случае доверия.
После того, как были внесены изменения запускаем команду:
Шаг 3. Настройка клиента
Установим дополнительные пакеты:
yum install nfs-utils nfs-utils-lib
Шаг 4. Монтирование директорий
Создаем папку для монтируемой директории:
mkdir -p /storage
mount 192.168.2.1:/storage /storage
Выполним df -h
для проверки маунта
Filesystem Size Used Avail Use% Mounted on
/dev/sda 20G 783M 18G 5% /
192.168.2.1:/storage 20G 785M 18G 5% /storage
Используем команду mount
для проверки примонтированных директорий.
/dev/sda on / ext4 (rw,errors=remount-ro)
none on /proc/sys/fs/binfmt_misc binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs rpc_pipefs (rw)
nfsd on /proc/fs/nfsd nfsd (rw)
192.168.2.1:/storage on /storage nfs (rw,noatime,nolock,,nfsvers=2,intr,tcp,actimeo=1800,addr=192.168.2.1)
Для автоматического монтирования после перезагрузки, добавим запись в /etc/fstab
192.168.2.1:/storage /storage nfs auto,noatime,nolock,,nfsvers=3,intr,tcp,actimeo=1800 0 0
Правила для Firewall
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 111 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 111 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 2049 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 32769 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 32769 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 892 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 892 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 875 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 875 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 662 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 662 -j ACCEPT
Правила для FirewallD
firewall-cmd --permanent --zone=internal --add-service=nfs
firewall-cmd --permanent --zone=internal --add-service=mountd
firewall-cmd --permanent --zone=internal --add-service=rpc-bind

