Установка и настройка Samba для расшаривания между Linux машинами
Учимся ставить, настраивать, запускать, останавливать, перезапускать, добавлять безопасность и вообще по всякому извращаться над Samba в командной строке…
Начало всех начал — установка
Для начала собственно нужно поставить саму Samba
Ставим так
sudo apt-get install samba
Configuring /etc/samba/smb.conf
Придется создать конфиг Samba по новой для своего же удобства.
Переименовываем /etc/samba/smb.conf
в /etc/samba/smb.conf.old
что в командной строке делается так:
mv /etc/samba/smb.conf /etc/samba/smb.conf.old
Открываем /etc/samba/smb.conf
в любом текстовом редакторе
Копипастим всё что ниже:
[global] ; Uncomment this if you want a guest account ; guest account = nobody log file = /var/log/samba-log.%m lock directory = /var/lock/samba share modes = yes [homes] comment = Home Directories browseable = no read only = no create mode = 0750 [tmp] comment = Temporary file space path = /tmp read only = no public = yes
Нужно перезапустить Samba после действий выше, что делается так:
/etc/rc.d/init.d/samba stop
/etc/rc.d/init.d/samba start
или так:
/etc/rc.d/init.d/samba restart
Если на сервере более чем один сетевой интерфес (2 сетевухи например) Samba может смотреть не туда куда нужно.
Если так — вы можете прикрепить Samba к одному конкретному интерфейсу добавив в секцию [global]
строчку типа такой:
interfaces = 192.168.1.1/24
Замените IP на нужный и обратите внимание на /24 сразу за IP — это почти тоже самое что и маска подсети 255.255.255.0 — т.е. Самба будет видна для машин у которых IP начинаются с 192.168.1
Чтобы расшарить директорию для публичного доступа, создайте копию секции [tmp]
, поменяйте имя с tmp
на public
и добавте недостающие строки чтобы получилось следующее:
[public] comment = Public Stuff path = /home/public public = yes writable = yes printable = no
Чтобы сделать эту шару читабельной для всех, но доступной на запись только пользователям из группы ubuntu
, поменяйте настройки чтобы получилось следующее:
[public] comment = Public Stuff path = /home/public public = yes writable = yes printable = no write list = @ubuntu ; Именно эта строка и определяет доступ на запись для группы
После этого я бы рекомендовал настроить Samba для работы с закодироваными (криптоваными) паролями.
В секции [global]
файла /etc/smb.conf
, добавляем следующие строки:
encrypt passwords = yes smb passwd file = /etc/smbpasswd
Если машины которые будут подключаться к этой шаре и сервер на которой шары расположены используют крипченые пароли
у вас не получиться увидеть доступные шары без авторизации.
Вроде всё, сохраняемся и выходим.
Запуск SMB
sudo /usr/sbin/smbd -D && /usr/sbin/nmbd -D
Пробуем посмотреть доступные шары, для этого запускаем:
/usr/bin/smbclient -L host
Пример:
/usr/bin/smbclient -L ubuntuserver
Как видим ‘host’ именем сервера на котором запущена Samba. Если на Samba сервере настроена авторизация, будет запрошен пароль. Дальше система выдаст вам страницу информации о какие шары вам доступны.
Для того чтобы посмотреть шару ‘public’ на машине ‘ubuntuserver’ (//ubuntuserver/public) вам нужно следующее:
/usr/bin/smbclient service <password>
Пример:
/usr/bin/smbclient ////ubuntuserver/public mypwd
По причине ограничений оболочки (шЕла, консоли, командной строки) вам нужно дублировать обратные слешы, т.е. вместо \\ писать \\\\.
И так как только вы войдете в консоль ‘smb: \’. Вы можете набрать ‘h’ для менюхи помощи.
Подключение шары
Скажем мы хотим подключить директорию Ubuntu
расшареную на ubuntuserver
к директории /home/Ubuntu
на локальной машине.
Типичная команда подключения (также часто звучит в оригинале как «маунт») следующая:
smbmount "\\\\ubuntuserver\\Ubuntu" -U rtg2t -c 'mount /home/Ubuntu -u 1000 -g 1000'
Обратите внимание на флажки -u
и -g
. UID и GID. Замените их на свои значения.
Надеюсь информация изложеная выше будет вам полезна!