From: Kotlyarov Nikolay <nikll@rambler.ru.>
Newsgroups: email
Date: Mon, 23 Apr 2008 17:02:14 +0000 (UTC)
Subject: KDE и smb, шары по-русски в win2003 домене
1. Samba, Kerberos, FreeBSD и win2003 домен
В первую очередь надо настроить сеть, то есть имя машины DNS, шлюз, сетевые
интерфейсы, машины сети и контроллеры доменов должны нормально
пинговаться по именам, просто один раз, я забыл настроить DNS и два дня
ломал себе голову почему я не могу войти в домен.
Для того, чтобы FreeBSD сделать членом домена, вначале надо настроить
kerberos, вот - пример моего файла:
/etc/krb5.conf
Теперь, надо заставить FreeBSD авторизировать доменных пользователей так
прозрачно, как и локальных, для этого надо отредактировать содержимое
каталога /etc/pam.d/. Я, просто расскоментировал все строчки содержащие
pam_krb5.so.
Опять же, по желанию, можно сделать автосоздание профиля для доменных
пользователей при первом входе в систему, для этого надо установить порт
/usr/ports/security/pam_mkhomedir
и поправить содержимое каталога /etc/pam.d, добавив в начало секций
session следующую строчку:
Процесс установки и настройки 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 = \%LProfiles%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
# 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's Printer
# valid users = fred
# path = /homes/fred
# printer = freds_printer
# public = no# comment = Fred's Printer
# valid users = fred
# path = /homes/fred
# printer = freds_printer
# public = no
# writable = no
# printable = yes
#[fredsdir]
# comment = Fred'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's and Fred'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 = @"%DDomain Users" @"%DDomain Admins"
read list = @"%DDomain Users" @"%DDomain Admins"
write list = %Dkotlyarov
admin users = %Dkotlyarov
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
для автоматически синхронизации времени с доменом добавьте в
после настройки самбы можно включить компьютер в домен:
синхронизируем время с 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
Если вы решите перевести FreeBSD на юникод, то вместо koi8-r поставьте utf-8
Очень долго бился с тем что konqueror не хочет нормально отображать
русские имена в smb:// при локальной кодировке koi8-r, решил эту
проблему следующим образом:
после долгого блуждания по исходникам KDE, обнаружил следующие вещи:
1. внутреннее представление данных идет в кодировке utf-8 НЕЗАВИСИМО от
того на какую кодировку локализированна система
2. кодировка smb:// в konkueror таинственным образом зависит от
параметров русификации самбы
3. чтобы смб шары в konkueror отображались по русски (вместо вопросиков
и квадратиков) надо либо настроить систему на utf-8 локаль (не лучший
вариант, т.к. фришная консоль utf не поддерживает), либо давать кедам
данные в кодировке utf-8, то есть поправить русификацию самбы вот так:
и вуаля оно заработало, вот только появилась другая проблема, если на
машине с FreeBSD есть SMB шары то теперь на них слетает кодировка, после
нескольких экспериментов обнаружил, что KDE напрямую читает конфиг самбы,
и придумал следующее:
создаем файл
~/.smb/smb.conf
со следующим содержимым