Поднимаем файловый сервер на Samba под CentOS
9 ноября 2015
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.
Метки: Linux.
Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.