- Введение
- Установка
- Настройка
- Создание групп
- Ввод в домен
- Добавление пользователей
- Проверка
- Список комманд для управления доменом
- Установка принтера
В статье рассматривается создание и настройка первичного контроллера 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 по умолчанию прописаны следующие основные группы:
- Guests
- Users
- 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 ПК нужно:
- ПКМ на иконке "Мой компьютер", выбрать пункт "Свойства"
- Перейти на вкладку "Имя компьютера"
- Нажать кнопку "Изменить"
- Выбрать пункт "Является членом домена:"
- Ввести название домена (в примере ASU), кнопка "ОК"
- Ввести имя и пароль пользователя, который имеет право на добавление ПК в домен (в примере bambucha, пароль 123)
- Перезагрузить :)
- В окне ввода имени пароля, нажать кнопку "Параметры" и выбрать домен (в примере 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
Список комманд для управления доменом
Ниже собраны комманды используемые для управления доменом и получения о нем информации. Чтобы не вводить новые названия, оставил их из примера.
- Добавить/удалить сопоставление:
# net groupmap {add,delete} ntgroup="Managers" unixgroup=nt_managers - Добавить/удалить пользователя:
# net rpc user {add,delete} user1 -U bambucha%123 - Добавить/удалить компьютер:
# net rpc user {add,delete} comp1$ -U bambucha%123 - Добавить/убрать пользователя в доп. группу:
# net rpc group {addmem,delmem} "Managers" user1 -U bambucha%123 - Сменить основную группу пользователя:
# usermod -g nt_managers user3 - Установить пароль для пользователя:
# smbpasswd user1 - Ввести сервер в домен:
# net rpc join -Ubambucha%123 - Проверить на вход в домен:
# net rpc testjoin - Добавить права определенной группе:
net rpc rights grant "Domain Admins" SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege -U bambucha%123
- Список сопоставлений:
# net groupmap list - Список всех пользователей:
# net rpc user -U bambucha%123 - Список всех групп:
# net rpc group -U bambucha%123 - Список пользователей принадлежащих определенной группе:
# net rpc group members "Managers" -U bambucha%123 - Список компьютеров (группа "Domain Computers"):
# net rpc group members "Domain Computers" -U bambucha%123 - Группы, которым принадлежит определенный пользователь:
# net rpc user info user3 -U bambucha%123 - Общая информация о домене:
# 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.
2007-03-05 13:51:27 (#)