Samba в качестве PDC c CUPS и SWAT без использования LDAP » IT FOundation – Поваренная книга системного администратора.
Только нужная и полезная документация. Регистрируйтесь, пишите, комментируйте!
30 апреля 2009

Samba в качестве PDC c CUPS и SWAT без использования LDAP

опубликовано в samba |

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

* “docs” – попка с файлами для всех пользователей домена

* “distrib” – дистрибутивы ПО

* “buhs” – папка бухгалтерии, доступ к которой будут иметь люди входящие в соответствующую группу.

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

Установка

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

# USE=”acl automount cups pam python quotas readline swat winbind” emerge -av samba

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

# touch /etc/samba/smb.conf

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

[global]

workgroup = TEST
netbios name = DC
server string = TEST DC
passdb backend = tdbsam
security = user
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 = UTF8
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 = /var/data/netlogon
read only = yes
browseable = no

Расскоментируйте строку ниже, если хотите чтобы пользователи на своих ПК были членами группы
“Опытные пользователи” (сработает после 2-го входа пользователя в домен)
#root preexec = net rpc group addmem “Опытные пользователи” %u -S %m -U admin%password &

[docs]

comment = Documents
path = /var/data/docs
writable = yes
create mask = 0775
directory mask = 0775
force group = nt_users

[distrib]

path = /var/data/distrib
write list = @nt_admins

[buhs]

comment = buhgalteria information
path = /var/data/buhs
writable = yes
valid users = @nt_buhs

Примечание: если вы хотите видеть из консоли русские имена файлов,  не забудте прописть UTF-8 в настройкай кодировки, и указать переменную  LANG=”ru_RU.UTF-8″  в своём ~/.profile (если используется /bin/sh), ~/.bash_profile или ~/.bashrc (если используется /bin/bash). Также возможно указать переменную для всех пользователей – в файле /etc/env.d/02local. ()

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

# mkdir -p /var/data/{netlogon,docs,distrib,buhs}

В директории /var/data/netlogon необходимо создать два файла nt_buhs.bat и nt_users.bat. Эти файлы будут выполняться одноименными группами пользователей при входе в домен. В них содержаться комманды для монтирования сетевых дисков и синхронизации часов. В примере, между ними одно различие: обычным пользователям не будет монтироваться сетевой диск на ресурс buhs.
Внимание: очень важно чтобы файлы были в Window’ой кодировке и dos’м окончанием строки (). Самый лучший способ – создать их в Блокноте и затем закачть по FTP на сервер, или открыть в vim’e сразу с преобразованием
vim --cmd "edit ++enc=cp1251 ++ff=dos" -- /var/data/netlogon/nt_buhs.bat.

# cat /var/data/netlogon/nt_users.bat

net time \\DC /set /yes
net use z: \\DC\docs
net use y: \\DC\distrib

# cat /var/data/netlogon/nt_buhs.bat

net time \\DC /set /yes
net use z: \\DC\docs
net use y: \\DC\distrib
net use x: \\DC\buhs

Настройка

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

1) Guests
2) Users
3) Administrators

Windows группе Guests можно сопоставить Linux группу nobody, Users – nt_users, для Administrators – nt_admins. Также создадим отдельную группу для бухгалтерии nt_buhs.

# groupadd nt_workstations
# groupadd nt_admins
# groupadd nt_users
# groupadd nt_buhs

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

# chgrp -R nt_users /var/data/docs
# chmod -R g+w /var/data/docs

Директорию buhs необходимо открыть толькобухгалтерам. Огрничения на доступ к каталогувыславляются переменное “valid users в конфигурационном файле, в нашем случае это строка valid users = @nt_buhs

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

# chgrp -R nt_buhs /var/data/buhs
# chmod -R g+w /var/data/buhs

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

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

# smbpasswd -a root

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

# testparm

Запускаем

# /etc/init.d/samba start
Проверим что SAMBA успешно стартовал:
# ps ax | grep mbd

2001 ? Ss 0:00 /usr/sbin/smbd -D
2002 ? Ss 0:00 /usr/sbin/nmbd -D
2003 ? S 0:00 /usr/sbin/smbd -D
8943 pts/2 R+ 0:00 grep mbd

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

# smbclient -L localhost -Uroot%password

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

Cопоставление групп пользователей

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

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

Гости
# net groupmap add rid=514 ntgroup=”Domain Guests” unixgroup=nobody

Пользователи
# net groupmap add rid=513 ntgroup=”Domain Users” unixgroup=nt_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=”Buhgalteria” unixgroup=nt_buhs

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

Таблица RID для основных Windows групп

——————————–

Domain Admins 512
Domain Users 513
Domain Guests 514
Domain Computers 515

——————————–

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

# useradd -m -c “Admin” -G nt_admins -g users admin

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

#smbpasswd -a admin

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

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

# net rpc group members “Domain Admins” -U admin%password

TEST\admin

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

# net rpc rights grant “Domain Admins” SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege
SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege
SeDiskOperatorPrivilege -U admin%password

Ввод в домен

Далее необходимо ввести наш сервер в домен

# net rpc join -U admin%password

Joined domain TEST.

Проверим

# net rpc testjoin

Join to ‘TEST’ is OK

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

# net rpc info -U admin%password

Domain Name: TEST

Domain SID: S-1-5-21-2622854777-20000374391-4236968767

Sequence number: 1241547045

Num users: 1

Num domain groups: 5

Num local groups: 0

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

1) Правой кнопкой мыши на иконке “Мой компьютер”, выбрать пункт “Свойства”

2) Выбрать вкладку “Имя компьютера”

3) Нажать кнопку “Изменить”

4) Выбрать пункт “Является членом домена:”

5) Ввести название домена (в нашем примере TEST), нажать кнопку “ОК”

6) Ввести имя и пароль пользователя, который имеет право на добавление ПК в домен (в примере admin, пароль password)

7) Перезагружаем компьютер

8) В окне ввода имени пароля, нажать кнопку “Параметры” и выбрать домен (в нашем случае это TEST)

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

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

# net rpc user add comp1$ -U admin%password

# net rpc user add comp2$ -U admin%password

# net rpc user add comp3$ -U admin%password

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

# net rpc user add user1 -U admin%password

# net rpc user add user2 -U admin%password

# net rpc user add glavbuh -U admin%password

Изначально в нашем домене мы решили создать две группы пользователей – обычные пользователи и бухгалтера. К ресурсу “buhs” будут именть доступ только бухгатера. Соответсвеннно сделаем пользователя glavbuh членом группы “Бухгалтерия”. Для этого пользователю glavbuh необходимо сменить первичную группу с nt_users на nt_buhs. Необходимо учесть, что для монтирования дисков SAMBA вызывает bat файл с названием именно первичной группы пользователя, т.е. если мы хотим чтобы членам группы “Бухгалтерия” монтировались необходимы им диски, нужно сменить для них основную группу на nt_buhs. Сменим первичную группу пользователя glavbuh на nt_buhs, а потом пропишем его в обычные пользователи.

usermod -g nt_buhs user3

net rpc group addmem “Domain Users” glavbuh -U admin%password

Проверим, что у пользователя glavbuh первичная группа cтала nt_buhs, и дополнительная nt_users

groups user3

user3 : nt_buhs users

Установим первоначальные пароли пользователям для входа в домен:

# smbpasswd user1

# smbpasswd user2

# smbpasswd glavbuh

Проверка

Проверим:

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

# net rpc group -U admin%password

Domain Users
Domain Computers
Domain Admins
Domain Guests
Buhgalteria

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

# net rpc user -U admin%passwors

admin
user1
user2
glavbuh
comp1$
comp2$
comp3$

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

# net rpc group members “Domain Admins” -U admin%password

TEST\password

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

# net rpc group members “Domain Users” -U admin%password

TEST\user1
TEST\user2
TEST\user3

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

# net rpc group members “Buhgalteria” -U admin%password

TEST\glavbuh

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

#net rpc group members “Domain Computers” -U admin%password

TEST\comp1$
TEST\comp2$
TEST\comp3$

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

# net rpc group addmem “Опытные пользователи” “TEST\user_name” -S “user_comp” -U admin%password

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

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

Управление

1) Добавить/удалить сопоставление
# net groupmap {add,delete} ntgroup=”GROUPNAME” unixgroup=nt_groupname

2) Добавить/удалить пользователя
# net rpc user {add,delete} username -U admin%password

3) Добавить/удалить компьютер
# net rpc user {add,delete} compname$ -U admin%password

4) Добавить/убрать пользователя в доп. группу
# net rpc group {addmem,delmem} “GROUPNAME” username -U admin%password

5) Сменить основную группу пользователя
# usermod -g nt_groupname username

6) Установить пароль для пользователя
# smbpasswd username

7) Ввести сервер в домен
# net rpc join -U admin%password

8) Проверить на вход в домен
# net rpc testjoin

9) Добавить права определенной группе
# net rpc rights grant “Domain Admins” SeMachineAccountPrivilege SeTakeOwnershipPrivilege SeBackupPrivilege
SeRestorePrivilege SeRemoteShutdownPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege
SeDiskOperatorPrivilege -U admin%password

Информация

1) Список сопоставлений:
# net groupmap list

2) Список всех пользователей
# net rpc user -U admin%password

3) Список всех групп
# net rpc group -U admin%password

4) Список пользователей принадлежащих определенной группе
# net rpc group members “GROUPNAME” -U admin%password

5) Список компьютеров (группа “Domain Computers”)
# net rpc group members “Domain Computers” -U admin%password

6) Группы, которым принадлежит определенный пользователь
# net rpc user info username -U admin%password

7) Общая информация о домене
# net rpc info -U admin%password

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

1) Устанавлтваем CUPS
# USE=”samba” emerge -av cups

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

,

,

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

Allow From 192.168.0.100

Ищем строку
Listen localhost:631
и меняем на

Listen *:631

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

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

/dev/sda6 /var ext3 defaults 1 2

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

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

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

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

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

# /etc/init.d/samba restart

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

Установка SWAT.
SWAT – Samba Web Administration Tool – это графический веб инструмент для управлением конфигурации samb’ы.
Среди многих интересных возможностей SWAT включает в себя мастер, который поможет вам быстро настроить Samba
с использованием базовой установки. Он также содержит в себе контекстно-зависимую справку для всех параметров и позволяет вам наблюдать за текущим состоянием соединений и пользователей.
Поскольку SWATпредставляет собой просто составную часть пакета Samba, все параметры будут находиться в актуальном состоянии.
SWAT работает переписывая файл конфигурации /etc/samba/smb.conf и перезапуская Samba, когда это необходимо.

Обратите внимание, что когда он переписывает файлы, он уничтожает все комментарии, которые могли быть включены вами в
конфигурационные файлы. Не поддерживаемые параметры удаляются, параметры, имеющие значения по умолчанию, игнорируются,а, кроме того, SWAT изменяет порядок параметров, поэтому файл, тщательно сформированный
вручную, может выглядеть неожиданно скудно, после того, как SWAT поработает с ним.

Для того чтобы установить swat Linux Gentoo достаточно использовать флаг “swat”.

Запуск swat произвдится через xinetd или inetd
В случае использования xinetd поправьте файл /etc/xinetd.d/swat:
{
port = 901
socket_type = stream
wait = no
user = root
server = /usr/sbin/swat
only_from = 127.0.0.1
log_on_failure += USERID
disable = no
}
В строчку “only_from” впишите через пробел адрес машины, с которой будет осуществляться к SWAT,
в строке “disable” измините yes на no.
По окончании редактирования файла запустите
# /etc/init.d/xinetd restart
и SWAT будет готов к работе.

Получить доступ к SWAT можно путем открытия браузера и перехода на http://127.0.0.1:901.

Домашняя страница содержит список документации и man-страниц по проекту.

Ниже представлен список других вкладок и функций SWAT, которые вы можете использовать:

Globals: Обеспечивает доступ к глобальным параметрам в smb.conf. Вы можете работать на одном из двух уровней: “Базовый”, который показывает только самые важные настройки, или “Продвинутый”, показывающий все доступные настройки. Нажмите на соответствующих кнопках для выбора желаемого уровня. Также вы можете нажать на справочную ссылку по каждому параметру. После проведения настроек нажмите “Commit Changes” для сохранения вашей конфигурации или “Reset Values” для возвращения к исходной конфигурации smb.conf
Shares: Позволяет вам создавать, редактировать или удалять совместно используемые ресурсы. Для правки ресурса выберите его из выпадающего списка, затем нажмите “Choose Share”; нажатие на “Delete Share” удалит его. Когда вы добавляете или настраиваете ресурс, вы можете указать несколько параметров на любом из двух уровней, базовом или продвинутом, таких как имя ресурса, путь, допустимые и недопустимые пользователи и доступен ли ресурс для записи или только для чтения. Не забудьте нажать на “Commit Changes” (или “Reset Values”) перед изменением или ваша работа окажется напрасной.
Printers: Аналогична Shares, но предназначена для работы с принтерами.
Wizard: Предлагает вам быструю конфигурацию сервера. Вы можете выбрать один из следующих видов серверов: автономный сервер, контроллер домена  или член домена. Вы должны также точно определить, как сервер будет работать с Windows Internet Name Service (WINS) и хотите ли вы открыть доступ к вашим домашним каталогам. Нажмите на “Rewrite smb.conf” или на “Commit” для сохранения изменений и вы сможете запустить базовую настройку сервера Samba, которую вы потом можете настроить по своим потребностям, используя другие опции.
Status: показывает какие сервисы запущены: обычно это smbd (демон Samba) и nmbd (демон поддержки сервера NetBIOS), и возможно Winbind (сервис позволяющий компьютерам под управлением ОС Linux быть членами домена Windows). Здесь же представлен список всех активных соединений (которые вы можете уничтожить если это необходимо), активные общедоступные ресурсы и открытые файлы. Вы можете нажать на “Auto Refresh”, чтобы эта страница автоматически обновлялась через определенный промежуток времени (30 секунд по умолчанию)
View: Позволяет вам просмотреть текущий файл конфигурации. Нажмите на кнопке View для просмотра его в обычном виде (минимальная конфигурация, не отображаются параметры по умолчанию) или в полном виде (со всеми параметрами)
Password: позволяет вам создавать, удалять, активировать или деактивировать локальных пользователей Samba и изменять пароли для локального или удаленного сервера



Написать комментарий


× 4 = двадцать четыре