Samba — это открытый пакет программ для nix-систем, в которых реализованы некоторые фичи, предоставляемые Windows Server. Samba может выступать в качестве контроллера домена, сервиса Active Directory, может шарить принтеры и директории по сети. В рамках этой заметки мы рассмотрим использование Samba в качестве файлового сервера. Мотивация для использования именно Samba, а не, скажем, FTP , может быть разная. Как минимум, с ее помощью и вправду очень удобно перекидывать файлы между Windows- и Linux-машинами. Просто монтируешь каталог и вперед.
Ниже будет рассмотрена установка Samba под CentOS. Установка под другие дистрибутивы Linux практически ничем не отличается. Далее по тексту предполагается, что Samba поднимается на машине с адресом 10.24.5.42.
Шарим каталог всем
Установка Samba:
Проверяем, что в /etc/samba/smb.conf в секции [global]
не закомментирована строчка:
Также можно поменять название workgroup. У меня было написано так:
В конце файла дописываем:
comment = Samba File Server Share
path = /srv/samba/share
browsable = yes
guest ok = yes
read only = no
create mask = 0755
Далее выполняем команды:
sudo chown nobody:nobody / srv / samba / share /
sudo service smb start
sudo service nmb start
# запуск сервисов при старте системы
sudo chkconfig nmb on
sudo chkconfig smb on
Теперь, скажем, в дэфолтном файловом менеджере Unity можно прицепиться к smb://10.24.5.42/share
, создать там каталогов и залить в них файлов. А также проверить, что эти изменения происходят не только локально, но и на сервере.
Логи Samba лежат в /var/log/samba/. Используемые Samba порты — 139 и 445. Их можно пробрасывать через SSH или с помощью Ncat . Это работает, я проверял.
Доступ по логину и паролю
Давать доступ к каталогу всем подряд небезопасно. Давайте исправим эту ситуацию:
sudo smbpasswd -a smbuser
sudo mkdir -p / srv / samba / smbuser
sudo chown smbuser:smbuser / srv / samba / smbuser
В /etc/samba/smb.conf дописываем:
path = /srv/samba/smbuser
available = yes
valid users = smbuser
read only = no
browsable = yes
public = yes
writable = yes
Говорим:
sudo service nmb restart
Монтируем каталог в Linux и Windows:
Ура, файлы успешно шарятся между Windows и Linux!
Монтирование через CLI
Если GUI недоступен, примонтировать каталог можно так:
mkdir smbuser
sudo mount.cifs // 10.24.5.42 / smbuser / home / eax / smbuser
-o user =smbuser, password =PASSWORD, uid = 1000 # 1000 — uid нашего юзера
Если каталог стал больше не нужен, говорим:
Заметьте, что если система крутится в контейнере вроде Docker или OpenVZ , это может не работать, так как вы не сможете подгрузить нужные модули ядра.
В этом случае mount.cifs
ругнется:
… а команда modprobe cifs
покажет:
Это все, о чем я хотел рассказать. Надеюсь, вы нашли данную информацию полезной.
Дополнение: Вас также могут заинтересовать посты Основы использования NFS на примере FreeBSD и Памятка по использованию WebDAV .