Документация по ОС FreeBSD Суббота, 20.04.2024, 14:52
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Samba

SAMBA + правка расширенных пермишенов (ACL) через виндовые галочки [2008]
Возникла необходимость сделать в филиалы файлопомойки не на винде. Альтернатива известна - samba. Однако, было требование - на местах есть админы, и файлопомойкой должны рулить они. Галочками, из-под винды. Ибо нехорошо травмировать несчастных виндовых админов вещщами типа getfacl/setfacl. Им и так тяжело :).
   На этом моменте затруднений возникло немного (собственно, на галочках - тока одно, ибо в мане по smb.conf всё хорошо написано), одно из самых главных - я не мог воткнуть машину в домен, но к делу оно отношения не имеет.
   Итак. Задача - самба с галками, в домене. Поехали:
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 Для тех кто в танке - до кучи можно выбрать фряху из под винды, через управление компьютером -> подключиться к другому. И точно как с виндой рулить подключенными юзерами и даже рестартовать сервисы.



Источник: http://www.lissyara.su/?id=1460
Категория: Samba | Добавил: oleg (29.07.2008) | Автор: lissyara
Просмотров: 1851 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024