Monday, September 25th, 2017

KDE и smb, шары по-русски в win2003 домене

Published on Март 30, 2009 by   ·   Комментариев нет

1. Samba, Kerberos, FreeBSD и win2003 домен

В первую очередь надо настроить сеть, то есть имя машины DNS, шлюз, сетевые
интерфейсы, машины сети и контроллеры доменов должны нормально
пинговаться по именам, просто один раз, я забыл настроить DNS и два дня
ломал себе голову почему я не могу войти в домен.

Для того, чтобы FreeBSD сделать членом домена, вначале надо настроить
kerberos, вот — пример моего файла:
/etc/krb5.conf

                [appdefaults]
                proxiable = true
                ticket_lifetime = 24h
                debug = false
                ticket_lifetime = 36000
                renew_lifetime = 36000
                forwardable = true
                krb4_convert = false    # отключаем совместимость с 4 керебросом

                [realms]
                DOMAIN.LOCAL = {
                        # где server.domain.local ваш контроллер домена
                        kdc = tcp/server.domain.local:88
                        # где server.domain.local ваш контроллер домена
                        admin_server = server.domain.local
                        # домен по умолчанию
                        default_domain = domain.local
                }

                [domain_realm]
                .domain.local = DOMAIN.LOCAL
                domain.local = DOMAIN.LOCAL

                [kdc]
                enable-kerberos4 = false  # отключаем 4 kerberos

                [logging]
                default = FILE:/var/log/kerberos/krb5libs.log
                kdc = FILE:/var/log/kerberos/krb5kdc.log
                admin_server = FILE:/var/log/kerberos/kadmind.log

Затем, надо поправить файл nsswitch.conf, чтобы система увидела доменные
учетные записи, групы и компьютеры
/etc/nsswitch.conf

                group: files winbind
                hosts: files dns winbind
                networks: files dns winbind
                passwd: files winbind
                shadow: files winbind
                shells: files winbind
                services: files
                protocols: files
                rpc: files

Теперь, надо заставить FreeBSD авторизировать доменных пользователей так
прозрачно, как и локальных, для этого надо отредактировать содержимое
каталога /etc/pam.d/. Я, просто расскоментировал все строчки содержащие
pam_krb5.so.

Опять же, по желанию, можно сделать автосоздание профиля для доменных
пользователей при первом входе в систему, для этого надо установить порт
/usr/ports/security/pam_mkhomedir

и поправить содержимое каталога /etc/pam.d, добавив в начало секций
session следующую строчку:

  session  required  pam_mkhomedir.so  skel=/usr/share/skel

skel — это путь к дефаултному профилю

Процесс установки и настройки samba для включения в домен описывать
не буду т.к. на сайте lissyara.su
его достаточно хорошо описали, приведу только пример своего кофига:
/usr/local/etc/smb.conf

                [global]
                workgroup = DOMAIN
                realm = DOMAIN.LOCAL
                server string = Kotlyarov Nikolay HOME PC
                security = ADS
                hosts allow = 192.168.0. 192.168.1. 10. 127.
                #   load printers = yes
                #   printcap name = /etc/printcap
                #   printcap name = lpstat
                #   printing = cups
                #   guest account = pcguest
                log file = /var/log/samba/log.%m
                max log size = 500
                password server = exchange
                #   passdb backend = tdbsam
                #   include = /usr/local/etc/smb.conf.%m
                socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
                #socket options = SO_RCVBUF=8192 SO_SNDBUF=8192
                #   interfaces = 192.168.0.44
                local master = no
                os level = 33
                #domain master = yes
                #preferred master = yes
                domain master = no
                preferred master = no
                #domain logons = yes
                #   logon script = %m.bat
                #   logon script = %U.bat
                #   logon path = \\%L\Profiles\%U
                #   wins support = yes
                #   wins server = w.x.y.z
                #   wins proxy = yes
                dns proxy = no
                dos charset = 866
                #unix charset = utf-8
                unix charset = koi8-r
                display charset = koi8-r
                preserve case = Yes
                store dos attributes = yes
                map hidden = no
                map system = no
                map archive = no
                nt acl support = yes
                inherit acls = yes
                map acl inherit = yes
                #   add user script = /usr/sbin/useradd %u
                #   add group script = /usr/sbin/groupadd %g
                #   add machine script =
                #/usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
                #   delete user script = /usr/sbin/userdel %u
                #   delete user from group script = /usr/sbin/deluser %u %g
                #   delete group script = /usr/sbin/groupdel %g
                encrypt passwords = Yes
                hostname lookups = yes
                winbind uid = 10000-50000
                winbind gid = 10000-50000
                template shell = /usr/local/bin/bash
                template homedir = /home/%D/%U
                winbind use default domain = yes
                winbind enum groups = yes
                winbind enum users = yes
                winbind offline logon = yes
                winbind refresh tickets = yes
                allow trusted domains = no
                client schannel = No
                restrict anonymous = no
                ldap ssl = No
                map to guest = Bad User
                guest ok = yes
                case sensitive = No
                acl compatibility = win2k

                [homes]
                comment = Home Directories
                browseable = no
                writable = yes

                # [netlogon]
                #   comment = Network Logon Service
                #   path = /usr/local/samba/lib/netlogon
                #   guest ok = yes
                #   writable = no
     <div style="display: none"></div>           #   share modes = no

                #[Profiles]
                #    path = /usr/local/samba/profiles
                #    browseable = no
                #    guest ok = yes

                [printers]
                comment = All Printers
                path = /var/spool/samba
                browseable = no
                guest ok = no
                writable = no
                printable = yes

                #[tmp]
                #   comment = Temporary file space
                #   path = /tmp
                #   read only = no
                #   public = yes

                #[public]
                #   comment = Public Stuff
                #   path = /home/samba
                #   public = yes
                #   writable = yes
                #   printable = no
                #   write list = @staff

                #[fredsprn]
                #   comment = Fred&#039;s Printer
                #   valid users = fred
                #   path = /homes/fred
                #   printer = freds_printer
                #   public = no#   comment = Fred&#039;s Printer
                #   valid users = fred
                #   path = /homes/fred
                #   printer = freds_printer
                #   public = no
                #   writable = no
                #   printable = yes

                #[fredsdir]
                #   comment = Fred&#039;s Service
                #   path = /usr/somewhere/private
                #   valid users = fred
                #   public = no
                #   writable = yes
                #   printable = no

                #[pchome]
                #  comment = PC Directories
                #  path = /usr/pc/%m
                #  public = no
                #  writable = yes

                #[public]
                #   path = /usr/somewhere/else/public
                #   public = yes
                #   only guest = yes
                #   writable = yes
                #   printable = no

                #[myshare]
                #   comment = Mary&#039;s and Fred&#039;s stuff
                #   path = /usr/somewhere/shared
                #   valid users = mary fred
                #   public = no
                #   writable = yes
                #   printable = no
                #   create mask = 0765

                [Share]
                unix charset = koi8-r
                valid users = @"%D\Domain Users" @"%D\Domain Admins"
                read list = @"%D\Domain Users" @"%D\Domain Admins"
                write list = %D\kotlyarov
                admin users = %D\kotlyarov
                read only = yes
                browseable = yes
                path = /Share
                comment = Моя шара
                #nt acl support = yes
                #acl group control = yes
                #acl check permissions = True
                #acl map full control = True
                #map acl inherit = Yes
                #inherit acls = yes
                #inherit owner = yes
                #inherit permissions = yes
                #   writable = no
                #   printable = yes

для автоматически синхронизации времени с доменом добавьте в

        cat >> /etc/rc.conf
        ntpdate_enable="YES"
        ntpdate_flags="<Имя вашего домена>"
        ^C

после настройки самбы можно включить компьютер в домен:
синхронизируем время с DC

        ntpdate server.domain.local

(где server.domain.local — имя вашего DC),
получаем билет kerberos

     kinit admin

(где admin это доменная учетка админа),
и собственно заводим машину в домен

    net ads join -Uadmin%password

(admin%password — доменная учетная запись с правами администратора и пароль)

Все готово, теперь перезапускам самбу и можно входить в систему под
доменными учетными записями с получением всех доменных прав (авторизация по
kerberos).

2. Доменные шары по-русски, хождение по SMB шарам в konqueror'е

Чтобы не было проблем с русскими именами в названиях папок файлов и
шар, надо поправить следующие значения в файле
/usr/local/etc/smb.conf

        dos charset = 866
        unix charset = koi8-r
        display charset = koi8-r

Если вы решите перевести FreeBSD на юникод, то вместо koi8-r поставьте utf-8

Очень долго бился с тем что konqueror не хочет нормально отображать
русские имена в smb:// при локальной кодировке koi8-r, решил эту
проблему следующим образом:

после долгого блуждания по исходникам KDE, обнаружил следующие вещи:

1. внутреннее представление данных идет в кодировке utf-8 НЕЗАВИСИМО от
того на какую кодировку локализированна система

2. кодировка smb:// в konkueror таинственным образом зависит от
параметров русификации самбы

3. чтобы смб шары в konkueror отображались по русски (вместо вопросиков
и квадратиков) надо либо настроить систему на utf-8 локаль (не лучший
вариант, т.к. фришная консоль utf не поддерживает), либо давать кедам
данные в кодировке utf-8, то есть поправить русификацию самбы вот так:

        dos charset = 866
        unix charset = utf-8
        display charset = koi8-r

и вуаля оно заработало, вот только появилась другая проблема, если на
машине с FreeBSD есть SMB шары то теперь на них слетает кодировка, после
нескольких экспериментов обнаружил, что KDE напрямую читает конфиг самбы,
и придумал следующее:

создаем файл
~/.smb/smb.conf
со следующим содержимым

  unix charset = utf-8

например вот так

      mkdir ~/.smb; echo "unix charset = utf-8" > ~/.smb/smb.conf

P.S. не забудьте добавить этот файл в /usr/local/share/skel, для того
чтобы вновь создаваемые профили имели этот файл по умолчанию

zp8497586rq





































Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.

Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]