Как в Linux монтировать шару CIFS
Что такое Linux и CIFS простыми словами.
Работа с общими папками Windows происходит с использованием протокола CIFS (SMB). Все примеры в данном руководстве выполняются на Linux Ubuntu и CentOS.
Подготовка
Для монтирования общей папки необходимо установить набор утилит для работы с CIFS.
yum install cifs-utils
apt-get install cifs-utils
Синтаксис
* вместо mount.cifs можно написать mount -t cifs.
mount.cifs //192.168.1.1/public /mnt
* простой пример монтирования папки public на сервере 192.168.1.1 в локальный каталог /mnt.
Ручное монтирование
Теперь монтирование можно выполнить следующей командой:
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 указывать не обязательно, если аутентификация выполняется без него.
Теперь открываем конфигурационный файл 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
Права на примонтированные каталоги
При монтировании папки мы можем указать определенные права:
How to Mount Windows Share on Linux using CIFS
Posted Nov 23, 2019
On Linux and UNIX operating systems, a Windows share can be mounted on a particular mount point in the local directory tree using the cifs option of the mount command.
The Common Internet File System (CIFS) is a network file-sharing protocol. CIFS is a form of SMB.
In this tutorial, we will explain how to manually and automatically mount Windows shares on Linux systems.
Installing CIFS Utilities Packages #
To mount a Windows share on a Linux system, first you need to install the CIFS utilities package.
Installing CIFS utilities on Ubuntu and Debian:
Installing CIFS utilities on CentOS and Fedora:
The package name may differ between Linux distributions.
Mounting a CIFS Windows Share #
Mounting a remote Windows share is similar to mounting regular file systems.
First, create a directory to serve as the mount point for the remote Windows share:
Run the following command as root or user with sudo privileges to mount the share:
You will be prompted to enter the password:
On success, no output is produced.
To verify that the remote Windows share is successfully mounted, use either the mount or df -h command.
Once the share is mounted, the mount point becomes the root directory of the mounted file system. You can work with the remote files as if they were local files.
The password can also be provided on the command line:
If the user is in windows workgroup or domain you can set it as follows:
For better security it is recommended to use a credentials file, which contains the share username, password and domain.
The credentials file has the following format:
The file must not be readable by users. To set the correct permissions and ownership , run:
To use the credentials file, define it as follows:
By default of the mounted share is owned by root, and the permissions are set to 777.
Use the dir_mode option to set the directory permission and file_mode to set the file permission:
The default user and group ownership can be changed with the uid and gid options:
To set additional options , add them as a comma-separated list after the -o option. To get a list of all mount options type man mount in your terminal.
Auto Mounting #
When the share is manually mounted with the mount command, it does not persist after a reboot.
The /etc/fstab file contains a list of entries that define where how and what filesystem will be mounted on system startup.
To automatically mount a Windows share when your Linux system starts up, define the mount in the /etc/fstab file. The line must include the hostname or the IP address of the Windows PC, the share name, and the mount point on the local machine.
Open the /etc/fstab file with your text editor :
Add the following line to the file:
Run the following command to mount the share:
The mount command, will read the content of the /etc/fstab and mount the share.
Next time you reboot the system, the Windows share will be mounted automatically.
Unmounting Windows Share #
The umount command detaches (unmounts) the mounted file system from the directory tree.
To detach a mounted Windows share, use the umount command followed by either the directory where it has been mounted or remote share:
If the CIFS mount has an entry in the fstab file, remove it.
The umount command will fail to detach the share when it is in use. To find out which processes are accessing the windows share, use the fuser command:
Once you find the processes, you can stop them with the kill command and unmount the share.
If you still have problems unmounting the share, use the -l ( —lazy ) option, which allows you to unmount a busy file system as soon as it is not busy anymore.
Conclusion #
In Linux, you can mount a Windows shared using the mount command with the cifs option.
If you have any questions or feedback, feel free to leave a comment.
Как подключить общую папку (сетевой ресурс, шару) Windows к Linux
CIFS (Common Internet File System) — это популярный протокол обмена файлами в Интернете. Этот протокол и позволит пользователям ОС Linux получить доступ к общей папке Windows.
CIFS — это реализация SMB (Server Message Block) — протокола, используемого для совместного использования сетевых файлов. Но он устарел.
В этой статье мы по шагам пройдем все этапы установки и настройки CIFS, чтобы подключиться к сетевому ресурсу Windows на ОС Linux.
Установка CIFS
Сейчас мы установим пакет cifs-utils на Ubuntu Linux (точно так же можно сделать на всех Debain-подобных ОС).
Монтируем Windows Share (сетевой ресурс)
Сейчас мы разберем на примерах, как монтировать общую папку Windows вручную и автоматически.
Создадим на нашем Linux директорию, к которой мы будем монтировать сетевой ресурс. Назовем ее myshare и расположена она будет в каталоге /mnt
Сетевой ресурс (шара) Windows может быть примонтирован к ОС Ubuntu или Debian с помощью следующей команды:
WIN_HOST_IP — это IP адрес хоста Windows, на котором расположена общая папка
share — имя сетевого ресурса
user — наш пользователь и Passw0rd — пароль с которыми мы подключемся к шаре.
Если пользователь доменный, то необходимо в опциях (-o) указать домен.
По-умолчанию сетевой ресурс монтируется с полными правами (rwx или 777). Если Вы хотите установить иные права, используйте опции dir_mode и file_mode.
Так же Вы можете установить владельцев uid (id пользователя) и gid (id группы).
Если после выполнения предыдущих команд Вы не получили никаких ошибок, то можете с помощью команды df -h убедиться, что сетевой ресурс успешно примонтирован к нашему ПК на Linux. В примере WIN_HOST_IP = 192.168.1.100 и имя общей папки share
Безопасность учетных данных при монтировании через CIFS
В этом разделе опишем, как лучше всего передавать учетные данные (имя пользователя, пароль, домен) при монтировании сетевого ресурса к ОС на базе Линукс.
Создайте файл с учетными данными для cifs: /etc/cifs-credentials
Внутрь поместите следующее содержимое:
Задайте права для этого файла:
Теперь мы можем подключить общую папку такой командой:
Как сделать автоматическое монтирование общей папки Windows
В примерах выше, после того, как Вы перезагрузите свой ПК, сетевой ресурс не примонтируется. Поэтому сделаем так, чтобы шара подключалась автоматически. В Linux это делается через файл /etc/fstab. Откройте этот файл любимым редактором.
И добавьте такую строку:
Следующей командой запустим монтирование всех точек, описанных в /etc/fstab
Теперь наш удаленный сетевой ресурс будет доступен даже после перезагрузки.
Как размонтировать общую папку CIFS
Размонтирование производится таким же способом, как и обычно мы жто делаем с дисками:
Часто бывает так, что сетевой ресурс занят каким-то процессом и тогда Вы получите ошибку при попытке размонтирования, тогда запустите команду с ключем -l (—lazy)
Итак, в этой статье мы рассмотрели, как быстро примонтировать удаленную сетевую папку, которая находится на хосте с Windows, к нашему хосту на Linux с помощью CIFS. Если у Вас остались какие-либо вопросы, пожалуйста, пишите в комментариях.


