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 должна находиться в той же доменной рабочей станции, что и сервер CentOS 7.0, т.е. WORKGROUP в моем случае.
- Чтобы сделать машину с Windows доступной в Windows, выполните следующее. Введите в терминале выполнения и добавьте запись IP-адреса вашего сервера:
notepad C:\Windows\System32\drivers\etc\hostsВ моем случае это выглядело так, просто сохраните значения.
[...]
192.168.0.100 server1.example.com centos2 Анонимное совместное использование 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 = nomkdir -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
С машины с Windows просто просмотрите папку и попробуйте создать текстовый файл, но вы получите ошибку “доступ запрещен”.


Проверьте разрешения общей папки.
ls -l
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[root@server1 samba]#Чтобы разрешить доступ анонимному пользователю, установите разрешения следующим образом:
cd /sambachmod -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 smbgrpuseradd srijan -G smbgrpsmbpasswd -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 = yessystemctl restart smb.servicesystemctl 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 проверьте папку с правильными учетными данными

Вы снова столкнетесь с проблемой разрешений, чтобы предоставить права на запись пользователю srijan, выполните:
cd /samba
chown -R srijan:smbgrp secured/Теперь пользователи Samba имеют разрешения на запись в папку. Ура, вы завершили настройку сервера Samba на CentOS 7! :)

Get new posts in your inbox
No spam. Unsubscribe anytime.