SAMBA PDC - установка, настройка, управление (Slackware)

()

  1. Введение
  2. Установка
  3. Настройка
  4. Создание групп
  5. Ввод в домен
  6. Добавление пользователей
  7. Проверка
  8. Список комманд для управления доменом
    1. Управление
    2. Информация
  9. Установка принтера

Введение

В статье рассматривается создание и настройка первичного контроллера Windows домена с несколькими расшаренными ресурсами и общим принтером. Администрирование домена будет осуществляться удаленно, через утилиту net. Приведенные ниже действия выполнялись на Slackware Linux 11, только с использованием пакетов входящих в поставку дистрибутива. С небольшими отличиями, это руководство может быть использовано на любом другом дистрибутиве.

Список ресурсов будущего сервера:

  • docs - документация
  • distrib - дистрибутивы ПО
  • incoming - каталог для загрузки файлов на сервер обычными пользователями
  • clients - информация о клиентах (доступ только для определенной группы)

Пользователи принадлежащие группе администраторов будут имеют полный доступ к содержимому этих ресурсов. Обычные пользователи смогут только читать опубликованные на сервере файлы. Ресурс "clients" будет доступен только для пользователей которые входят в группу "Менеджеры". При входе в домен, всем пользователям будут корретироваться часы и монтироваться сетевые диски. Для обычных пользователей набор монтируемых ресурсов будет отличаться от набора для менеджеров. В нашем примере у них будет отстуствовать сетевой диск clients.

Установка

Устанавливаем:

# installpkg samba-3.0.23c-i486-1.tgz

Делаем загрузочный скрипт исполняемым

# chmod a+x /etc/rc.d/rc.samba

Создаем файл с конфигурацией

# cp /etc/samba/smb.conf-sample /etc/samba/smb.conf

Наполняем следующим содержимым:

[global]
workgroup = ASU
netbios name = SERVER server string = ASU SERVER passdb backend = tdbsam log level = 1 log file = /var/log/samba/workstations/%m.log max log size = 50 add user script = /usr/sbin/useradd -m %u delete user script = /usr/sbin/userdel -r %u add group script = /usr/sbin/groupadd %g delete group script = /usr/sbin/groupdel %g add user to group script = /usr/bin/gpasswd -a %u %g delete user from group script = /usr/bin/gpasswd -d %u %g add machine script = /usr/sbin/useradd -g nt_workstations -s /bin/false -d /dev/null %u set primary group script = /usr/sbin/usermod -g %g %u logon path = logon drive = logon home = logon script = %G.bat domain logons = yes socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 hosts allow = 192.168. 127. time server = yes preferred master = yes domain master = yes local master = yes os level = 255 unix charset = utf8 dos charset = cp1251 display charset = cp1251 load printers = yes printing = cups printcap name = cups wins support = yes [printers] comment = All printers path = /var/spool/samba public = yes printable = yes guest ok = yes [homes] comment = Home Directories browseable = no writable = yes [netlogon] path = /srv/samba/netlogon read only = yes browseable = no # Расскоментируйте строку ниже, если хотите чтобы пользователи # на своих ПК были членами группы "Опытные пользователи" (сработает после 2-го входа пользователя в домен) #root preexec = net rpc group addmem "Опытные пользователи" %u -S %m -Ubambucha%123 & [incoming] path = /srv/samba/incoming writable = yes create mask = 0775 directory mask = 0775 force group = users [docs] path = /srv/samba/docs write list = @nt_admins [distrib] path = /srv/samba/distrib write list = @nt_admins [clients] path = /srv/samba/clients writable = yes valid users = @managers

Создадим указанные директории

# mkdir -p /srv/samba/{netlogon,incoming,docs,distrib,clients}

Настройка

Для директорий incoming и clients выставим другие права. Все пользователи домена должны иметь права на чтение/запись в директорию incoming. Для этого сменим группу этой директории на users и дадим членам этой группы права на запись.

# chgrp -R users /srv/samba/incoming
# chmod -R g+w /srv/samba/incoming

В директорию clients должны иметь доступ только менеджеры. Ограничение на доступ выставлены в конфигурационном файле выше (строка valid users = @managers). Все члены этой группы также должны иметь права на запись. Для этого поступим так же как и с incoming. Сменим группу на nt_managers и дадим ей права на запись.

# chgrp -R nt_managers /srv/samba/clients
# chmod -R g+w /srv/samba/clients

Для того чтобы в директориях incoming и clients пользователи могли править файлы и каталоги которые были созданы другими - в конфигурационном файле добавлены строки с указанием маски для создаваемых файлов и каталогов (create mask = 0775, directory mask = 0775).

Создадим samba пользователя root, пароль 123

# smbpasswd -a root

Проверим чтобы в конфигурационном файле небыло ошибок

# testparm

Запускаем

# /etc/rc.d/rc.samba start

Проверим что SAMBA успешно стартовал:

# ps ax | grep mbd
 4373 pts/4    S+     0:00 /bin/bash -c (ps ax | grep mbd) >/tmp/v647731/0 2>&1
 4374 pts/4    S+     0:00 /bin/bash -c (ps ax | grep mbd) >/tmp/v647731/0 2>&1
 4376 pts/4    R+     0:00 grep mbd

Пробуем подключиться и посмотреть на доступные сетевые ресурсы

# smbclient -L localhost -U root%123

Создание групп

Переходим к созданию групп пользователей

Cоздадим необходимые linux группы чтобы потом сопоставить их с аналогичными группами Windows. В Windows по умолчанию прописаны следующие основные группы:

  1. Guests
  2. Users
  3. Administrators

Windows группе Guests можно сопоставить Linux группу nobody, Users - users, для Administrators - nt_admins. Заодно создадим отдельную группу для менеджеров nt_manager.

Создаем Linux группы:

# groupadd nt_workstations
# groupadd nt_admins
# groupadd nt_managers

Каждой Windows группе должна быть сопоставлена соответствующая Linux группа. Изначально никаких сопоставлений не создано.

Сопоставляем созданные группы:

  • Гости:
    # net groupmap add rid=514 ntgroup="Domain Guests" unixgroup=nobody
  • Пользователи:
    # net groupmap add rid=513 ntgroup="Domain Users" unixgroup=users
  • Windows станции:
    # net groupmap add rid=515 ntgroup="Domain Computers" unixgroup=nt_workstations
  • Администраторы:
    # net groupmap add rid=512 ntgroup="Domain Admins" unixgroup=nt_admins
  • Менеджеры:
    # net groupmap add ntgroup="Managers" unixgroup=nt_managers

Число после rid= - это числовой идентификатор основных Windows групп.

Таблица RID для основных Windows групп
--------------------------------
Domain Admins 512
Domain Users 513
Domain Guests 514
Domain Computers 515
--------------------------------

Создадим пользователя "bambucha", который будет администратором домена (первичная группа - nt_admins)

# useradd -m -c "Admin" -G nt_admins -g users bambucha

Добавим пользователя в БД SAMBA

#smbpasswd -a bambucha

Как только создан пользователь - администратор, дальше, для управления доменом, в основном будет использоваться утилита net. С ее помощью производятся все административные действия.

Проверим, добавился ли он в группу "Domain Admins"

# net rpc group members "Domain Admins" -U bambucha%123
ASU\bambucha

По умолчанию у группы Domain Admins нет никаких прав кроме кроме назначать и удалять привелегии другим. Дадим группе Domain Admins все права

# net rpc rights grant "Domain Admins" SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege -Ubambucha%123

Ввод в домен

Теперь можем ввести наш сервер в его же домен :)

# net rpc join -U bambucha%123
Joined domain ASU.

Проверим

# net rpc testjoin
Join to 'ASU' is OK

Посмотрим на общую картину домена

# net rpc info -U bambucha%123
Domain Name: ASU
Domain SID: S-1-5-21-1896400801-767198480-4227753087
Sequence number: 1171055599
Num users: 1
Num domain groups: 5
Num local groups: 0

Для того чтобы ввести в домен Windows ПК нужно:

  1. ПКМ на иконке "Мой компьютер", выбрать пункт "Свойства"
  2. Перейти на вкладку "Имя компьютера"
  3. Нажать кнопку "Изменить"
  4. Выбрать пункт "Является членом домена:"
  5. Ввести название домена (в примере ASU), кнопка "ОК"
  6. Ввести имя и пароль пользователя, который имеет право на добавление ПК в домен (в примере bambucha, пароль 123)
  7. Перезагрузить :)
  8. В окне ввода имени пароля, нажать кнопку "Параметры" и выбрать домен (в примере ASU)

Добавление пользователей

Добавим в БД SAMBA все рабочие станции. По умолчанию они будут принадлежать группе "Domain Computers".

# net rpc user add comp1$ -U bambucha%123
# net rpc user add comp2$ -U bambucha%123
# net rpc user add comp3$ -U bambucha%123

Добавим в БД SAMBA всех пользователей. По умолчанию они будут принадлежать группе "Domain Users".

# net rpc user add user1 -U bambucha%123
# net rpc user add user2 -U bambucha%123
# net rpc user add user3 -U bambucha%123

Как было оговорено выше, в нашем домене будут две группы пользователей. Обычные пользователи и менеджеры. Только менеджеры будут иметь доступ к ресурсу clients. Сделаем менеджером пользователя user3. Для этого пользователю user3 необходимо сменить первичную группу с users на nt_managers. Почему бы просто не добавить его в группу nt_managers? Можно и так, но тогда невозможно будет сделать менеджерам отличные от обычных пользователей сетевые диски. Дело в том, что для монтирования дисков SAMBA вызывает bat файл с названием именно первичной группы пользователя. Как уже было сказано, по умолчанию первичная группа всех создаваемых пользователей это users. Следовательно всем будут монтироваться одинаковые наборы дисков. Из за этого не нужно добавлять пользователя в другую группу, нужно менять первичную. Сменим первичную группу пользователя user3 на nt_managers, а потом пропишем его в обычные пользователи.

# usermod -g nt_managers user3
# net rpc group addmem "Domain Users" user3 -U bambucha%123

Проверим, сейчас у user3 первичная группа должна быть nt_managers, и дополнительная users

# groups user3
user3 : nt_managers users

Пользователям нужно присвоить начальные пароли:

# smbpasswd user1
# smbpasswd user2
# smbpasswd user3

Проверка

Проверим:

Список всех групп

# net rpc group -U bambucha%123
Domain Users
Domain Computers
Domain Admins
Domain Guests
Managers

Список всех пользователей

# net rpc user -U bambucha%123
bambucha
user1
user2
user3
comp1$
comp2$
comp3$

Список администраторов (группа "Domain Admins")

# net rpc group members "Domain Admins" -U bambucha%123
ASU\bambucha

Список обычных пользователей (группа "Domain Users")

# net rpc group members "Domain Users" -U bambucha%123
ASU\user1
ASU\user2
ASU\user3

Список пользователей-менеджеров (группа "Managers")

# net rpc group members "Managers" -U bambucha%123
ASU\user3

Список компьютеров (группа "Domain Computers")

# net rpc group members "Domain Computers" -U bambucha%123
ASU\comp1$
ASU\comp2$
ASU\comp3$

Если какому то пользователю нужны дополнительные права, позже его можно добавить в локальную группу "Опытные пользователи" следующей коммандой (также эту комманду, для каждого пользователя можно вызывать автоматически, см. smb.conf):

# net rpc group addmem "Опытные пользователи" "ASU\user_name" -S "user_comp" -Ubambucha%123

Список комманд для управления доменом

Ниже собраны комманды используемые для управления доменом и получения о нем информации. Чтобы не вводить новые названия, оставил их из примера.

Управление

  1. Добавить/удалить сопоставление:
    # net groupmap {add,delete} ntgroup="Managers" unixgroup=nt_managers
  2. Добавить/удалить пользователя:
    # net rpc user {add,delete} user1 -U bambucha%123
  3. Добавить/удалить компьютер:
    # net rpc user {add,delete} comp1$ -U bambucha%123
  4. Добавить/убрать пользователя в доп. группу:
    # net rpc group {addmem,delmem} "Managers" user1 -U bambucha%123
  5. Сменить основную группу пользователя:
    # usermod -g nt_managers user3
  6. Установить пароль для пользователя:
    # smbpasswd user1
  7. Ввести сервер в домен:
    # net rpc join -Ubambucha%123
  8. Проверить на вход в домен:
    # net rpc testjoin
  9. Добавить права определенной группе:
    net rpc rights grant "Domain Admins" SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege -U bambucha%123

Информация

  1. Список сопоставлений:
    # net groupmap list
  2. Список всех пользователей:
    # net rpc user -U bambucha%123
  3. Список всех групп:
    # net rpc group -U bambucha%123
  4. Список пользователей принадлежащих определенной группе:
    # net rpc group members "Managers" -U bambucha%123
  5. Список компьютеров (группа "Domain Computers"):
    # net rpc group members "Domain Computers" -U bambucha%123
  6. Группы, которым принадлежит определенный пользователь:
    # net rpc user info user3 -U bambucha%123
  7. Общая информация о домене:
    # net rpc info -U bambucha%123

Установка принтера

Удаляем старый CUPS

# removepkg cups

Копируем из директории Testing новый CUPS и устанавливаем

# installpkg cups-1.2.4-i486-1.tgz

Если планируется подключать принтер HP, в поствке Slackware есть набор драйверов для этих принтеров (находиться в Testing). Устанавливаем

# installpkg hplip-1.6.9-i486-1.tgz

Заменяем старый конфигурационный файл новым

# mv /etc/cups/cupsd.conf.new /etc/cups/cupsd.conf

Тоже самое со стартовым скриптом и делаем его исполняемым

# mv /etc/rc.d/rc.cups.new /etc/rc.d/rc.cups
# chmod a+x /etc/rc.d/rc.cups

Открываем файл /etc/cups/cupsd.conf, ищем блоки:

<Location />
...
</Location>
,
<Location /admin>
...
</Location>
,
<Location /admin/conf>
...
</Location>

В каждый из этих блоков добавляем строку разрешающую доступ к WEB интерфейсу CUPS с вашего ПК (в данном примере c ПК 192.168.226.1):

Allow From 192.168.226.1

Ищем строку

Listen localhost:631

и меняем на

Listen *:631

т.е. слушать соединения на всех интерфейсах

Раздел /var должен быть смонтирован с поддержкой ACL. Для этого в файле /etc/fstab нужно найти строку с var разделом, например:

/dev/sda6        /var             ext3        defaults         1   2

и добавить при монтировании поддержку ACL:

/dev/sda6        /var             ext3        defaults,acl     1   2

Перезагружаем ПК чтобы смонтировать /var с новой опцией

В браузере открываем WEB интерфейс CUPS: http://192.168.226.1:631 (адрес компьютера на котором установлен CUPS сервер) Дальше все должно просто. Переходим на вкладку Administration, жмем кнопку Add printer, вводим название будущего принтера, комментарий и краткие сведения где он физически находиться. Далее жмем Continue, выбираем к какому порту принтер подключен (для примера выбрал LPT), опять жмем Continue, выбираем производителя, марку принтера (если производитель отсутствует - ищем драйвер в интернете и загружаем с помощью кнопки Browse) и жмем кнопку Add printer. Все. Принтер установлен. Сейчас можно перейти на вкладку Printers, найти там установленный принтер и распечатать тестовую страницу (кнопка Print Test Page).

Перезагружаем SAMBA

# /etc/rc.d/rc.samba restart

Заходим в Windows (под Администратором или членом группы Domain Admins), жмем Пуск, Настройка, Принтеры и факсы, Установка принтера. Выбираем "Сетевой принтер", "Обзор принтеров". Из списка выбираем сервер с SAMBA, а в нем установленный ранее принтер. Принтер установлен, можно пробовать распечатать тестовую страницу из Windows.

Ключевые слова: samba, pdc, ad.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Канал в ICQ

Комментарии:

2007-03-05 13:51:27 (#)

+1.. статей давно не видел нормальных, а те что есть в основном сводятся к установке swat

2007-05-02 10:42:08 (#)

Все работает:) правда принтера у меня нет. за одно исправил несколько опечаток в комадах.

Anonymous 2009-07-17 16:22:01 (#)

Спасибо! Статья выручила!
P.S. Нафига нужен Windows Server? :-)

Anonymous 2010-03-20 15:55:24 (#)

что-то я не увидел чему равно security??? а все же

Anonymous 2010-04-08 02:22:46 (#)

огромное спасибо, таким образом был настроен FreeBSD DC - еле раскрутил за предшественником.

Anonymous 2011-03-01 18:01:48 (#)

Статья не потеряла актуальности даже спустя год. Спасибо
Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2024 Вадим Калинников aka MooSE
Политика конфиденциальности