samba-file-server/

Samba — это открытый пакет программ для nix-систем, в которых реализованы некоторые фичи, предоставляемые Windows Server. Samba может выступать в качестве контроллера домена, сервиса Active Directory, может шарить принтеры и директории по сети. В рамках этой заметки мы рассмотрим использование Samba в качестве файлового сервера. Мотивация для использования именно Samba, а не, скажем, FTP , может быть разная. Как минимум, с ее помощью и вправду очень удобно перекидывать файлы между Windows- и Linux-машинами. Просто монтируешь каталог и вперед.

Ниже будет рассмотрена установка Samba под CentOS. Установка под другие дистрибутивы Linux практически ничем не отличается. Далее по тексту предполагается, что Samba поднимается на машине с адресом 10.24.5.42.

Шарим каталог всем

Установка Samba:

sudo yum install samba

Проверяем, что в /etc/samba/smb.conf в секции [global] не закомментирована строчка:

security = user

Также можно поменять название workgroup. У меня было написано так:

workgroup = MYGROUP

В конце файла дописываем:

[share]
comment = Samba File Server Share
path = /srv/samba/share
browsable = yes
guest ok = yes
read only = no
create mask = 0755

Далее выполняем команды:

sudo mkdir -p / srv / samba / share
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 adduser smbuser
sudo smbpasswd -a smbuser
sudo mkdir -p / srv / samba / smbuser
sudo chown smbuser:smbuser / srv / samba / smbuser

В /etc/samba/smb.conf дописываем:

[smbuser]
path = /srv/samba/smbuser
available = yes
valid users = smbuser
read only = no
browsable = yes
public = yes
writable = yes

Говорим:

sudo service smb restart
sudo service nmb restart

Монтируем каталог в Linux и Windows:

Файловый сервер на Samba

Ура, файлы успешно шарятся между Windows и Linux!

Монтирование через CLI

Если GUI недоступен, примонтировать каталог можно так:

sudo yum install samba-client samba-common cifs-utils
mkdir smbuser
sudo mount.cifs // 10.24.5.42 / smbuser / home / eax / smbuser
-o user =smbuser, password =PASSWORD, uid = 1000 # 1000 — uid нашего юзера

Если каталог стал больше не нужен, говорим:

sudo umount / home / eax / smbuser /

Заметьте, что если система крутится в контейнере вроде Docker или OpenVZ , это может не работать, так как вы не сможете подгрузить нужные модули ядра.

В этом случае mount.cifs ругнется:

mount error: cifs filesystem not supported by the system

… а команда modprobe cifs покажет:

FATAL: Module cifs not found.

Это все, о чем я хотел рассказать. Надеюсь, вы нашли данную информацию полезной.

Дополнение: Вас также могут заинтересовать посты Основы использования NFS на примере FreeBSD и Памятка по использованию WebDAV .

EnglishRussianUkrainian