Статьи‎ > ‎

Установка Samba4 AD (контроллера домена) часть 1

Данная статья не претендует на право быть истиной в последней инстанции, а призвана помочь лично мне (а возможно, ещё кому-то) установить и настроить "Домен Windows" на базе SAMBA4. Это - первая часть, об установке и настройке первичного контроллера домена; рекомендации по настройке вторичного контроллера планирую написать позже.
Итак, что мы имеем:
- операционная система Linux (пример создавался на CentOS 6.4, в других дистрибутивах приведённые пути файлов могут отличаться);
- требуется настроить единый центр авторизации для использования как для входа в рабочие станции, так и для доступа к почте;
- предполагается использовать сервисы DNS, авторизации (там всё непросто, но в основном будет kerberos), LDAP.
Что нам известно:
- ни в одном из изученных бесплатных дистрибутивов Linux (CentOS, openSUSE, Ubuntu) в штатных репозиториях нет более-менее свежего пакета samba4-server;
- более-менее полная реализация домена совместимого с Active Directory реализована начиная с samba4;
- в реализациях samba до 4.0.5 было несколько ошибок, действительно сильно мешающих её эксплуатации (на момент написания статьи актуальным является релиз 4.0.7, в котором критических для меня ошибок пока выявить не удалось).

Порядок действий (основная часть сценария взята из соответствующей статьи на сайте samba).
UPD: Пока писал статью, в поисках дополнительной информации натолкнулся на весьма подробное описание процесса установки и настройки samba - подробнее я описать данный процесс не смогу, а лишь обращу внимание, что в моей версии установка производится из репозитария, ну и ещё есть пара отличий, итак:
1. Ставим настолько минимальную установку Linux, на сколько нам позволяет дистрибутив (настоятельно рекомендую отказаться от установки графической оболочки - всё равно на сервере от неё пользы практически нет, а ресурсы она потребляет, особенно это заметно при включении/перезагрузке сервера); критической рекомендацией является не устанавливать samba-server (рекомендация родилась из чтения форумов, где весьма много проблем возникает как раз из-за остатков предыдущей установки сервера samba). IP-адрес должен присваиваться статически.
2. Регистрируем репозиторий, содержащий актуальную версию samba4-server (я использовал рекомендованный на сайте проекта samba ресурс http://enterprisesamba.com/ - для доступа к нему требуется регистрация, но она на момент написания статьи, бесплатная и ни к чему не обязывающая).

[root@centserv bin]# cd /etc/yum.repos.d
[root@centserv yum.repos.d]# curl -O https:// USERNAME:ACCESSKEY@download. sernet.de/packages/samba/4.0/centos/6/sernet-samba-4.0.repo
--2013-07-25 15:24:57--  https:// USERNAME:*password*@download. sernet.de/packages/samba/4.0/centos/6/sernet-samba-4.0.repo
Распознаётся download.sernet.de... 193.175.80.229
Устанавливается соединение с download.sernet.de|193.175.80.229|:443... соединение установлено.
Запрос HTTP послан, ожидается ответ... 401 Authorization Required
Повторное использование соединения с download.sernet.de:443.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 282 [text/plain]
Saving to: «sernet-samba-4.0.repo»

100%[===============================================================================================>] 282         --.-K/s   в 0s      

2013-07-25 15:25:03 (5,89 MB/s) - «sernet-samba-4.0.repo» saved [282/282]

[root@centserv ~]#

* в написании адреса выше и ниже умышленно допущена ошибка - два пробела (после "https://" и перед "sernet.de"), иначе движок сайта пытается их отобразить в виде совершенно нечитаемой конструкции...
В данном примере USERNAME:ACCESSKEY следует заменить на имя пользователя и код доступа, полученные при регистрации на enterprisesamba.com и отображаемые на https://portal.enterprisesamba.com/; после скачивания шаблона sernet-samba-4.0.repo следует отредактировать его, заменив USERNAME:ACCESSKEY на ту же пару имени пользователя и кода доступа, что и при скачивании, затем необходимо импортировать GPG-ключи данного сервера:

[root@centserv log]# curl -O http:// ftp. sernet.de/pub/sernet-build-key-1.1-3.noarch.rpm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4402  100  4402    0     0   716k      0 --:--:-- --:--:-- --:--:-- 1074k
[root@centserv log]# yum install sernet-build-key-1.1-3.noarch.rpm
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.yandex.ru
 * extras: mirror.yandex.ru
 * updates: mirror.yandex.ru
Setting up Install Process
Examining sernet-build-key-1.1-3.noarch.rpm: sernet-build-key-1.1-3.noarch
Marking sernet-build-key-1.1-3.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package sernet-build-key.noarch 0:1.1-3 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================
 Package                    Arch             Version            Repository                                Size
===============================================================================================================
Installing:
 sernet-build-key           noarch           1.1-3              /sernet-build-key-1.1-3.noarch           822  

Transaction Summary
===============================================================================================================
Install       1 Package(s)

Total size: 822  
Installed size: 822  
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : sernet-build-key-1.1-3.noarch                                                               1/1
importing SerNet build key to rpm keyring... done.
  Verifying  : sernet-build-key-1.1-3.noarch                                                               1/1

Installed:
  sernet-build-key.noarch 0:1.1-3                                                                              

Complete!
[root@centserv log]#

В данном примере вместо привычного wget использован curl, т.к. wget при минимальной установке отсутствует.
3. Устанавливаем сами компоненты сервера samba; если в качестве поставщика пакета был выбран enterprisesamba.com, требуемый пакет будет называться sernet-samba-ad (SerNet Samba AD domain controller) и все недостающие пакеты он подтянет самостоятельно:

[root@centserv /]# yum install sernet-samba-ad
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: mirror.yandex.ru
 * extras: mirror.yandex.ru
 * updates: mirror.yandex.ru
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sernet-samba-ad.i686 0:4.0.7-4.el6 will be installed
base/filelists_db                                                                                | 4.9 MB     00:00    
extras/filelists_db                                                                              |  10 kB     00:00    
sernet-samba-4.0/filelists                                                                       |  52 kB     00:00    
updates/filelists_db                                                                             | 3.1 MB     00:00    
--> Processing Dependency: sernet-samba-libs = 4.0.7-4.el6 for package: sernet-samba-ad-4.0.7-4.el6.i686
...
--> Processing Dependency: libauthkrb5.so(SAMBA_4.0.7_SERNET_REDHAT_4.EL6) for package: sernet-samba-ad-4.0.7-4.el6.i686
--> Running transaction check
---> Package sernet-samba.i686 0:4.0.7-4.el6 will be installed
---> Package sernet-samba-client.i686 0:4.0.7-4.el6 will be installed
---> Package sernet-samba-libs.i686 0:4.0.7-4.el6 will be installed
--> Processing Dependency: sernet-samba-common = 4.0.7-4.el6 for package: sernet-samba-libs-4.0.7-4.el6.i686
---> Package sernet-samba-libsmbclient0.i686 0:4.0.7-4.el6 will be installed
---> Package sernet-samba-libwbclient0.i686 0:4.0.7-4.el6 will be installed
---> Package sernet-samba-winbind.i686 0:4.0.7-4.el6 will be installed
--> Running transaction check
---> Package sernet-samba-common.i686 0:4.0.7-4.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

========================================================================================================================
 Package                                     Arch Version                       Repository                         Size
========================================================================================================================
Installing:
 sernet-samba-ad                             i686 4.0.7-4.el6                   sernet-samba-4.0                  3.8 M
Installing for dependencies:
 sernet-samba                                i686 4.0.7-4.el6                   sernet-samba-4.0                  1.4 M
 sernet-samba-client                         i686 4.0.7-4.el6                   sernet-samba-4.0                  400 k
 sernet-samba-common                         i686 4.0.7-4.el6                   sernet-samba-4.0                  229 k
 sernet-samba-libs                           i686 4.0.7-4.el6                   sernet-samba-4.0                  4.1 M
 sernet-samba-libsmbclient0                  i686 4.0.7-4.el6                   sernet-samba-4.0                   46 k
 sernet-samba-libwbclient0                   i686 4.0.7-4.el6                   sernet-samba-4.0                   41 k
 sernet-samba-winbind                        i686 4.0.7-4.el6                   sernet-samba-4.0                  346 k

Transaction Summary
========================================================================================================================
Install       8 Package(s)

Total download size: 10 M
Installed size: 50 M
Is this ok [y/N]: y
Downloading Packages:
(1/8): sernet-samba-4.0.7-4.el6.i686.rpm                                                         | 1.4 MB     00:06    
(2/8): sernet-samba-ad-4.0.7-4.el6.i686.rpm                                                      | 3.8 MB     00:13    
(3/8): sernet-samba-client-4.0.7-4.el6.i686.rpm                                                  | 400 kB     00:01    
(4/8): sernet-samba-common-4.0.7-4.el6.i686.rpm                                                  | 229 kB     00:00    
(5/8): sernet-samba-libs-4.0.7-4.el6.i686.rpm                                                    | 4.1 MB     00:15    
(6/8): sernet-samba-libsmbclient0-4.0.7-4.el6.i686.rpm                                           |  46 kB     00:00    
(7/8): sernet-samba-libwbclient0-4.0.7-4.el6.i686.rpm                                            |  41 kB     00:00    
(8/8): sernet-samba-winbind-4.0.7-4.el6.i686.rpm                                                 | 346 kB     00:00    
------------------------------------------------------------------------------------------------------------------------
Total                                                                                   234 kB/s |  10 MB     00:44    
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : sernet-samba-common-4.0.7-4.el6.i686                                                                 1/8
  Installing : sernet-samba-libwbclient0-4.0.7-4.el6.i686                                                           2/8
  Installing : sernet-samba-libs-4.0.7-4.el6.i686                                                                   3/8
  Installing : sernet-samba-libsmbclient0-4.0.7-4.el6.i686                                                          4/8
  Installing : sernet-samba-client-4.0.7-4.el6.i686                                                                 5/8
  Installing : sernet-samba-4.0.7-4.el6.i686                                                                        6/8
  Installing : sernet-samba-winbind-4.0.7-4.el6.i686                                                                7/8
  Installing : sernet-samba-ad-4.0.7-4.el6.i686                                                                     8/8
  Verifying  : sernet-samba-ad-4.0.7-4.el6.i686                                                                     1/8
  Verifying  : sernet-samba-4.0.7-4.el6.i686                                                                        2/8
  Verifying  : sernet-samba-client-4.0.7-4.el6.i686                                                                 3/8
  Verifying  : sernet-samba-libsmbclient0-4.0.7-4.el6.i686                                                          4/8
  Verifying  : sernet-samba-libs-4.0.7-4.el6.i686                                                                   5/8
  Verifying  : sernet-samba-winbind-4.0.7-4.el6.i686                                                                6/8
  Verifying  : sernet-samba-libwbclient0-4.0.7-4.el6.i686                                                           7/8
  Verifying  : sernet-samba-common-4.0.7-4.el6.i686                                                                 8/8

Installed:
  sernet-samba-ad.i686 0:4.0.7-4.el6                                                                                                    

Dependency Installed:
  sernet-samba.i686 0:4.0.7-4.el6          sernet-samba-client.i686 0:4.0.7-4.el6         sernet-samba-common.i686 0:4.0.7-4.el6      
  sernet-samba-libs.i686 0:4.0.7-4.el6     sernet-samba-libsmbclient0.i686 0:4.0.7-4.el6  sernet-samba-libwbclient0.i686 0:4.0.7-4.el6
  sernet-samba-winbind.i686 0:4.0.7-4.el6

Complete!
[root@centserv /]#


4. Устанавливаем основные параметры домена в интерактивном режиме (почему-то в большинстве инструкций рекомендуют всё, в том числе и пароль администратора домена, указывать в командной строке, но я не считаю это правильным, как минимум из-за того, что история введённых команд, а значит и вводимых паролей, сохраняется в файле ~/.bash_history):

[root@centserv /]# /usr/bin/samba-tool domain provision --use-rfc2307 --interactive
Realm [LOCALDOMAIN]: TEST.LAN
 Domain [TEST]:
 Server Role (dc, member, standalone) [dc]:
 DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
 DNS forwarder IP address (write 'none' to disable forwarding) [192.168.122.1]:
Administrator password:
Retype password:
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up secrets.ldb
Setting up the registry
Setting up the privileges database
Setting up idmap db
Setting up SAM db
Setting up sam.ldb partitions and settings
Setting up sam.ldb rootDSE
Pre-loading the Samba 4 and AD schema
Adding DomainDN: DC=test,DC=lan
Adding configuration container
Setting up sam.ldb schema
Setting up sam.ldb configuration data
Setting up display specifiers
Modifying display specifiers
Adding users container
Modifying users container
Adding computers container
Modifying computers container
Setting up sam.ldb data
Setting up well known security principals
Setting up sam.ldb users and groups
Setting up self join
Adding DNS accounts
Creating CN=MicrosoftDNS,CN=System,DC=test,DC=lan
Creating DomainDnsZones and ForestDnsZones partitions
Populating DomainDnsZones and ForestDnsZones partitions
Setting up sam.ldb rootDSE marking as synchronized
Fixing provision GUIDs
A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf
Setting up fake yp server settings
Once the above files are installed, your Samba4 server will be ready to use
Server Role:           active directory domain controller
Hostname:              centserv
NetBIOS Domain:        TEST
DNS Domain:            test.lan
DOMAIN SID:            S-1-5-21-1277046508-1680134345-2292655608

[root@centserv /]#

Здесь хочется сделать пару "лирических отступлений": во-первых, имя домена я написал заглавными буквами неспроста - для авторизации GSSAPI/KERBEROS применяется понятие Realm, которое в Linux указывается заглавными буквами, и чувствительно к регистру; во-вторых, важно правильно выбрать имя домена - если домен будет оканчиваться на .LOCAL, вас ждут некоторые (иногда весьма серьёзные) затруднения, ну и напоследок, для обеспечения более корректной настройки, рекомендую в файле /etc/sysconfig/network вписать правильное значение переменной HOSTNAME, если оно не было внесено установщиком Linux.
Создадим в /etc ссылку на файл настройки kerberos созданный на данном этапе командой ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
5. Устанавливаем режим запуска samba-server в "ad", для чего изменяем строчку в файле /etc/default/sernet-samba:

[root@centserv default]# cat /etc/default/sernet-samba | grep START_MODE
SAMBA_START_MODE="ad"
[root@centserv default]#


6. Запускаем сервер samba:

[root@centserv default]# service sernet-samba-ad start
Starting SAMBA AD services :                               [  OK  ]
[root@centserv default]# service sernet-samba-ad status
Checking for SAMBA AD services :                           [FAILED]

Данный сбой возникает не всегда - от чего зависит, доподлинно выяснить не удалось. В результате samba аварийно (и практически без диагностических сообщений на любом уровне логирования) выгружается из памяти сервера, даже не удалив pid-файлы, но при запуске из командной строки /usr/sbin/samba -D (как указано в официальном wiki), всё стартует...
*Судя по всему, сборщики пакета не предусмотрели полной автоматической настройки selinux, т.к. контекст старта демона и контекст запуска из командной строки отличаются; если имеет место внезапное закрытие процессов samba, настоятельно рекомендую изучить материалы по selinux (для RHEL/CentOS/Fedora) или apparmor (для Ubuntu/openSUSE)
**Уже после написания данной статьи обнаружил весьма подробную инструкцию, в том числе и про selinux.
7. Указываем в качестве DNS-сервера контроллер домена, для чего приводим файл /etc/resolv.conf примерно к такому виду:

search test.lan
nameserver 127.0.0.1

Если DNS настраивается скриптом автостарта интерфейса, вносим правку в него, т.к. в данном случае resolv.conf будет перезаписан при следующей перезагрузке.
8. Проверяем локально доступность сетевой папки netlogon:

[root@centserv]# smbclient //localhost/netlogon -U Administrator -c 'ls'
Enter Administrator's password:
Domain=[TEST] OS=[Unix] Server=[Samba 4.0.7-SerNet-RedHat-4.el6]
  .                                   D        0  Thu Jul 25 14:24:51 2013
  ..                                  D        0  Thu Jul 25 14:25:43 2013

                34409 blocks of size 524288. 28172 blocks available
[root@centserv]#

Минимальный требуемый результат получен!
На всякий случай, приведу ссылку на описание контекстов selinux для общих (share) ресурсов; мне не пригодилось, но вдруг...
Не лишним будет так же убедиться, что samba слушает запросы DNS и LDAP:

[root@centserv log]# netstat -l -n -p | grep ":53"
tcp        0      0 0.0.0.0:53                  0.0.0.0:*                   LISTEN      1936/samba          
udp        0      0 0.0.0.0:53                  0.0.0.0:*                               1936/samba          
[root@centserv log]# netstat -l -n -p | grep ":389"
tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      1927/samba          
udp        0      0 192.168.122.252:389         0.0.0.0:*                               1928/samba          
udp        0      0 0.0.0.0:389                 0.0.0.0:*                               1928/samba          
[root@centserv log]#

Ремарка:
Одной из причин неработоспособности samba могут быть проблемы с selinux - на одной из тестовых установок у меня не стартовала samba, а в /var/log/messages можно было увидеть примерно следующее:

Jul 26 16:15:43 centserv setroubleshoot: SELinux is preventing /usr/sbin/smbd from search access on the directory lock. For complete SELinux messages. run sealert -l f0758470-f0dc-4957-8e5a-8a277483a08f
Jul 26 16:15:43 centserv setroubleshoot: SELinux is preventing /usr/sbin/smbd from search access on the directory lock. For complete SELinux messages. run sealert -l f0758470-f0dc-4957-8e5a-8a277483a08f
Jul 26 16:15:43 centserv setroubleshoot: SELinux is preventing /usr/sbin/smbd from search access on the directory lock. For complete SELinux messages. run sealert -l f0758470-f0dc-4957-8e5a-8a277483a08f

Введя предложенные для диагностики команды, я увидел следующее:

[root@centserv var]# sealert -l f0758470-f0dc-4957-8e5a-8a277483a08f
SELinux is preventing /usr/sbin/smbd from search access on the каталог lock.

*****  Модуль samba_share (75.5 ) предлагает  ********************************

Если вы хотите предоставить smbd доступ search к lock directory
То необходимо изменить метку на «lock»
Сделать
# semanage fcontext -a -t samba_share_t 'lock'
# restorecon  -v 'lock'

*****  Модуль catchall_boolean (12.2 ) предлагает  ***************************

Если вы хотите выполнить следующее: allow samba to share any file/directory read only.
То установите переменную «samba_export_all_ro», чтобы сообщить об этом SELinux.
Сделать
setsebool -P samba_export_all_ro 1

*****  Модуль catchall_boolean (12.2 ) предлагает  ***************************

Если вы хотите выполнить следующее: allow samba to share any file/directory read/write.
То установите переменную «samba_export_all_rw», чтобы сообщить об этом SELinux.
Сделать
setsebool -P samba_export_all_rw 1

*****  Модуль catchall (1.97 ) предлагает  ***********************************

Если вы считаете, что smbd следует разрешить доступ search к lock directory по умолчанию.
То рекомендуется создать отчет об ошибке.
Чтобы разрешить доступ, можно создать локальный модуль политики.
Сделать
чтобы разрешить доступ, выполните:
# grep smbd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp

[root@centserv var]#

После нескольких итераций ввода предложенных команд, ругань прекратилась и всё заработало.
9. Для обеспечения синхронизации времени в нашем домене, понадобится ntp-сервер; установить и запустить демона ntp можно и с настройками по умолчанию, для чего потребуется ввести команды: yum install ntp, затем chkconfig ntpd on и наконец service start ntp
Дополнительно нелишне будет установить сервер CUPS (в документации на SAMBA4 говорится, что общий доступ к принтерам [на данный момент] не реализован, но если CUPS не установлен, в логах появляются многочисленные "жалобы" на его отсутствие).
10. Проверяем доступность сервисов с машин в сети - здесь стоит обратить внимание на наличие файрвола - в принципе, стоит объявить интерфейс, слушающий пользователей, доверенным, добавив в файл /etc/sysconfig/iptables примерно следующее:

-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

Здесь первая приведённая строка разрешает любые подключения на интерфейс eth0, а три последующие открывают доступ к ssh и DNS на всех интерфейсах. Такой блок резонно размещать сразу после строки -A INPUT -i lo -j ACCEPT, присутствующей по умолчанию.
Подробнее про IPTables: http://wiki.centos.org/HowTos/Network/IPTables
Проверку я выполнял с машины под управлением Windows (в большинстве случаев samba разворачивается как раз для управления windows-клиентами):

C:\Users\User>nslookup test.lan 192.168.122.252
Server:  UnKnown
Address:  192.168.122.252

Name:    test.lan
Address:  192.168.122.252

C:\Users\User>

Замечательно, DNS по крайней мере знает о существовании домена, теперь перенацеливаем DNS клиента на наш сервер и регистрируем машину в домене. Если всё сделано правильно, машина будет введена в домен и дальнейшее администрирование домена можно осуществлять из-под учётной записи Administrator, созданной на шаге 4, не особо задумываясь над тем, что контроллер домена "не очень" Windows Server.
Если есть какие-то проблемы, скорее всего опять виноват SELinux - читаем /var/log/messages и /var/log/samba/log.*.
LDAP-сервер samba по умолчанию отвергает анонимный доступ, так что для администрирования следует подключаться с параметрами:

Сервер LDAP: centserv.test.lan // можно по IP
DN Администратора: cn=Administrator,cn=Users,dc=test,dc=lan
Пароль сервера LDAP: /пароль сервера/

Для служебного доступа (например, для сопоставления расширенных атрибутов в приложениях с kerberos-авторизацией, об этом планирую написать отдельную статью) резонно использовать отдельно созданную служебную учётную запись.

После ввода windows-машины в домен, провёл тест dcdiag /s:centserv.test.lan и получил несколько ошибок, часть из которых были ожидаемыми и не вызвали вопросов, а часть - вполне поправимыми, например ругань типа "ForestDnsZones: CheckSDRefDom: В разделе каталога приложений DC=ForestDnsZones,DC=test,DC=lan отсутствует домен ссылок дескрипторов безопасности. Администратор должен задать для атрибута msDS-SD-Reference-Domain объекта перекрестной ссылки CN=71dd3587-5fa6-5a71-aef4-a2a26fde964a,CN=Partitions,CN=Configuration,DC=test,DC=lan значение DN домена" или то же самое про DomainDnsZones, лечится ручным внесением значения DN домена (DC=test,DC=lan) в указанный параметр (до правки он пустой) с помощью любого ldap-браузера, например:
Ручной ввод параметра
Очень похоже правятся и другие пустые ссылки - для жалобы на пустой serverReferenceBL вносим в соответствующей ветке значение параметра serverReference равное CN=NTDS Settings,CN=CENTSERV,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=lan (естественно, в соответствии со своей структурой домена!!!)...
Ну а проверку windows-сервисов, linux-сервер с установленным samba вполне ожидаемо не пройдёт, сколько ни бейся. Примерно так же я отнёсся и к ошибкам проверки FRS, т.к. вроде бы поддержку FRS в samba ещё не реализовали...

Comments