Samba Server · 4 min read · Dec 06, 2025

Установка и настройка Samba сервера на CentOS 7

Этот учебник объясняет, как настроить Samba сервер на CentOS 7 с анонимными и защищенными общими ресурсами Samba. Samba — это набор программного обеспечения с открытым исходным кодом/бесплатного программного обеспечения, который предоставляет бесшовные услуги файлового и печатного сервиса для клиентов SMB/CIFS, таких как Windows. Samba доступна бесплатно, в отличие от других реализаций SMB/CIFS, и позволяет взаимодействовать между серверами Linux/Unix и клиентами на базе Windows.

1 Предварительная заметка

У меня есть свежая установка сервера CentOS 7, на котором я собираюсь установить сервер Samba. Конечно, вам нужна одна машина с Windows, чтобы проверить сервер Samba, которая должна быть доступна с сервера CentOS 7. Мой сервер CentOS 7 имеет имя хоста server1.example.com и IP-адрес 192.168.0.100

Примечание:

  • Машина с Windows должна находиться в той же рабочей группе. Чтобы проверить значение на машине с Windows, выполните команду в командной строке
net config workstation

Это будет выглядеть так:

Имя домена входа в Windows

Ваша машина с Windows должна находиться в той же доменной рабочей станции, что и сервер CentOS 7.0, т.е. WORKGROUP в моем случае.

  • Чтобы сделать машину с Windows доступной в Windows, выполните следующее. Введите в терминале выполнения и добавьте запись IP-адреса вашего сервера:
notepad C:\Windows\System32\drivers\etc\hosts

В моем случае это выглядело так, просто сохраните значения.

[...]  
192.168.0.100   server1.example.com centos

2 Анонимное совместное использование Samba

Сначала я объясню методику установки Samba с анонимным общим доступом. Чтобы установить программное обеспечение Samba, выполните:

yum install samba samba-client samba-common

Это установит текущую версию Samba из репозитория программного обеспечения CentOS.

Теперь, чтобы настроить Samba, отредактируйте файл /etc/samba/smb.conf. Прежде чем вносить изменения, я сделаю резервную копию оригинального файла как /etc/samba/smb.conf.bak

cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak

Поскольку я хочу начать с пустого файла, я использую команду cat, чтобы очистить smb.conf. Это быстрее, чем удаление всех строк в vi.

cat /dev/null > /etc/samba/smb.conf

Далее, введите записи следующим образом

vi /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
#============================ Определения общего доступа ============================== 
[Anonymous]
path = /samba/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no
mkdir -p /samba/anonymous  
systemctl enable smb.service  
systemctl enable nmb.service  
systemctl restart smb.service  
systemctl restart nmb.service  

Далее, брандмауэр CentOS 7 Firewall-cmd заблокирует доступ к Samba, чтобы избавиться от этого, мы выполним:

firewall-cmd --permanent --zone=public --add-service=samba
[root@server1 ~]# firewall-cmd --permanent --zone=public --add-service=samba
success
[root@server1 ~]#

Наконец, перезагрузите брандмауэр, чтобы применить изменения.

firewall-cmd --reload
[root@server1 ~]# firewall-cmd --reload
success
[root@server1 ~]#

Теперь вы можете получить доступ к общему ресурсу CentOS 7 в Windows следующим образом. Перейдите к приглашению выполнения и введите \centos:

\\centos

Открыть общий доступ Samba в Windows

С машины с Windows просто просмотрите папку и попробуйте создать текстовый файл, но вы получите ошибку “доступ запрещен”.

Просмотр папки, общей с Samba на Windows
Тест анонимного доступа к общему ресурсу Samba

Проверьте разрешения общей папки.

ls -l

drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous  
[root@server1 samba]#

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

cd /samba
chmod -R 0755 anonymous/  
chown -R nobody:nobody anonymous/
ls -l anonymous/
total 0  
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous  
[root@server1 samba]#

Далее, нам нужно разрешить SELinux для конфигурации Samba следующим образом:

chcon -t samba_share_t anonymous/

Теперь анонимный пользователь может просматривать и создавать содержимое папки.

Доступ к папке анонимным пользователем

Вы также можете проверить содержимое на сервере.

ls -l anonymous/
total 0  
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt  
[root@server1 samba]#

3. Защищенный сервер Samba

Поэтому я создам группу smbgrp и пользователя srijan для доступа к серверу Samba с правильной аутентификацией.

groupadd smbgrp
useradd srijan -G smbgrp
smbpasswd -a srijan
[root@server1 samba]# smbpasswd -a srijan
New SMB password:<--вашпарольsamba
Retype new SMB password:<--вашпарольsamba
Added user srijan.
[root@server1 samba]#  

Теперь создайте папку с именем secured в папке /samba и установите разрешения следующим образом:

mkdir -p /samba/secured

Снова нам нужно разрешить прослушивание через SELinux:

cd /samba
chmod -R 0777 secured/
chcon -t samba_share_t secured/

Снова отредактируйте файл конфигурации следующим образом:

vi /etc/samba/smb.conf

[...]  
[secured]
 path = /samba/secured
 valid users = @smbgrp
 guest ok = no
 writable = yes
 browsable = yes
systemctl restart smb.service
systemctl restart nmb.service

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

testparm
[root@server1 samba]# testparm 
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[Anonymous]"
Processing section "[secured]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions <--ENTER

[global]
    netbios name = CENTOS
    server string = Samba Server %v
    map to guest = Bad User
    dns proxy = No
    idmap config * : backend = tdb

[Anonymous]
    path = /samba/anonymous
    read only = No
    guest ok = Yes

[secured]
    path = /samba/secured
    valid users = @smbgrp
    read only = No
[root@server1 samba]# 

Теперь на машине с Windows проверьте папку с правильными учетными данными

Защищенный доступ Samba по паролю

Вы снова столкнетесь с проблемой разрешений, чтобы предоставить права на запись пользователю srijan, выполните:

cd /samba  
chown -R srijan:smbgrp secured/

Теперь пользователи Samba имеют разрешения на запись в папку. Ура, вы завершили настройку сервера Samba на CentOS 7! :)

Список папок из общего доступа Samba на Windows

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.