6.2 Сервер сетевого хранилища samba

Настройка Samba в РедОС

Установите samba, если она не установлена:

yum install samba samba-client samba-common

Отключите SeLinux или настройте его.

Анонимный доступ

  • Создадим папку /srv/guest и настроим ее для анонимного доступа.
mkdir /srv/guest
  • Назначим пользователя и группу nobody владельцем и группой для папки /srv/guest. Данный пользователь и группа автоматически присваиваются samba анонимным пользователям.
chown -R nobody:nobody /srv/guest
  • Укажем права на директорию, разрешающие пользователю и группе читать и писать в папку.
chmod 775 /srv/guest
  • Настройте конфигурацию samba. Файл конфигурации samba находится в /etc/samba/smb.conf. Он состоит из разделов. Приведите его к следующему виду.
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = redos
security = user
passdb backend = tdbsam
map to guest = bad user
 
[guest]
comment = Share with anonymous access
path = /srv/guest
browsable = yes
writable = yes
guest ok = yes

Раздел [global] содержит глобальные настройки samba.

Что мы здесь можем настроить:

  • workgroup — имя рабочей группы, к котоой принадлежит наш сервер.
  • server string — описание сервера
  • netbios name — netbios-имя сервера
  • security — метод проверки подлинности пользователей. В данный момент доступна только опция «user». Использовавшиеся ранее «share» и «server» более не поддерживаются.
  • passdb backend — поддерживаются варианты «tdbsam» и «ldapsam»
  • map to guest — когда кто-либо подключается к общим папкам, то система пытается его аутентифицировать прозрачно, то есть используя учетные данные, известные операционной системе, откуда он подключается. Если такой пользователь есть и пароль совпадает, то подключение произойдет успешно. Если пользователь есть, но пароль не совпадает, будет выведено диалоговое окно с предложением аутентифицироваться. Если же пользователь с таким имене операцонной системе файлового сервера не известен, то она предоставит гостевой доступ. Значение этого параметра «map to guest = bad user» означает, что доступ будет предоставлен от имени пользователя nobody. Если очень нужно, чтобы с гостевым доступом ассоциировался другой аккаунт, можно добавить, например, следующий параметр: guest account = root

Следующая секция указывает параметры сетевой папки:

  • comment — описание общей папки
  • browsable — «yes» — означает, что общая папка не будет скрытой и пользователи смогут увидеть ее среди доступных общих папок.
  • writable — общая папка папка доступна для записи
  • read only — writable наоборот
  • guest ok — разрешен ли гостевой доступ
  • Проверить правильность файла конфигурации можно командой testparm
  • Далее включаем службы samba.
systemctl enable smb
systemctl enable nmb
systemctl start smb
systemctl start nmb

Параметр enable добавляет службы к списку загрузки при старте операционной системы, параметр start, как можно догадаться, их запускает.

Проверить результат выполнения предшествующих команд можно, запустив

systemctl list-units.

Ограничение доступа хостам

В файле /etc/samba/smb.conf впишите следующие параметры:

  • interfaces — интерфейсы, через которые мы сможем подключиться (не следует исключать интерфейс localhost — lo)
  • hosts allow — хосты, которым будет разрешен доступ
  • hosts deny — запрещенные хосты
[global]
…
interfaces = lo eth0 192.168.0.2/24 192.168.1.2/24
hosts allow = 127. 192.168.12. 192.168.13.
…

Определение лог файлов

В файле /etc/samba/smb.conf впишите следующие параметры:

  • log file — размещение логов
  • max log size — максимальный размер файла (в KB), после чего будет создан новый
[global]
…
log file = /var/log/samba/log.%m
max log size = 50
…

Доступ с аутентификацией

Создадим папку /srv/admin в которую могут иметь доступ только определенные пользователи или группы.

  • Создадим папку:
mkdir /srv/admin
  • Создадим пользователя sysadmin
useradd sysadmin
  • Зададим для него пароль samba пользователя
smbpasswd –a sysadmin

Параметр -a указывает, что пароль задается для нового пользователя. Без него команда попыталась бы изменить пароль для уже существующего пользователя.

  • Создадим группу sysadmins

groupadd sysadmins

Проверить существование группы можно:

cat /etc/group

Проверить существование пользователя:

cat /etc/passwd
  • Добавим пользователя sysadmin в группу sysadmins
usermod -a -G sysadmins sysadmin

Проверить, что добавление удалось:

groups sysadmin
  • Теперь укажем группу sysadmins в качестве владельца папки /srv/admin
chown -R :sysadmins /srv/admin
  • И дадим ей право на запись:
chmod -R 775 /srv/admin

Теперь, если нам в последующем потребуется предоставить доступ к папке /srv/admin кому-нибудь еще, мы можем добавить этих пользователей в группу sysadmins.

  • В файл smb.conf добавим раздел для новой общей папки:
[admin]
comment = Share with authenticated access
path = /srv/admin
browsable = yes
writable = yes
guest ok = no
valid users = @sysadmins

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email