Установка SAMBA на CentOS 6.5 и шаринг директорий

Рассмотрим самый простой вариант установки SAMBA сервера на CentOS 6.5 и расшарим папку в сеть,а так же создадим папку защищенную логином и паролем. Иногда, я бы даже сказал часто нужно быстро завести самбу и расшарить работникам файлы, так как большинство из низ сидит на Winodws то вариант с NFS или WinSCP не подходит, так как они даже не знают что это такое. Конечно в идеале, если вы делает серьезный SAMBA сервер, с разделением на группы, пользователей то это руководство вам не подойдет, но для самых простых случаем всегда удобно иметь под рукой реальную инструкцию.

Установка SAMBA серверва на CentOS 6.5

Начальные данные.
Операционная система: CentOS 6.5
Имя хоста: backup
Адрес хоста: 10.2.50.75

Проверьте нет ли у вас уже установленных пактов в системе:

rpm -qa | grep samba
samba-winbind-3.6.9-168.el6_5.x86_64
samba-winbind-clients-3.6.9-168.el6_5.x86_64
samba-3.6.9-168.el6_5.x86_64
samba-common-3.6.9-168.el6_5.x86_64
samba-client-3.6.9-168.el6_5.x86_64
rpm -qa | grep samba
samba-winbind-3.6.9-168.el6_5.x86_64
samba-winbind-clients-3.6.9-168.el6_5.x86_64
samba-3.6.9-168.el6_5.x86_64
samba-common-3.6.9-168.el6_5.x86_64
samba-client-3.6.9-168.el6_5.x86_64

Или так:

yum list installed | grep samba
samba.x86_64            3.6.9-168.el6_5 @updates
samba-client.x86_64     3.6.9-168.el6_5 @updates
samba-common.x86_64     3.6.9-168.el6_5 @updates
samba-winbind.x86_64    3.6.9-168.el6_5 @updates
samba-winbind-clients.x86_64
yum list installed | grep samba
samba.x86_64            3.6.9-168.el6_5 @updates
samba-client.x86_64     3.6.9-168.el6_5 @updates
samba-common.x86_64     3.6.9-168.el6_5 @updates
samba-winbind.x86_64    3.6.9-168.el6_5 @updates
samba-winbind-clients.x86_64

В моем случае есть, в вашем не должно быть. Теперь ставим пакеты:

yum install samba samba-client samba-common -y
yum install samba samba-client samba-common -y

Добавляем в автозагрузку:

chkconfig smb on
chkconfig nmb on
chkconfig smb on
chkconfig nmb on

Если у вас работает IPtables:

vi /etc/sysconfig/iptables
 
# Samba rulles 
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 901 -j ACCEPT
vi /etc/sysconfig/iptables

# Samba rulles 
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 901 -j ACCEPT

Создаем папку которую будем расшаривать:

mkdir /mnt/public/
chmod -R 0777 /mnt/public/
mkdir /mnt/public/
chmod -R 0777 /mnt/public/

Копируем конфиг файл в сторону:

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
rm /etc/samba/smb.conf
vi /etc/samba/smb.conf
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
rm /etc/samba/smb.conf
vi /etc/samba/smb.conf

Туда записываем все что мы хотим расшарить:

#======================= Global Settings =====================================
 
[global]
workgroup = WORKGROUP
security = share
map to guest = bad user
 
#============================ Share Definitions ==============================
 
[Public]
path = /mnt/public
browsable =yes
writable = yes
guest ok = yes
read only = no
 
[Operations]
path = /mnt/operations
browsable =yes
writable = yes
guest ok = yes
read only = no
#======================= Global Settings =====================================

[global]
workgroup = WORKGROUP
security = share
map to guest = bad user

#============================ Share Definitions ==============================

[Public]
path = /mnt/public
browsable =yes
writable = yes
guest ok = yes
read only = no

[Operations]
path = /mnt/operations
browsable =yes
writable = yes
guest ok = yes
read only = no

Теперь перезапускаем сервис:

service smb restart
service nmb restart
service smb restart
service nmb restart

Открываем Run:
step_1

И любуемся своей папкой расшаренной в сеть:
Step_2

Если вы надумали создать папку защищенную логином и паролем, и не доступную другим, нам необходимо сделать следующее, создать пользователя и группу, задать им пароль и исправифть конфиг:

useradd smbuser
groupadd smbgrp
usermod -a -G smbgrp smbuser
smbpasswd -a smbuser
useradd smbuser
groupadd smbgrp
usermod -a -G smbgrp smbuser
smbpasswd -a smbuser

Создаем папку и задаем ией права:

mkdir /mnt/secret
chown -R arbab:smbgrp secure/
chmod -R 0770 secure/
mkdir /mnt/secret
chown -R arbab:smbgrp secure/
chmod -R 0770 secure/

Правим конфиг файл:

vi /etc/samba/smb.conf
 
#============================ Share Secure Definitions ==============================
 
[Secret]
path = /mnt/secret
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes
vi /etc/samba/smb.conf

#============================ Share Secure Definitions ==============================

[Secret]
path = /mnt/secret
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes

Перезапустить сервисы:

service smb restart
service nmb restart
service smb restart
service nmb restart

Выглядить это будет так:
test-samba-sharing

Для тех кто хочет настраивать самбу через графический интерфейс:

yum install xinetd samba-swat -y
yum install xinetd samba-swat -y

Правим конифг:

vi /etc/xinetd.d/swat
 
service swat
{
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1 10.2.50.75/24
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
}
vi /etc/xinetd.d/swat

service swat
{
port = 901
socket_type = stream
wait = no
only_from = 127.0.0.1 10.2.50.75/24
user = root
server = /usr/sbin/swat
log_on_failure += USERID
disable = no
}

Рестартуем сервис:

/etc/init.d/xinetd restart
/etc/init.d/smb restart
/etc/init.d/nmb restart
/etc/init.d/xinetd restart
/etc/init.d/smb restart
/etc/init.d/nmb restart

Пример того как это будет выглядеть:
dsadsa

Как видите все просто если знаешь.