Поиск по сайту:

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


Это руководство существует для этих версий ОС

  • CentOS 8
  • CentOS 5.6

На этой странице

  1. Предпосылки
  2. Установить сервер Samba
  3. Создание общего ресурса с помощью Samba
    1. Создание общедоступного общего каталога
    2. Настройка Samba
    3. Настройка SELinux и брандмауэра

    1. Создать пользователя и группу
    2. Создание частного общего каталога
    3. Настройка Samba
    4. Доступ к общему ресурсу Samba из командной строки Ubuntu

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

    В этом руководстве мы узнаем, как установить Samba и настроить его как автономный сервер общего доступа в CentOS 8.

    Предпосылки

    • Сервер под управлением CentOS 8.
    • На вашем сервере настроен пароль root.

    Установить самба-сервер

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

    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 для совместного использования общедоступного каталога.

    Сначала создайте резервную копию файла /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 и значения контекста безопасности в общем каталоге с помощью следующей команды:

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

    Укажите IP-адрес вашего сервера 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 //45.58.38.51/public: 
    

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

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

    ls /mnt/

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

    file1.txt  file2.txt
    

    Создать частную папку с помощью Samba

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

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

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

    groupadd private

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

    useradd -g private privateuser

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

    smbpasswd -a privateuser

    Вывод:

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

    Создать личный общий каталог

    Затем создайте общую папку с именем 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 для частного каталога с помощью следующей команды:

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

    Настроить самбу

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

    nano /etc/samba/smb.conf

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

    [Private]
    path = /samba/share/private
    valid users = @private     
    guest 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 //45.58.38.51/private:  *********
    

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

    Теперь вы можете проверить свой общий ресурс Samba в каталоге /opt, как показано ниже:

    ls /opt/

    Вывод:

    private1.txt  private2.txt
    

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

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

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

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

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