Samba Server · 7 min read · Dec 08, 2025

Как установить Samba сервер на CentOS 8

Samba — это бесплатное и открытое программное обеспечение, которое можно использовать для обмена файлами, папками и принтерами между системами Linux и Windows. Оно также используется для аутентификации и авторизации, разрешения имен и объявления служб. Оно может работать на различных операционных системах, включая Linux, Unix, OpenVMS и многие другие.

В этом руководстве мы научимся устанавливать Samba и настраивать его как отдельный сервер обмена на CentOS 8.

Предварительные требования

  • Сервер с установленной CentOS 8.
  • Пароль root настроен на вашем сервере.

Установка Samba сервера

По умолчанию пакет Samba доступен в стандартном репозитории CentOS. Вы можете установить его с помощью следующей команды:

dnf install samba samba-common samba-client -y

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

systemctl start smb  
systemctl enable smb

Теперь вы можете проверить службу Samba с помощью следующей команды:

systemctl status smb

Вы должны получить следующий вывод:

? smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 2072 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 25028)
   Memory: 33.8M
   CGroup: /system.slice/smb.service
           ??2072 /usr/sbin/smbd --foreground --no-process-group
           ??2074 /usr/sbin/smbd --foreground --no-process-group
           ??2075 /usr/sbin/smbd --foreground --no-process-group
           ??2076 /usr/sbin/smbd --foreground --no-process-group

Создание общедоступного ресурса с помощью Samba

В этом разделе мы создадим общедоступный ресурс с помощью Samba, чтобы каждый мог получить доступ к общедоступной директории без пароля.

Создание общедоступной директории

Сначала создайте общую папку с именем public и также создайте два файла внутри директории public:

mkdir -p /samba/share/public  
touch /samba/share/public/file1.txt  
touch /samba/share/public/file2.txt

Затем назначьте необходимые разрешения и владельца с помощью следующей команды:

chmod -R 0755 /samba/share/  
chmod -R 0755 /samba/share/public  
chown -R nobody:nobody /samba/share  
chown -R nobody:nobody /samba/share/public

Настройка Samba

Далее вам нужно будет настроить Samba для обмена общедоступной директорией.

Сначала создайте резервную копию файла /etc/samba/smb.conf с помощью следующей команды:

mv /etc/samba/smb.conf /etc/samba/smb.bak

Затем создайте новый файл конфигурации Samba:

nano /etc/samba/smb.conf

Добавьте следующие строки:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = samba-server
security = user
map to guest = bad user
dns proxy = no

[Public]
path = /samba/share/public
browsable =yes
writable = yes
guest ok = yes
read only = no

Сохраните и закройте файл. Затем перезапустите службу Samba, чтобы применить изменения:

systemctl restart smb

Далее проверьте конфигурацию Samba с помощью следующей команды:

testparm

Вы должны увидеть следующий вывод:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
    dns proxy = No
    map to guest = Bad User
    netbios name = SAMBA-SERVER
    security = USER
    server string = Samba Server %v
    idmap config * : backend = tdb


[Public]
    guest ok = Yes
    path = /samba/share/public
    read only = No

Настройка SELinux и брандмауэра

Далее установите правильные значения SELinux boolean и контекста безопасности для директории share с помощью следующей команды:

setsebool -P samba_export_all_ro=1 samba_export_all_rw=1  
semanage fcontext -a -t samba_share_t "/samba/share/public(/.*)?"  
restorecon /samba/share/public

Затем откройте все службы Samba через firewalld с помощью следующей команды:

firewall-cmd --add-service=samba --zone=public --permanent  
firewall-cmd --reload

Доступ к Samba ресурсу из Ubuntu Gnome

Чтобы получить доступ к ресурсу Samba, перейдите на удаленную машину, откройте файловый менеджер Gnome и нажмите на Подключиться к серверу, как показано ниже:

Доступ к SAMBA из Gnome

Укажите IP-адрес вашего Samba сервера и нажмите кнопку Подключиться. После успешного подключения вы должны увидеть ресурс Samba на следующем экране:

Ресурс Samba в проводнике файлов

Теперь нажмите на директорию Public, вы должны увидеть ваши файлы на следующем экране:

Список файлов

Доступ к Samba ресурсу из командной строки Ubuntu

Вы также можете получить доступ к ресурсу Samba из командной строки.

Сначала перечислите все доступные ресурсы Samba с помощью следующей команды:

smbclient -L //45.58.38.51

Вы должны увидеть следующий вывод:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

    Sharename       Type      Comment
    ---------       ----      -------
    Public          Disk      
    IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------

Вы также можете смонтировать ресурс Samba, используя протокол cifs. Для этого установите пакет cifs-utils с помощью следующей команды:

apt-get install cifs-utils -y

Затем смонтируйте ресурс Samba в директорию /mnt с помощью следующей команды:

mount -t cifs //45.58.38.51/public /mnt/

Вам будет предложено ввести пароль, как показано ниже:

Password for root@//45.58.38.51/public: 

Просто нажмите Enter, не вводя никакого пароля, чтобы смонтировать ресурс Samba:

Теперь вы можете получить доступ к ресурсу Samba в директории /mnt:

ls /mnt/

Вы должны увидеть следующий вывод:

file1.txt  file2.txt

Создание частного ресурса с помощью Samba

В этом разделе мы создадим частный ресурс с помощью Samba, чтобы только аутентифицированные пользователи могли получить доступ к директории частного ресурса.

Создание пользователя и группы

Сначала создайте группу с именем private с помощью следующей команды:

groupadd private

Затем создайте нового пользователя с именем privateuser и добавьте его в группу private:

useradd -g private privateuser

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

smbpasswd -a privateuser

Вывод:

New SMB password:
Retype new SMB password:
Added user privateuser.

Создание директории частного ресурса

Затем создайте общую папку с именем private и также создайте два файла внутри директории private:

mkdir -p /samba/share/private  
touch /samba/share/private/private1.txt  
touch /samba/share/private/private2.txt

Затем назначьте правильные разрешения и владельца с помощью следующей команды:

chmod -R 0770 /samba/share/private  
chown -R root:private /samba/share/private

Затем настройте контекст SELinux для директории private с помощью следующей команды:

semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"  
restorecon /samba/share/private

Настройка Samba

Далее откройте файл конфигурации Samba и определите частный ресурс:

nano /etc/samba/smb.conf

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

[Private]
path = /samba/share/private
valid users = @private     
guests ok = no
writable = yes
browsable = yes

Сохраните и закройте файл, затем перезапустите службу Samba, чтобы применить изменения:

systemctl restart smb

Далее проверьте конфигурацию Samba с помощью следующей команды:

testparm

Вы должны увидеть следующий вывод:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
    dns proxy = No
    map to guest = Bad User
    netbios name = SAMBA-SERVER
    security = USER
    server string = Samba Server %v
    idmap config * : backend = tdb


[Public]
    guest ok = Yes
    path = /samba/share/public
    read only = No


[Private]
    path = /samba/share/private
    read only = No
    valid users = @private

Доступ к Samba ресурсу из командной строки Ubuntu

Сначала получите доступ к доступному ресурсу с помощью следующей команды:

smbclient -L //45.58.38.51

Вы должны увидеть следующий вывод:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

    Sharename       Type      Comment
    ---------       ----      -------
    Public          Disk      
    Private         Disk      
    IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------

Затем подключитесь к серверу Samba и перечислите доступные ресурсы с помощью следующей команды:

smbclient //45.58.38.51/private -U privateuser

Вам будет предложено ввести пароль, как показано ниже:

Enter privateuser's password: 

Введите ваш пароль и нажмите Enter, чтобы получить доступ к оболочке Samba, как показано ниже:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]
smb: \>

Теперь перечислите доступные ресурсы с помощью следующей команды:

smb: \> ls

Вы должны увидеть следующий вывод:

  .                                   D        0  Tue Mar  3 10:03:22 2020
  ..                                  D        0  Tue Mar  3 10:01:56 2020
  private1.txt                        N        0  Tue Mar  3 10:03:17 2020
  private2.txt                        N        0  Tue Mar  3 10:03:22 2020

        51194 blocks of size 2097152. 49358 blocks available

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

smb: \>exit

Вы также можете смонтировать ресурс Samba в директорию /opt:

mount -t cifs -o user=privateuser //45.58.38.51/private /opt

Вам будет предложено ввести пароль, как показано ниже:

Password for privateuser@//45.58.38.51/private:  *********

Введите ваш пароль и нажмите Enter, чтобы смонтировать ресурс Samba.

Теперь вы можете проверить ваш ресурс Samba в директории /opt, как показано ниже:

ls /opt/

Вывод:

private1.txt  private2.txt

Доступ к Samba ресурсу из Ubuntu Gnome

Чтобы получить доступ к ресурсу Samba, перейдите на удаленную машину, откройте файловый менеджер Gnome и нажмите на Подключиться к серверу, как показано ниже:

Доступ к частному ресурсу в Gnome

Укажите IP-адрес вашего Samba сервера и нажмите кнопку Подключиться. После успешного подключения вы должны увидеть ресурс Samba на следующем экране:

Общедоступный и частный ресурс

Теперь нажмите на директорию Private, укажите ваше имя пользователя и пароль, затем нажмите кнопку Подключиться. Вы должны увидеть ваши файлы на следующем экране:

Вход с именем пользователя и паролем

Файлы

Поздравляем! Вы успешно установили и настроили Samba сервер на CentOS 8.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.