Centos подключить сетевую папку windows

Устанавливаем утилиту cifs-utils

[root@localhost ~]# yum install cifs-utils

Добавляем пользователей

[root@localhost ~]# useradd -u 5000 UserPackages
[root@localhost ~]# useradd -u 5001 UserTraffic
[root@localhost ~]# groupadd -g 6000 share_library
[root@localhost ~]# usermod -G share_library -a UserPackages
[root@localhost ~]# usermod -G share_library -a UserTraffic

Создаем каталоги, в которые будем монтировать расшаренные windows-ресурсы

[root@localhost ~]# mkdir /mnt/Packages
[root@localhost ~]# mkdir /mnt/Traffic

Создаем файл с настройками доступа к расшаренным windows-ресурсам и задаем права на этот файл

Selectel — ведущий провайдер облачной инфраструктуры и услуг дата-центров

Компания занимает лидирующие позиции на рынке на рынке выделенных серверов и приватных облаков, и входит в топ-3 крупнейших операторов дата-центров в России.

[root@localhost ~]# nano /root/smb_user
username=user
domain=DOMAIN
password=password
[root@localhost ~]# chmod 0600 /root/smb_user

Монтируем

[root@localhost ~]# mount.cifs \\\\192.168.0.15\\Packages /mnt/Packages -o credentials=/root/smb_user,uid=5000,gid=6000
[root@localhost ~]# mount.cifs \\\\192.168.0.15\\Traffic /mnt/Traffic -o credentials=/root/smb_user,uid=5001,gid=6000

Команды для размонтирования:

[root@localhost ~]# umount /mnt/Packages
[root@localhost ~]# umount /mnt/Traffic

Автоматическое монтирование каталогов при последующей загрузке операционной системы

Открываем файл /etc/fstab в текстовом редакторе и добавляем в конце файла строки:

[root@localhost ~]# nano /etc/fstab
\\\\192.168.0.15\\Packages /mnt/Packages    cifs    credentials=/root/smb_user,uid=5000,gid=6000 0 0
\\\\192.168.0.15\\Traffic /mnt/Traffic   cifs    credentials=/root/smb_user,uid=5001,gid=6000 0 0

У блога появился новый хостинг от компании Selectel.
Нашли интересную или полезную информацию в блоге? Хотели бы видеть на нем еще больше полезных статей? Поддержи автора рублем.

Если вы размещаете материалы этого сайта в своем блоге, соц. сетях, и т.д., убедительная просьба публиковать обратную ссылку на оригинал.

В этой статье мы рассмотрим, как в Linux смонтировать общую сетевую папку, расположенную на хосте Windows. В Windows для доступа к общим сетевым папкам используется протокол SMB (Server Message Block), который ранее назывался CIFS (Сommon Internet File System). В Linux для доступа к сетевым папкам Windows по протоколу SMB можно использовать клиент cifs-utils или Samba.

    Содержание:

  • Смонтировать сетевую папку в Linux с помощью cifs-util
  • Автоматическое монтирование сетевой папки в Linux
  • Linux: подключиться к сетевой папке с помощью клиента samba

Совет. Для доступа к сетевым папкам по 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

Создайте точку монтирования:

$ sudo mkdir /mnt/share

Теперь вы можете смонтировать сетевую папку с компьютера Windows под пользователем User03с помощью команды:

$ sudo mount.cifs //192.168.31.33/backup /mnt/share -o user=User03

Укажите пароль пользователя Windows для подключения к сетевой папке.

mount.cifs подключить сетевую папку smb в linux

При подключении сетевой SMB папки можно задать дополнительные параметры:

$ sudo mount -t cifs -o username=User03,password=PasswOrd1,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share

  • //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 в качестве владельца файлов в папке

команда mount cifs в linux

По умолчанию шары Windows монтируются в Linux с полными правами (0755). Если вы хотите изменить права по-умолчанию при монтировании, добавьте в команду опции:

dir_mode=0755,file_mode=0755

Если вы хотите использовать имя компьютера при подключении сетевого каталога Windows, добавьте в файл /etc/hosts строку:

IP_АДРЕС    ИМЯ_КОМПЬЮТЕРА

Чтобы не указывать учетные данные пользователя Windows в команде монтирования сетевой папки, их можно сохранить в файле.

Например:

$ mcedit ~/.windowscredentials

Добавьте в файл:

username=User03
password=PasswOrd1

сохранить пароль для подключения к сетевой папке в windows

Для подключения к папке под анонимным пользователем:

username=guest
password=

Если нужно указать учетную запись пользователя из определенного домена Active Directory, добавьте в файл третью строку:

domain = vmblog.ru

Измените права на файл:

$ chmod 600 ~/.windowscredentials

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

$ sudo mount -t cifs -o credentials=/home/sysops/.windowscredentials,uid=1000,iocharset=utf8 //192.168.31.33/backup /mnt/share

Отмонтировать сетевую SMB папку:

$ sudo umount /mnt/share

Автоматическое монтирование сетевой папки в 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(112): Host is downилиmount error(95): Operation not supported

Чтобы сразу смонтировать сетевую папку, выполните:

$ mount -a

Linux: подключиться к сетевой папке с помощью клиента 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, которую нужно использовать для подключения:

smbclient -L //192.168.31.33 -U User03

Если нужно использовать учетную запись пользователя домена, добавьте опцию –W:

smbclient -L //192.168.31.33 -U User03 –W Domain

smbclient вывести список общих папок на компьютере windows

Для интерактивного подключения к сетевой папке Windows используется команда:

smbclient //192.168.31.33/backup -U User03 -W Domain

или

smbclient //192.168.31.33/backup -U User03

Для анонимного доступа:

smbclient //192.168.31.33/backup -U Everyone

После успешного входа появится приглашение:

smb: \>

Вывести список файлов в сетевой папке:

dir

smbclient вывести список файлов в сетевой папке linux

Скачать файл из сетевой папки Windows:

get remotefile.txt /home/sysops/localfile.txt

Сохранить локальный файл из Linux в SMB каталог:

put /home/sysops/localfile.txt  remotefile.txt

Можно последовательно выполнить несколько команд smbclient:

$ smbclient //192.168.31.33/backup -U User03 -c "cd MyFolder; get arcive.zip /mnt/backup/archive.zip"

Полный список команд в 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.

Overview

In this tutorial, you will learn how to mount SMB shares on CentOS 7. You will be guided through the process for both desktop and server installations of the operating system.

CentOS provides support for mounting Microsoft CIFS or SMB shares. Not just limited to shares hosted from Microsoft Windows, we can also mount shares from any network device that uses the SMB protocol. This includes just about any NAS device on the market.

If you understand how to mount SMB shares on earlier versions of Red Hat Enterprise Linux or CentOS, the instructions are identical.

Share Configuration

For this tutorial, I prepared a share named Core Library on a Windows Server 2012 R2 server that is a member of an Active Directory domain.

TABLE1Windows File Server

Hostname Operating System Share Path SMB Version
WS12FS01 Windows Server 2012 R2 \\WS12FS01\libraries\core 2.0

For the share permission on WS12FS01, we grant Full Control to Everyone. Don’t be fooled into thinking this is insecure. Although everyone has access to the share, the NTFS permissions on the volume hosting the share overrule the share permissions. By leaving Everyone and granting full control, we save our selves work by only having to manage permissions on the file system itself.

FIG1 - Windows Share Permissions

FIG1Windows Share Permissions

For the NTFS permissions, we created an Active Directory account named _share_library_core and granted it Modify, Read & Execute, List folder contents, Read, and Write. The account will be used when we mount the share onto CentOS 7.

FIG2 - NTFS Share Permissions

FIG2NTFS Share Permissions

We use an Active Directory account in this tutorial as an example of how someone would accomplish this in an enterprise environment.

However, an Active Directory account is not required. As long as the CentOS server has an account that can authenticate successfully on the host publishing the share, it doesn’t matter where the account actually exists – in Active Directory or locally on the file server itself.

Preparing CentOS 7 for Mounting SMB Shares

A default CentOS 7 build will not be able to mount SMB\CIFS shares, unless you customized the install. We’ll need to install a package onto the server that allows it to understand the SMB protocol.

  1. Install the cifs-utils package from the default CentOS yum repository.
    yum install cifs-utils
  2. 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
  3. 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
  4. 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

We are now ready to mount our SMB share. In the example below, we temporarily mount the SMB share onto our CentOS server. The share will remain mounted until the server is rebooted.

  1. Create a directory to mount the SMB share into. We’ll mount the share in a directory called lib_core.
    mkdir /lib_core
  2. 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

    The extra backslashes (\) are not typos. Backslashes are used to escape certain characters. Because of this, we have to double up on them when accessing Microsoft shares.

  3. If no errors appeared, the share should successfully be mounted. The verify this, use the df command or the mount.

Hiding SMB USer Credentials

In the example above, we’re forced to enter the username and password into the command-line. This is a major security issue, as someone could browse your bash history to obtain the credentials, or they can see them while you type them in. Thankfully, there’s a way to address this problem by using a credentials file.

  1. If not Root, SU into the Root account.
    su - root
  2. 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
  3. 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
  4. 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
  5. 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
    TABLE2 – Credential file options

    username The Windows or Active Directory username granted permissions to the share on the Windows file server.
    password The password given to the username
  6. Save your changes to the credential file and exit the text editor.
  7. 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.

  1. Open /etc/fstab into a text editor.
    vi /etc/fstab
  2. 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
  3. Save your changes and exit the text editor.
  4. The SMB share will mount the next time the CentOS server is rebooted. To mount the share immediately, use the mount command.
    mount -a

Если у вас возникла потребность подключить сетевую папку Windows в операционной системе CentOS 6, то вам, вполне возможно, поможет эта небольшая заметка.

Необходимость подключения сетевых папок Windows в других операционках возникает часто, поскольку в локальной сети предприятия достаточно часто встречается сочетание компьютеров, работающих под управлением как операционных систем семейства Windows, так и под управлением различных версий Linux.

Перейдем к делу, для начала устанавливаем нужные пакеты, если их у нас еще нет:

yum install samba-client samba-common cifs-utils

После успешной установки пакетов перейдем для начала к ручному подключению (монтированию) сетевой папки.

Создаем папку в которую будет монтироваться сетевая папка командой:

mkdir /mnt/dirtomount

и подключаем к ней сетевую папку командой:

mount.cifs //192.168.0.50/sharedir /mnt/dirtomount -o user=User -o password=MyPwd

пареметры этой команды означают следующее:

/mnt/dirtomount – это точка монтирования, т.е. папка, в которой мы увидим файлы и папки которые расположены в сетевой папке на компьютере с Windows.

//192.168.0.50/sharedir – сетевой путь к Windows компьютеру.

-o user=User – это параметр, задающий имя пользователя под которым мы подключаемся к Windows.

-o password=MyPwd – параметр, задающий пароль под которым мы подключаемся к Windows.

Теперь рассмотрим автоматическое подключение сетевой папки Windows к CentOS при загрузке операционной системы:

Для этого мы редактируем файл /etc/fstab командой

vi /etc/fstab

и добавляем в этот файл следующую строку:

\192.168.0.50sharedir /mnt/dirtomount cifs user,username=User,password=MyPwd 0 0

Значения параметров в этой строке аналогичны рассмотренным выше.

Вот и все, теперь ваша сетевая папка, расположенная на компьютере под управлением Windows подключается к компьютеру, на котором запущен CentOS.

Монтирование SMB не что иное как подключение сетевой папки WIndows в Linux. SMB (Server Message Block) — сетевой протокол удаленного доступа к сетевым ресурсам (файлы, папки, принтеры и т.п.). В первой версии протокола был известен также как CIFS (Common Internet File System). Протоком SMB повсеместно используется во всех ОС Microsoft Windows.

В современных дистрибутивах Linux уже можно совершенной спокойно путешествовать по сетевым дискам. Но куда удобнее если смонтировать сетевой диск сразу в папку, да еще и на рабочем столе, красота. Я создал папку с общим доступом на сервере Hyper-V, её и буду монтировать. Монтирование SMB буду делать под специально заведенным пользователем, дабы не светить пароль админа.

Монтируемая папка

Монтируемая директория доступна только администраторам и пользователю smb (создан специально для монтирования). Сделать общую папку на сервере Windows можно двумя способами: 1 — через свойства папки; 2 — через Powershell. Через свойства папки проще и быстрее как для новичка.

Но в моем случае с сервером HyperV 2019 сработал только второй способ, через Powershell.

New-SmbShare -Name "smb_mount" -Path "F:\smb_mount" -FullAccess "Administrator", "smb"

Данной командой я сделал общей папку расположенную по пути F:\smb_mount и присвоил ей имя smb_mount. Права на доступ к папке выдал пользователю 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 и т.п.

Хотите отблагодарить автора статьи? Это даст ему дополнительный стимул к написанию новых статей.

  • Celeron n2840 драйвера windows 7
  • Centos доступ к сети windows
  • Centos ввод в домен windows
  • Cellular что это windows 10
  • Cellular data не работает надлежащим образом в windows 10 как исправить