Купить Корзина
  • Вход
  • Помощь
  • Рег.облако
  • Облачные серверы
  • Установка программного обеспечения
  • Как установить Samba на Ubuntu

Как установить Samba на Ubuntu

В статье мы расскажем, что такое Самба и как его установить на Ubuntu.

Что такое Samba

Samba — это пакет программ, который используется для работы с популярными ОС: Windows, Linux, а также с другими UNIX-подобными системами. Это ПО будет полезно, если вы хотите создать файловый сервер с доступом из нескольких операционных систем: например, можно сделать общую папку для обмена файлами между реальным компьютером и виртуальным сервером. Samba включает в себя клиентскую (smbclient) и серверную (smbserver) части, а также использует для работы протокол SMB.

Простыми словами, при помощи Samba можно создать хранилище файлов с общим доступом и гибкими настройками прав для пользователей.

Ниже мы опишем полную процедуру установки и настройки Samba на ОС Ubuntu. Она включает в себя три обязательных этапа:

  1. Установка Samba.
  2. Настройка Samba.
  3. Монтирование общей директории как образа диска.

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

  1. 1.
    Подключитесь к серверу по SSH.
  2. 2.

    Обновите пакеты. Для этого поочередно выполните команды:

    sudo apt update
    sudo apt upgrade
  3. 3.

    Установите Samba:

    sudo apt install samba -y
  4. 4.

    Добавьте Самба в автозагрузку:

    sudo systemctl enable smbd
  5. 5.

    Запустите службу:

    sudo systemctl start smbd
  6. 6.

    Проверьте статус службы Samba:

    sudo systemctl status smbd

    После этого на экране появится вывод:

    ● smbd.service - Samba SMB Daemon
         Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
         Active: active (running) since Mon 2023-01-01 00:00:00 UTC; 15s ago
           Docs: man:smbd(8)
                 man:samba(7)
                 man:smb.conf(5)
       Main PID: 12345 (smbd)
         Status: "smbd: ready to serve connections..."
          Tasks: 4 (limit: 1105)
         Memory: 7.2M
         CGroup: /system.slice/smbd.service
                 ├─12345 /usr/sbin/smbd --foreground --no-process-group
                 ├─12346 /usr/sbin/smbd --foreground --no-process-group
                 ├─12347 /usr/sbin/smbd --foreground --no-process-group
                 └─12348 /usr/sbin/smbd --foreground --no-process-group
    
    Jan 01 00:00:00 apachi systemd[1]: Starting Samba SMB Daemon...
    Jan 01 00:00:10 apachi systemd[1]: Started Samba SMB Daemon.
    Jan 01 00:00:20 apachi systemd[1]: Reloading Samba SMB Daemon.
    Jan 01 00:00:30 apachi systemd[1]: Reloaded Samba SMB Daemon.
  7. 7.

    Добавьте разрешающее правило для брандмауэра:

    sudo ufw allow samba

Готово, теперь переходите к настройке Samba.

Настройка Samba

Подготовка конфигурационного файла

  1. 1.
    Подключитесь к серверу по SSH.
  2. 2.

    Создайте копию конфигурационного файла — она пригодится, если потребуется откат до стандартных настроек:

    sudo cp /etc/samba/smb.conf /etc/samba/res_smb.conf
  3. 3.

    Очистите конфиг от комментариев и строк, не используемых в работе:

    grep -v '^ *#\|^ *$' /etc/samba/smb.conf | sudo tee /etc/samba/smb.conf

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

    [global]
       workgroup = WORKGROUP
       server string = %h server (Samba, Ubuntu)
       log file = /var/log/samba/log.%m
       max log size = 1000
       logging = file
       panic action = /usr/share/samba/panic-action %d
       server role = standalone server
       obey pam restrictions = yes
       unix password sync = yes
       passwd program = /usr/bin/passwd %u
       passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
       pam password change = yes
       map to guest = bad user
       usershare allow guests = yes
    [printers]
       comment = All Printers
       browseable = no
       path = /var/spool/samba
       printable = yes
       guest ok = no
       read only = yes
       create mask = 0700
    [print$]
       comment = Printer Drivers
       path = /var/lib/samba/printers
       browseable = yes
       read only = yes
       guest ok = no
  4. 4.

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

    testparm

    Если конфигурация не содержит ошибок, вывод будет иметь следующий вид:

    Load smb config files from /etc/samba/smb.conf
    Loaded services file OK.
    Weak crypto is allowed
    Server role: ROLE_STANDALONE
    
    Press enter to see a dump of your service definitions
    
    # Global parameters
    [global]
            log file = /var/log/samba/log.%m
            logging = file
            map to guest = Bad User
            max log size = 1000
            obey pam restrictions = Yes
            pam password change = Yes
            panic action = /usr/share/samba/panic-action %d
            passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
            passwd program = /usr/bin/passwd %u
            server role = standalone server
            server string = %h server (Samba, Ubuntu)
            unix password sync = Yes
            usershare allow guests = Yes
            idmap config * : backend = tdb
    
    [printers]
            browseable = No
            comment = All Printers
            create mask = 0700
            path = /var/spool/samba
            printable = Yes
    
    [print$]
            comment = Printer Drivers
            path = /var/lib/samba/printers

Готово, вы настроили конфигурационный файл.

Настройка административного доступа

  1. 1.
    Подключитесь к серверу по SSH.
  2. 2.

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

    sudo mkdir /var/directory_name

    Вместо directory_name укажите название папки.

  3. 3.

    Разрешите полный доступ:

    sudo chmod 777 /var/directory_name

    Вместо directory_name укажите название папки.

  4. 4.

    Откройте конфигурационный файл:

    sudo nano /etc/samba/smb.conf
  5. 5.

    Добавьте директивы:

    [directory_name]
        comment = directory_name
        path =  /var/directory_name
        public = no
        writable = yes
        read only = no
        guest ok = no
        create mask = 0775
        directory mask = 0775
        force create mode = 0775
        force directory mode = 0775

    Где:

    • [directory_name] — название ресурса, который увидит пользователь при подключении;
    • comment = directory_name — комментарий;
    • path = /var/directory_name — путь к директории, к которой вы предоставляете доступ;
    • public = no — запрет публичного доступа;
    • writable = yes — право записи в сетевой ресурс;
    • read only = no — право на создание файлов и папок для всех пользователей;
    • guest ok = no — запрет гостевого подключения;
    • create mask = 0775, directory mask = 0775, force create mode = 0775 и force directory mode = 0775 — права доступа, которые нужно назначить созданным файлам и директориям.

    После этого сохраните изменения с помощью сочетания клавиш Ctrl + O и закройте файл комбинацией Ctrl + X.

  6. 6.

    Создайте пользователя Samba:

    sudo smbpasswd -a username

    Вместо username укажите имя пользователя. После этого создайте пароль.

Готово, вы настроили доступ по логину и паролю.

Настройка доступа для пользователей и групп

  1. 1.
    Подключитесь к серверу по SSH.
  2. 2.

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

    sudo mkdir /var/group_directory

    Вместо group_directory укажите название папки.

  3. 3.

    Назначьте полный доступ к папке:

    sudo chmod 777 /var/group_directory

    Вместо group_directory укажите название папки.

  4. 4.

    Откройте конфигурационный файл:

    sudo nano /etc/samba/smb.conf
  5. 5.

    Добавьте директивы:

    [group_directory]
        comment = group_directory
        path = /var/group_directory
        public = no
        writable = no
        read only = yes
        guest ok = no
        valid users = username1, username2, @group
        write list = username
        create mask = 0775
        directory mask = 0775
        force create mode = 0775
        force directory mode = 0775
        inherit owner = yes

    Где:

    • [group_directory] — название, которое увидит пользователь при подключении;
    • comment = group_directory — комментарий;
    • path = /var/group_directory — путь к директории, к которой вы предоставляете доступ;
    • public = no — запрет публичного доступа;
    • writable = no — запрет на запись в сетевой ресурс;
    • read only = yes — запрет на создание файлов и папок для всех пользователей;
    • guest ok = no — запрет гостевого подключения;
    • valid users = username1, username2, @group — список пользователей и групп, которым разрешен доступ. Название группы указано со знаком @ в начале;
    • create mask = 0775, directory mask = 0775, force create mode = 0775 и force directory mode = 0775 — права доступа, которые нужно назначить созданным файлам и директориям;
    • inherit owner = yes — включение наследования владельца папок и файлов.

    После этого сохраните изменения с помощью сочетания клавиш Ctrl + O и закройте файл комбинацией Ctrl + X.

  6. 6.

    Перезапустите Samba:

    sudo systemctl restart smbd

Готово, вы настроили доступ для пользователей и групп.

Монтирование директории

  1. 1.
    Подключитесь к серверу по SSH.
  2. 2.

    Обновите пакеты. Для этого поочередно выполните команды:

    sudo apt update
    sudo apt upgrade
  3. 3.

    Установите набор утилит:

    sudo apt install cifs-utils -y
  4. 4.

    Смонтируйте директорию:

    mount.cifs //var/directory_name  /test

    Где:

    • /var/directory_name — путь к директории, к которой вы подключаетесь;
    • /test — директория, в которую нужно добавить смонтированный образ.
  5. 5.

    Создайте файл с учетными данными пользователей:

    sudo nano /root/.smbselus
  6. 6.

    Добавьте строки:

    username=user_name
    password=PassWord

    Где:

    • user_name — логин пользователя,
    • PassWord — пароль пользователя.

    После этого сохраните изменения с помощью сочетания клавиш Ctrl + O и закройте файл комбинацией Ctrl + X.

  7. 7.

    Откройте конфигурационный файл:

    sudo nano /etc/fstab
  8. 8.

    Добавьте строку:

    //var/group_directory /test cifs user,rw,credentials=/root/.smbselus 0 0

    Где:

    • /var/group_directory — путь к директории, которую нужно смонтировать;
    • /test — директория, в которую нужно смонтировать образ;
    • cifs user — открытый доступ к монтированию для любого пользователя;
    • rw — права на чтение и запись;
    • credentials=/root/.smbselus — файл с данными пользователя.

    После этого сохраните изменения с помощью сочетания клавиш Ctrl + O и закройте файл комбинацией Ctrl + X.

Готово, вы смонтировали директорию с общим доступом.

Помогла ли вам статья?

Спасибо за оценку. Рады помочь 😊

 👍
Рассылка Рег.ру

Лайфхаки, скидки и новости об IT

Подписываясь, вы принимаете правила рассылок

Продукты
  • Домены
  • Хостинг
  • Создание сайтов
  • Рег.облако
  • Серверы и ДЦ
  • SSL-сертификаты
  • Сервисы
Полезное
  • Стоимость услуг
  • База знаний
  • Документы
  • Whois
  • Магазин доменов
  • ЭДО
  • Партнерам
  • Сообщить о нарушении
Компания
  • О компании
  • Контакты
  • Офисы
  • Новости
  • Акции и скидки
  • Мероприятия
  • Блог
  • Отзывы клиентов
+7 495 580-11-11 Телефон в Москве
8 800 555-34-78 Бесплатный звонок по России
  • vk
  • telegram
  • ok
  • moikrug
  • youtube
  • twitter
  • Банковская карта
  • Система быстрых платежей
  • SberPay
  • QIWI-кошелёк
  • ЮMoney
  • Наличные
  • Безналичный перевод
Все способы оплаты

Нашли опечатку?
Выделите и нажмите Ctrl+Enter

  • © ООО «РЕГ.РУ»

    Правовая информация и правила пользования

  • Мы используем файлы cookie. Продолжив работу с сайтом, вы соглашаетесь с Политикой обработки персональных данных и Правилами пользования сайтом.