Настройка samba в ubuntu 16.04
Содержание:
- Структура Samba-групп
- Conclusion
- Защищенный общий доступ к папке Ubuntu
- Настройка Samba в Ubuntu 16.04
- Samba Security Modes
- Разрешение имён для клиентских машин
- Установка и настройка Samba на Linux Mint 19
- Linux mint 19 не работает samba
- Решение проблем
- Проблемы подключения к Windows 7 — mount error(12): cannot allocate memory
- Проблемы получения доступа к ресурсам, защищенным паролем, из Windows
- Диалоговое окно появляется с большой задержкой
- Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
- Не удается предоставить общий доступ к папке
- Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)
- Шаг 1. Развертывание серверной платформы
Структура Samba-групп
Samba-группы могут быть следующих типов:
- (номер типа группы )
- (номер типа группы )
- (номер типа группы )
Группы, созданные по умолчанию:
-
Доменные группы — глобальные группы, которые действуют в домене.
- — администраторы домена (полные права на компьютерах в домене).
- — гости домена (минимальные права).
- — пользователи домена.
- — компьютеры домена.
-
Локальные группы — группы, действующие локально на данном компьютере.
Локальные группы отсутствуют -
Встроенные группы — группы встроенные в систему.
- — администраторы (полные права).
- — операторы учетных записей. Создание и управление пользовательской учетной информацией, создание и управление группами, резервное копирование файлов и каталогов.
- — операторы архивов. Резервное копирование, восстановление из резервной копии, остановка системы.
- — операторы печати. Управление принтерами, резервное копирование.
- — репликаторы. Эта группа используется службой репликации File Replication на контроллерах домена.
- — операторы системы. Изменение системного времени, останов системы, останов с удаленной системы, резервное копирование, восстановление из резервной копии, блокирование сервера, преодоление блокировки сервера, форматирование жесткого диска, управление сетевыми каталогами, управление принтерами.
Пример создания доменной группы test. По умолчанию создается доменная группа, тип группы — .
cl-groupadd test samba
* Группа 'test' добавлена в Samba сервис
Пример создания встроенной группы Power Users — пользователей, имеющих дополнительные права.
cl-groupadd -g 547 —rid 547 -t 5 ‘Power Users’ samba
* Группа 'Power Users' добавлена в Samba сервис
Где:
-
— идентификатор группы
547(Group ID) -
— уникальный идентификатор
547(RID) -
— тип группы
5(встроенная группа)
Conclusion
In this article, you have created cross-platform online file shares using the Samba server. You have also accessed these shares from Windows, Linux, and macOS.
Samba shares have become so common that many applications are able to access the data stored in them. These applications can extend the functionality and usefulness of your Samba shares. For example, the mobile version of the media player VLC can connect to and stream music and video from your Samba share. To access it, select open MRL and use the standard Samba URL: . You can also use a Samba share as the destination for your backups with the cross-platform backup utility BackupPC.
In addition to acting as a simple file share, Samba can work with Windows Active Directory as either a domain controller or a member of a domain. The Samba Wiki User Documentation contains more information on how to do this.
Защищенный общий доступ к папке Ubuntu
Чтобы расшарить папку для Windows Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.
Сначала создаем папку:
Дальше установим такие права, чтобы доступ к папке могли получить только пользователи из группы securegroup.
Создаем группу:
Настраиваем права:
Последний шаг, добавляем настройки в конфигурационный файл samba:
Перезапустите сервер Samba. Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.
Чтобы проверить как это работает добавим пользователя richard в нашу группу:
Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba. Поэтому создадим для него пароль Samba:
После ввода команды вам будет предложено ввести новый пароль. Для применения изменений не забудьте перезагрузить файловый сервер.
Если вы хотите чтобы общий доступ к папке Ubuntu мог получить доступ только определенный пользователь замените в конфигурационном файле @securegroup на имя пользователя. Также можно указать несколько пользователей через запятую или несколько групп.
Настройка Samba в Ubuntu 16.04
Ставим Samba и если у кого нет — пакет gksu, для возможности запуска окна настроек Samba:
sudo apt install samba system-config-samba gksu
Теперь переходим к настройке сервера
Создаём резервную копию оригинального файла конфигурации Samba:
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
После этого, создаём свой файл конфигурации:
sudo gedit /etc/samba/smb.conf
Указываем глобальные настройки файлового сервера.
Копируем в файл эти строки:
workgroup = WORKGROUP server string = Samba Server %v netbios name = SambaSrv security = user map to guest = bad user name resolve order = bcast host wins support = no dns proxy = no
Что мы скопировали?
А вот что:
workgroup - рабочая группа, в которой находятся все наши машины server string - строка коментария, где %v - это макрос, который будет заменён на версию Самбы netbios name - имя Самба-сервера, которое будет отображаться в Windows security - по умолчанию выполнять аутентификацию на уровне пользователя map to guest - это инструкция демону, которая сообщает, что делать с запросами. bad user - означает, что запросы с неправильным паролем будут отклонены, если такое имя пользователя существует name resolve order - очередность разрешения IP адресов по NetBIOS имени. bcast - означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный. wins support - не устанавливайте этот параметр в yes если у вас нет нескольких подсетей и вы не хотите, чтобы ваш nmbd работал как WINS сервер
Сохраняем изменения.
Теперь даём общий доступ к папке в Ubuntu, чтобы машины с Windows могли ею пользоваться.
Общий доступ к папке в Ubuntu
Создаём папку, к которой будем открывать доступ для всех:
sudo mkdir -p /samba/obmen
Ключ -p разрешает создавать вложенные папки.
~ — создать каталоги в домашней папке пользователя
После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:
cd /samba sudo chmod -R 0755 obmen sudo chown -R nobody:nogroup obmen/
Внесём изменения в файл настройки samba, добавив следующий раздел:
path = /samba/obmen browsable = yes writable = yes guest ok = yes read only = no
Теперь ваш конфигурационный файл должен выглядеть вот так:
workgroup = WORKGROUP server string = Samba Server %v netbios name = SambaSrv security = user map to guest = bad user name resolve order = bcast host dns proxy = no path = /samba/obmen browsable =yes writable = yes guest ok = yes read only = no
Чтобы применить изменения, перезапустите сервер Samba:
sudo service smbd restart
С анонимным доступом к общему ресурсу мы закончили.
Теперь можем проверить доступность этой папки в Windows-машине.
Нажимаем Win+R и в адресной строке пишем:
Скрин показывает, что доступ получен, и получен он без вводи логин и пароля, то есть анонимно.
Защищенный общий доступ к папке Ubuntu
Чтобы расшарить папку для Windows в Ubuntu, к которой будут иметь доступ только пользователи из определенной группы, создадим отдельную папку и опишем ее в файле настройки Samba в Ubuntu.
Создаем папку:
sudo mkdir -p /samba/obmen/sec
Устанавливаем права, чтобы доступ к папке получали только пользователи из группы securedgroup.
Создаем группу:
sudo addgroup securedgroup
Настраиваем права:
cd /samba/obmen sudo chmod -R 0770 sec/ sudo chown -R alex:securedgroup sec
Добавляем настройки в конфигурационный файл samba
Открываем конфигурационный файл
sudo gedit /etc/samba/smb.conf
И добавляем в него этот блок:
path = /samba/obmen/sec valid users = @securedgroup guest ok = no writable = yes browsable = yes
Перезапускаем сервер Samba.
Теперь доступ к общей папке в Ubuntu могут получить только пользователи группы securegroup.
Чтобы проверить как это работает добавим пользователя alex в нашу группу:
sudo usermod -a -G securedgroup alex
Чтобы пользователь мог работать с расшаренными папками в Ubuntu, он должен быть в базе данных Samba.
Создаём для него пароль Samba:
sudo smbpasswd -a alex
После ввода команды будет предложено ввести новый пароль.
Для применения изменений перезагружаем файловый сервер.
Для того, чтобы доступ к папке мог получить только определённый пользователь, заменяем @securedgroup на имя пользователя.
Вот и всё
10 октября 2016, 18:32
Александр
Linux
13000
Из этой категории
- Установка LAMP-сервера и phpMyAdmin в Debian 10Установка XAMPP в Debian 10 (Ubuntu) LinuxОтключить пароль SUDO в LinuxBash-команды для экономии времениУстанавливаем Brackets в Debian 10Работа с пакетами при помощи dpkgНастройка Linux Debian 10Скачиваем сайты целиком — утилита wget15 специальных символов-команд, которые нужно знать для работы в Bash Linux42 команды Linux
Samba Security Modes
There are two security levels available to the Common Internet Filesystem (CIFS) network protocol user-level and share-level. Samba’s security mode implementation allows more flexibility, providing four ways of implementing user-level security and one way to implement share-level:
-
security = user: requires clients to supply a username and password to connect to shares. Samba user accounts are separate from system accounts, but the libpam-winbind package will sync system users and passwords with the Samba user database.
-
security = domain: this mode allows the Samba server to appear to Windows clients as a Primary Domain Controller (PDC), Backup Domain Controller (BDC), or a Domain Member Server (DMS). See for further information.
-
security = ADS: allows the Samba server to join an Active Directory domain as a native member. See for details.
-
security = server: this mode is left over from before Samba could become a member server, and due to some security issues should not be used. See the section of the Samba guide for more details.
-
security = share: allows clients to connect to shares without supplying a username and password.
The security mode you choose will depend on your environment and what you need the Samba server to accomplish.
Разрешение имён для клиентских машин
После выполнения указанных выше настроек DNS сервер не может получать и, соответственно, выдавать информацию об именах и IP-адресах клиентских машин.
Если в домене используются клиентские машины, получающие динамические IP-адреса от сервера DHCP, сервер DNS может быть настроен на автоматическое получение информации о выданных адресах. Примерный порядок настройки см. в статье Динамическое обновление DNS клиентских машин FreeIPA;
Если в домене используются клиентские машины, которым присваиваются статические адреса, то:
- Можно использовать для присвоения этих статических адресов сервер DHCP с динамическим обновлением адресов;
Установка и настройка Samba на Linux Mint 19
Чтобы установить Samba на Linux Mint, войдите в командную строку и введите следующую команду:
sudo apt-get install sambaВведите свой пароль для аутентификации, и apt загрузит и установит Samba и его вспомогательные утилиты для вас. Главное, что нужно знать о Samba, заключается в том, что он хранит собственный набор учетных записей пользователей, отдельно от основных учетных записей, в файле / etc / samba / smbpasswd. Это означает, что вам нужно создать отдельный пароль Samba для каждого пользователя, которому вы хотите получить доступ к общим папкам. Вы создаете этот пароль, используя команду smbpasswd. Вот как должна выглядеть команда для создания учетной записи Samba для учетной записи пользователя, называемой camalas:
sudo smbpasswd -a camalas
Обязательно дайте учетной записи Samba Camalas надлежащим образом надежный пароль (включая прописные, строчные, пунктуационные и цифры). Как только будет создан пароль camalas, следующим шагом будет создание каталога для ее совместного использования. Начните с создания папки с именем «test» в папке camalas, которую мы будем использовать для нашей первой общей папки:
mkdir / home / camalas / test
(ПРИМЕЧАНИЕ. НЕ используйте sudo для создания папки, потому что тогда владелец и группа будут установлены как «root», что означает, что вы не сможете получить доступ к папке, используя ваше имя пользователя и пароль Samba.)
Следующим шагом будет отредактировать файл /etc/samba/smb.conf, основной файл конфигурации для Samba. Как всегда, сделайте безопасную резервную копию исходного файла smb.conf в домашней папке, если вы сделаете ошибку:
sudo cp /etc/samba/smb.conf ~
Теперь используйте vi для редактирования файла /etc/samba/smb.conf:
sudo vi /etc/samba/smb.conf
Файл smb.conf длинный и довольно сложный, но для целей этой демонстрации вы можете игнорировать большинство из них. Нажмите до самого конца файла и вставьте этот текст:
path = /home/camalas/test
available = yes
valid users = camalas
read only = no
browseable = yes
public = yes
writable = yes
(Между строками не должно быть пробелов, и также обратите внимание, что должно быть одно пространство как до, так и после каждого из равных знаков.)
Вот что означают некоторые из наиболее важных параметров конфигурации.
test — дает имя файла.
path — указывает местоположение папки для совместного использования.
available — указывает, что общий доступ к файлам доступен для клиентов в сети.
valid users — указывает пользователям, которым разрешен доступ к файловому ресурсу. В этом случае мы установили его так, чтобы доступ к нему мог получить только учетная запись camalas. Вы можете добавить дополнительные учетные записи здесь, если хотите.
read only — указывает, не разрешается ли клиентам писать в общий ресурс файла.
writable — указывает, что данные могут быть записаны в общий ресурс файла.
Настройки, указанные выше, будут совместно использоваться тестовой папкой, которую мы создали ранее, и даем имя пользователя camalas и только имя пользователя camalas для чтения и записи в папку. После ввода изменений сохраните smb.conf, выйдите из vi и перезапустите Samba с помощью этой команды:
sudo samba restart
(Это заставит Samba перезагрузиться, перечитав файлы конфигурации и активировав только что созданную вами.) После перезапуска Samba используйте эту команду, чтобы проверить smb.conf для любых синтаксических ошибок:
sudo testparm
Если вы передадите команду testparm, Samba должна работать.
Linux mint 19 не работает samba
Проблема. Все из этого (# sudo apt-get install samba samba-common system-config-samba python-glade2 gksu) установил, ошибок не было. Открываю system-config-samba выходит окно с вводом пароля пользователя, ввожу, окно пропадает и на этом все, ничего больше не открывается дальше, никаких окон с настройкой этой самбы. В сети вижу группу WORKGROUP при входе в нее просит пароль хотя там его нет и не было.
Решение. Переустановил все пакеты, относящиеся к самбе заново, и выполнил Код: sudo touch /etc/libuser.confкак посоветовал fisher74. Не знаю, что именно из этого помогло, но теперь графический интерфейс запускается. Кстати, libuser.conf пустой.
Проблема. Не стартует smbd При проверке статуса пишет:smbd service smb status smbd is dead, but stale PID file exists
Решение. Уберите passdb backend из параметров.
Проблема. Не обнаруживается принтер в сети
Решение. Запустил компьютер с живой загрузочной версией Mint 18.3. Вся работа в сети, обнаружение принтера работало, поэтому я скопировал файл smb.conf из папки / etc / samba. Затем перезагрузили установленный Mint 19 (где обнаружение сети / принтера не сработало) и заменил файл /etc/samba/smb.conf версией, скопированной с Linux mint 18.3. Затем я перезагрузил систему. При перезагрузке обнаружение сетевого принтера работало, но просмотр файлового менеджера не выполнялся. Затем я добавил протокол клиентского интерфейса max = NT1 после того, как WORKGROUP = WORKGROUP снова перезагрузил систему, и все сработало, включая просмотр файлового менеджера.
View the discussion thread.
Решение проблем
Проблемы подключения к Windows 7 — mount error(12): cannot allocate memory
Известная ошибка Windows 7 «mount error(12): cannot allocate memory» может быть исправлена установкой пары ключей в реестре системы Windows:
- (установить значение )
- (установить значение )
В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v "Size" /t REG_DWORD /d 3 /f
Выполните одно из следующих действий, чтобы изменения вступили в силу:
- Перезагрузите Windows
- Перезапустите службу на сервере через services.msc
- Выполните в командной строке и ; после остановки служба может перезапуститься автоматически
Примечание: Поиск решения в интернете подскажет другое решение, рекомендующее пользователям добавить ключ, изменяющий размер «IRPStackSize». Это неправильное решение для устранения проблемы в Windows 7. Не применяйте его
Проблемы получения доступа к ресурсам, защищенным паролем, из Windows
Обратите внимание, что это должно быть добавлено в локальный файл smb.conf, а не в файл сервера
# lanman fix client lanman auth = yes client ntlmv2 auth = no
Диалоговое окно появляется с большой задержкой
У меня была проблема, связанная с тем, что диалоговое окно для ввода пароля появлялось с задержкой около 30 секунд, когда я пытался установить соединение из Windows XP/Windows 7. Когда я посмотрел файл error.log на сервере, я увидел:
[2009/11/11 06:20:12, 0] printing/print_cups.c:cups_connect(103) Unable to connect to CUPS server localhost:631 - Interrupted system call
Эта опция предотвращает поиск cups и файла /etc/printcap:
printing = bsd printcap name = /dev/null
Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
Если вы являетесь домашним пользователем, используете samba исключительно для организации общего доступа к файлам с сервера или NAS и не заинтересованы в организации общего доступа к принтерам, вы можете исправить эту ошибку, добавив следующие строки в файл /etc/samba/smb.conf:
load printers = No printing = bsd printcap name = /dev/null disable spoolss = Yes
Перезапустите samba:
systemctl restart smbd
…проверьте ваши логи:
cat /var/log/samba/smbd.log
и больше ошибка не должна появляться.
Не удается предоставить общий доступ к папке
Проблема проявляется в том, что, когда вы пытаетесь предоставить общий доступ к папке через Dolphin (файловый менеджер), и вначале, вроде бы, все работает нормально, после перезапуска Dolphin иконка ресурса исчезла из папки, а в терминале (Konsole) вы видите следующий вывод:
‘net usershare’ returned error 255: net usershare: usershares are currently disabled
Для решения проблемы включите пользовательские общие ресурсы, как это описано в разделе .
И вы используете firewall (iptables), поскольку не доверяете вашей локальной (школа, университет, отель) сети. Это может происходить по следующей причине: когда smbclient просматривает локальную сеть, он посылает широковещательный запрос на udp-порт 137. Затем серверы сети отвечают вашему клиенту, но, поскольку исходный адрес ответа отличается от адреса назначения, который видел iptables при отправке запроса, iptables не признает ответ как «установленное соединение» или «относящийся к запросу», и, следовательно, пакет отбрасывается. Возможное решение — добавление:
iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns
в вашу конфигурацию iptables.
Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)
Вероятно, вы указываете неправильное имя сервера. Чтобы узнать его, запустите на сервере команду и найдите строку «Transient hostname».
Шаг 1. Развертывание серверной платформы
Сервер назовем asles.bgiki.local. Начальный метод регистрации пользователя – локальный, и кроме root никаких учетных записей не создаем. При установке выбираем KDE, файловый сервер, DNS, DHCP, LDAP, в разделе «разработка – базовая разработка» — Perl. Необходимо установить пакеты из состава дистрибутива: openldap2-devel, openssl-certs, pam_cifs, pam_smb, pam-config, pam-modules, pam_ldap, perl-Authen-SASL, Perl-BerkeleyDB, perl-OpenCA-CRL, OpenCA-REQ, perl-OpenCA-X509, perl-Unicode-String, все perl-Crypt, perl-IO-String, perl-ldap, perl-ldap-ssl, Perl-IO-Socket-SSL, perl-Net_SSLeay, perl-Unicode-Map8, libgcrypt, libxcrypt, libnscd, libacl, libmsrpc, libsmbsharemodes, libmspack, компоненты cyrus-sasl, tls, и по желанию — mc, kdeaddons3-kate, gvim. Дополнительные пакеты из репозитория SUSE: openldap2-back-perl, ldapsmb, samba-doc. Вероятно, этот перечень может быть скорректирован путем проб и ошибок.
Примечание: Учитывая README к пакету smbldap-tools версии 0.9.2, а именно фразу: «In the future, some other function may come (like … compliance to RFC2307…)…» нам предстоит сделать выбор схемы каталога – nis.shema – либо более прогрессивная rfc2703bis.schema, но без использования smbldap-tools. Для простоты был выбран вариант с использованием smbldap-tools.
При установленном samba-doc элементы пакета smbldap-tools находим в папке /usr/share/doc/packages/samba/examples/LDAP/smbldap-tools-0.9.2, вероятно, их можно использовать, но по ряду причин мне показалось целесообразным использовать свежую версию пакета, которую можно найти наhttp://opensuse.org.
Версии smbldap-tools могут несколько отличаться, в том числе по порядку установки. В варианте 0.9.4-3.2 имеются зависимости — 3 компоненты Perl, это rpm-пакет perl-Jcode-2.06-5.1.noarch.rpm и пакеты в исходных текстах Unicode-Map-0.112.tar.gz и Unicode-MapUTF8-1.11.tar.gz.
RPM-пакет найден поиском в Google, тарболы нашлись с помощьюhttp://search.cpan.org.
Конфигурируем сетевую карту для внутренней зоны, IP-адрес статический. Открываем в брэндмауэре серверы LDAP, samba, dns, а также те порты, что могут быть необходимы в нашей конфигурации. Настроим сервер DNS.