Для расшаривания файлов с сервера под linux в сеть Windows используем Samba сервер.
Установка Samba:
sudo apt-get install samba
Настройка.
Самба хранит все свои настройки в файле /etc/samba/smb.conf. Откроем его для редактирования
sudo nano /etc/samba/smb.conf
Каждый раздел файла начинается с заголовка раздела: [global], [homes], [printers], и т.п.
В [global] определяются глобальные настройки для всего сервера.
Раздел [homes] позволяет удаленным пользователям иметь доступ к своим (и только своим) домашним директориям на сервере. Т. е., если к серверу подключиться пользователь user1, то он будет подключены к своему домашнему каталогу. Для этого он должен быть зарегистрированы на сервере.
В [printers] прописаны настройки для принтеров.
Глобальные настройки:
[global] ; куда записывать логи log file = /var/log/samba/log.%m ; максимальный размер файла журнала max log size = 1000 # имя самба сервера в сетевом окружении netbios name = HomeServer ; коментарий самба сервера server string = Home Server Ubuntu ; Рабочая группа workgroup = WORKGROUP ; выступать как контролер домена domain master = no ; привязка к интерфейсам, на каких слушать, если не указано ;слушает на все интерфейсах, можно указать ай-пи адреса interfaces = lo, eth2 ; подчиняться директивам учетных записей PAM и управлению сессиями obey pam restrictions = yes ; шифрование паролей между сервером и клиентом encrypt passwords = true ; параметр сообщают демону smbd что делать с запросами, ; которые не удалось аутентифицировать в UNIX ; bad user – запросы с неправильным паролем будут отклонены, если ; такое имя пользователя существует. Если не существует, то такие запросы ; будут считаться как попытки зайти гостем (guest account). map to guest = bad user ; определяет будет ли демон nmbd делать запрос к DNS, если WINS ; не смог разрешить NetBIOS имя dns proxy = no ; параметр заставляет синхронизировать пароль UNIX с паролем SMB при ; изменении зашифрованного пароля SMB в файле smbpasswd. При включении ; этого параметра (yes) от пользователя ROOT вызывается программа, ; определенная в параметре passwd program, что позволяет установить ; новый пароль UNIX без доступа к старому паролю UNIX unix password sync = yes ; имя программы, которую можно использовать для смены паролей UNIX, ; любые вхождения %u будут заменены именем пользователя passwd program = /usr/bin/passwd %u ; механизм для хранения информации о пользователях passdb backend = tdbsam ; уровень отладки журналов событий, которые будут записываться ; в системный syslog, 0 - события LOG_ERR, 1 - LOG_WARNING, ; 2 — LOG_NOTICE, 3 - LOG_INFO. syslog = 0 ; режим работы Samba: ; share - уровень ресурсов, ; user - уровень пользователей, доступ по логин-паролю, ; domain - домен, ; server - сервер паролей, ; ads - Active directory security = user ; не аутентифицированные пользователи получают доступ к общим ; ресурсам пользователей usershare allow guests = yes panic action = /usr/share/samba/panic-action %d os level = 20 ; если включено, для смены паролей будет использован PAM, вместо ; программы указанной в параметре passwd program pam password change = yes ; разрешаем доступ для всех со своей подсетки и локалхоста hosts allow = 192.168.10. 127. ; пользователь с root-правами admin users = user1 ; выступать сервером времени time server = yes
Основные настройки сделаны. Теперь расшарим нужные папки.
Расшариваем домашние папки пользователей
[HOMES] ; комментарий comment = Home directories ; путь к папке, %U = имя пользователя path = /home/samba/homes/%U ; только для чтения? read only = no ; вход с паролем? public = no ; запись разрешена? writable = yes ; права создаваемых файлов и папок create mask = 0600 directory mask = 0700 ; отображать в списке ресурсов в сетевом окружении? browseable = no
Далее расшариваем нужные папки. Для каждой папки можно определить свои параметры доступа. Для этого дописываем в конец конфиг-файла smb.conf разделы как представлено в примере ниже.
Пример:
; создадим расшаренную папку files [files] ; комментарий к создаваемой папке comment = Media files ; путь к папке path = /home/user1/files ; будем разрешать доступ только по паролю public = yes ; не видно в сетевом окружении всем кроме владельцев printable = no ; запрещаем запись всем writable = no ; и разрешаем запись для user1 и пользователям из группы adm write list = user1 @adm
По аналогии создаются все остальные шары.
Для добавления пользователей в Samba делаем следующее:
smbpasswd -a username
Вам будет предложено ввести пароль, пользователь будет добавлен в базу, теперь необходимо включить этого пользователя.
smbpasswd -e username
Для проверки правильности сделанных настроек выполните команду
testparm
если testparm сообщает об отсутствии проблем, то smbd правильно загрузит файл настроек.
Не забудьте перезапустить Samba после изменения конфиг-файла.
sudo /etc/init.d/samba restart
Если будете расшаривать внешние устройства, нтфс диски и т. д., не забудьте добавить пользователя в группу plugdev.
После того как вы настроите самбу как вам нужно, выполните в терминале команду
testparm
Результатом будет вывод состояния smb-сервера и список расшаренных ресурсов. Если настройки сделаны не правильно, вы увидите сообщение об ошибке, из которой легко поймете, где ошиблись.
Будем считать, что у вас есть сервер с ip-адресом 192.168.1.1 и ваш рабочий компьютер с адресом 192.168.1.2
Пропингуйте сервер с рабочего компьютера:
ping 192.168.1.1
Также пропингуйте рабочий компьютер с сервера:
ping 192.168.1.2
Если пинги идут, значит с сетью все в порядке. Если пинги не проходят, проверьте ваш файл /etc/hosts. Также проблема может быть в DNS-сервере (если он у вас установлен), в роутере, хабе, кабелях.
Если пинги идут, но вы все еще не видите расшаренные папки, выполните команду
smbclient -L 192.168.1.1
Вы должны увидить список доступных расшаренных ресурсов. Если вы получите сообщение «Bad password»,
проверьте, параметры hosts allow, hosts deny и valid users в файле smb.conf. Попробуйте временно закоментировать их.
Выполнение этих простых тестов, позволяет устранить большинство проблем, связанных с настройкой и использование Samba.
Автор статьи – Ильдар Галиуллин