lissyara$ cd /usr/ports/net/samba3/ lissyara$ make install clean
Лезет синее окошко, где выбираем такие опции:
+--------------------------------------------------------------------+ | Options for samba 3.0.25a,1 | | +----------------------------------------------------------------+ | | | [X] LDAP With LDAP support | | | | [X] ADS With Active Directory support | | | | [X] CUPS With CUPS printing support | | | | [X] WINBIND With WinBIND support | | | | [X] ACL_SUPPORT With ACL support | | | | [ ] FAM_SUPPORT With File Alteration Monitor | | | | [ ] SYSLOG With Syslog support | | | | [ ] QUOTAS With Disk quota support | | | | [X] UTMP With UTMP accounting support | | | | [ ] MSDFS With MSDFS support | | | | [ ] PAM_SMBPASS With PAM authentication vs passdb backends | | | | [ ] CLUSTER With experimental cluster support | | | | [ ] DNSUPDATE With dynamic DNS update | | | | [ ] EXP_MODULES With experimental modules | | | | [X] POPT With system-wide POPT library | | |-+----------------------------------------------------------------+-| | [ OK ] Cancel | +--------------------------------------------------------------------+
Собственно, у вас они могут и не все быть такие, однако, из необходимых - это winbindd, поддержка ACL и AD. ПОсле инсталляции, идём ставить керберос:
lissyara$ cd /usr/ports/security/heimdal lissyara$ make install clean
Тут тоже имеем голубенькое окошко:
+--------------------------------------------------------------------+ | Options for heimdal 0.7.2_2 | | +----------------------------------------------------------------+ | | | [ ] LDAP Use OpenLDAP as the KDC backend | | | | [ ] CRACKLIB Use CrackLib for password quality checking | | | | [ ] X11 Build X11 utilies | | | | | | | | | | | | | | | | | | | | | | |-+----------------------------------------------------------------+-| | [ OK ] Cancel | +--------------------------------------------------------------------+
В нём я ничё не выбрал - у меня будет LDAP из AD, проверку паролей выполняют политики домена, а иксов на сервере отродясь не держал. После инсталляции, рисуем конфиги:/etc/krb5.conf
# [libdefaults] default_realm = MY-DOMAIN.LOCAL [realms] MY-DOMAIN.LOCAL = { kdc = MY-DOMAIN.LOCAL admin_server = MY-DOMAIN.LOCAL } [domain_realm] .my-domain.local = MY-DOMAIN.LOCAL [logging] kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmin.log default = FILE:/var/log/krb5lib.log
Комментарий к конфигу кербероса - у меня, с этой машины, домен пингуется и резольвится по имени:
lissyara$ ping my-domain.local PING my-domain.local (192.168.0.103): 56 data bytes 64 bytes from 192.168.0.103: icmp_seq=0 ttl=126 time=0.311 ms 64 bytes from 192.168.0.103: icmp_seq=1 ttl=126 time=0.398 ms 64 bytes from 192.168.0.103: icmp_seq=2 ttl=126 time=0.391 ms 64 bytes from 192.168.0.103: icmp_seq=3 ttl=126 time=0.470 ms ^C --- my-domain.local ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.311/0.393/0.470/0.056 ms lissyara$ host my-domain.local my-domain.local has address 192.168.0.42 my-domain.local has address 192.168.0.43 my-domain.local has address 192.168.0.103 my-domain.local mail is handled by 10 exchserv.my-domain.local. lissyara$
Поэтому я указал имя домена - контроллеров три, и в случае падения какого-то - автоматически подцепится другой./etc/hosts
::1 localhost.my-domain.local localhost 127.0.0.1 localhost.my-domain.local localhost 192.168.31.10 smbsrv.my-domain.local smbsrv 192.168.31.10 smbsrv.my-domain.local.
Надо заметить, что эти данные соответствуют имени хоста:
lissyara$ hostname smbsrv.my-domain.local lissyara$
/usr/local/etc/smb.conf
# SAMBA [global] # Рабочая группа workgroup = MY-DOMAIN # тип безопасности - Актив Директори security = ADS # Сервер паролей - тут указывается контроллер домена # но у меня их несколько - поэтому я указал имя домена # благо оно резольвится в их имена. password server = MY-DOMAIN.LOCAL # область kerberos realm = MY-DOMAIN.LOCAL # имя машины в "сетевом окружении" netbios name = SMBSRV # комментарий к имени машины server string = SAMBA shares server # уровень логгирования - 0-10 - но никогда не оставляейте # в 10 - очень быстро засрёт раздел с логами # log level = 10 # файл логов - подробности о значении переменных # есть в man smb.conf log file = /var/log/samba/%m.%U.log # максимальный размер файла лога (kB) max log size = 50000 # диапазон отмапленых winbindd`ом uid пользователей idmap uid = 10000-20000 # диапазон отмапленых winbindd`ом gid пользователей idmap gid = 10000-20000 # использовать дефолтовый домен (имя юзера можно # указывать без домена) winbind use default domain = yes # кодировка выводимых сообщений display charset = koi8-r # кодировка в которой хранить на диске unix charset = koi8-r # в какой кодировке общаться с досовскими клиентами dos charset = 866 # for mail template homedir = /shares/mail/%U [printers] comment = All Printers path = /var/spool/samba printable = Yes # browseable = No use client driver = yes public = yes # шара 'data' [data] # каммент к шаре comment = Shares for Documents # путь к шаре на диске path = /shares/data # список тех, кому разрешён доступ на чтение read list = "@MY-DOMAIN\Domain Users" # список тех, кому разрешён доступ на запись write list = "@MY-DOMAIN\Domain Users" # список тех, кому разрешёно ставить те самые галки, # ради которых всё затевалось.
# инттересная особенность, в которую # до конца не вкурил - в одинаковых конфигурациях,
# иногда можно # указывать без домена, а иногда домен необходим. # Все операции этих пользователей выполняются от рута! admin users = "@MY-DOMAIN\Admin Users", MY-DOMAIN\lissyara # ДОступ к шаре тока на чтение read only = No # маска для создаваемых файлов create mask = 0660 # маска для создаваемых директорий directory mask = 0770 # наследовать владельца (вышестоящей директории) inherit owner = yes # наследовать ACL inherit acls = yes # наследовать права inherit permissions = yes # позвоялет редактору прав из винды корректно обрабатывать # наследуемые права map acl inherit = yes # блокировки - иногда бывают грабли без этого пункта locking = no
/etc/nsswitch.conf
group: files winbind passwd: files winbind group_compat: nis passwd_compat: nis hosts: files dns networks: files shells: files
После чего, получаем билет от кербероса (в этом и следующем действии используется доменный пользователь. Иногда, его приходится указывать как lissyara@MY-DOMAIN.LOCAL - иначе не прокатывает):
lissyara$ kinit lissyara lissyara@MY-DOMAIN.LOCAL's Password: kinit: NOTICE: ticket renewable lifetime is 1 week lissyara$
И вводим машину в домен:
lissyara$ net join -U lissyara lissyara's password: Using short domain name -- MY-DOMAIN Joined 'SMBSRV' to realm 'MY-DOMAIN.LOCAL' lissyara$
Можно добавлять строчку в /etc/rc.conf:
samba_enable="YES"
и запускать самбу:
lissyara$ /usr/local/etc/rc.d/samba start Removing stale Samba tdb files: . done Starting nmbd. Starting smbd. Starting winbindd. lissyara$
Для вящей красоты, можно сделать так:
lissyara$ id administrator uid=10001(administrator) gid=10002(domain users)
groups=10002(domain users) lissyara$ chown Administrator:"Domain Users" /shares/data lissyara$ ll /shares | grep data drwxr-xr-x 4 administrator domain users 512 15 июн 12:31 data lissyara$
Вот, пожалуй и всё. Галочки прекрасно ставятся, поведение как у винды... Тока денег платить не надо, да активации не просит :)P.S. Где-нить в процессе, до запуска самбы, не забываем включить ACL на самой файловой системе, где у нас шары, что-то типа такого:
lissyara$ umount /shares lissyara$ tunefs -a enable /shares tunefs: ACLs set lissyara$ mount /shares lissyara$ mount | grep acl /dev/ad0s1g on /shares (ufs, local, soft-updates, acls) lissyara$
P.S.2 Владельцы контроллера домена с русской виндой, скорей всего, будут летать как фанера над парижем - я слабо представляю в какой кодировке надо подсовывать юзеров в таком случае :)P.S.3 Для тех кто в танке - до кучи можно выбрать фряху из под винды, через управление компьютером -> подключиться к другому. И точно как с виндой рулить подключенными юзерами и даже рестартовать сервисы.