Crmgo Блог

ман по самбе

ман по самбе

Установка Samba Samba 3.0, в отличие от более ранних версий Samba, имеет возможность работать в сетях Wndows, работающих в режиме Active Directory (или Windows 2000 native mode). Если требуется эта функциональность, следует установить пакет samba3-3.0 вместо samba-2.2 . Active Directory…

ман по самбе
Установка Samba

Samba 3.0, в отличие от более ранних версий Samba, имеет возможность работать в сетях Wndows, работающих в режиме Active Directory (или Windows 2000 native mode). Если требуется эта функциональность, следует установить пакет samba3-3.0 вместо samba-2.2.

Active Directory имеет другую схему именования доменов, компьютеров и пользователей, основанную на DNS. Допустим, существует сеть с именем my.firm.com и компьютерами host1.my.firm.com,host2.my.firm.com, host3.my.firm.com; тогда домен Active Directory будет называться my.firm.com, а пользователи Active Directory будут иметь имена вида user@my.firm.com.

Настройка

/etc/krb5.conf должен содержать по крайней мере следующие строки:

[realms]

MY.FIRM.COM = {
kdc = your.kerberos.server
}

где MY.FIRM.COM - имя домена (или “царства”, в терминологии Kerberos; задается обязательно в верхнем регистре), а your.kerberos.server — имя или IP-адрес KDC (Kerberos Domain Controller), аналог PDC (Primary Domain Controller) в доменах Windows NT — например, server.my.firm.com или 192.168.117.11.

Правильность указания параметров можно проверить, выполнив команду (замените имя пользователя на актуальное — например, administrator@MY.FIRM.COM):

# kinit username@REALM

и убедившись, что пароль был принят сервером. REALM всегда задается в верхнем регистре.

Вы также должны убедиться, что возможно получить имя KDC по его IP адресу (так называемый Reverse DNS lookup). Имя KDC должно либо совпадать с NetBIOS-именем компьютера (имя машины в сети Windows без указания домена) либо состоять из NetBIOS-имени и имени домена. Если получить имя KDC по адресу невозможно, вы получите ошибку “local error” при попытке войти в домен.

Если ваш DNS не поддерживает Reverse lookup либо KDC не зарегистрирован в DNS, вы можете указать соответствие IP-адреса и имени в /etc/hosts.

Редактирование /etc/samba/smb.conf

Для работы в Active Directory smb.conf должен содержать следующие параметры:

[global]

# Задает Kerberos realm, обычно совпадает с именем домена в
# верхнем регистре, например realm = MY.FIRM.COM
realm = <REALM>

# Это обычно часть реалма до первой точки, например
# workgroup = MY
workgroup = <WORKGROUP>

# Тип домена - Active Directory.
security = ADS

# В случае Active Directory пароли всегда шифруются.
encrypt passwords = true

# Обычно этот параметр указывать не обязательно, т.к. Samba сама
# определяет адрес KDC, если в сети есть WINS-сервер и он указан
# в smb.conf
ads server = <your.kerberos.server>

 

Регистрация компьютера в Active Directory домене

Убедитесь что Samba не запущена. Если запущена, ее нужно остановить:

# service smb stop; service winbind stop

 

Чтобы включить компьютер в домен, выполните команду:

# net ads join -U administrator

где administrator — имя пользователя домена, имеющего право создавать новые учетные записи.

Если не было выдано сообщение об ошибке, то машина успешно зарегистрирована в домене — иначе проверьте правильность задания параметров в /etc/samba/smb.conf и /etc/krb5.conf. Убедитесь, что пользователь, указанный после -U в net ads join, имеет необходимые права на создание новых учетных записей.

Теперь можно запустить необходимые службы:

# service smb start; service winbind start

 

Проверка правильной работы в Active Directory

Для работы с компьютерами, зарегистрированными в Active Directory, не требуется указывать имя пользователя и пароль. Попробуйте выполнить команду:

$ smbclient -k -L <имя компьютера в домене>

 

Вы должны получить список доступных ресурсов, при этом smbclient не должен запрашивать имя пользователя и пароль.

Чтобы проверить, что доступ к ресурсам вашей машины возможен с других машин домена, вы можете попробовать выполнить все ту же команду:

$ smbclient -k -L <имя вашего компьютера в домене>

и получить список доступных ресурсов. Можно также попробовать открыть какой-нибудь ресурс на вышей машине с Windows-машины, входящей в домен. В любом случае имя пользователя и пароль запрашиваться не должны.

Некоторые особенности работы в Active Directory

В отличие от доменов Windows NT, авторизация в Active Directory производится не по имени и паролю, а c помощью билетов протокола Kerberos. Из-за этого работа с smbclient может поначалу показаться необычной.

Во-первых, при вызове smbclient нужно указывать опцию -k. Во-вторых, билеты Kerberos даются на определенное время (обычно на сутки, но это зависит от настроек сервера). Поэтому их нужно периодически обновлять с помощью команды kinit:

# kinit username@REALM

где username — ваше имя в Actiev Directory домене REALM.

Так что если smbclient вдруг перестает подключаться к доменным ресурсам, попробуйте обновить билет — скорее всего, дело именно в этом.

статья взята от сюда
Где то в глубине этой структуры есть директория share к которой надо дать доступ разным пользователям (например user) через samba. При этом группу менять нельзя и user этой группе не принадлежит.

При создании директорий в папке share они должны иметь права 770, файлы в них 660 и быть также доступны для user.

Используем acl.

Делаем chmod g+s share ... чтобы создаваемые файлы и папки имели группу project
Делаем setfacl -m u:user:rx для все директорий до share  ... для того, чтобы user мог дойти до этой директории
Делаем setfacl -m u:user:rwx для директории share и всех ее поддиректорий... для того, чтобы пользователь мог что-то создавать в этой директории
Делаем setfacl -m u:user:rw для всех подфайлов директории share

В samba пишем

directory mask = 770
create mask = 660
inherit acls = yes
inherit permissions = yes # без этого предыдущая строка не работает!!!
map acl inherit = yes
map archive = no
map system = no
map hidden = no

После пробуем создать папку и файл в директории share через samba из под user.

Получаем
Папку с правами 770 и владельцем user:project (все как и надо)
и Файл с правами 670 и владельцем user:project

Примечание: материал мог быть создан с помощью ИИ и затем отредактирован человеком. Ответственный: Dmytro Lomaka, Kaltenkirchen.