Редакция январь, 2025
Аннотация
Таблица 2.1. Состав технических и программных средств стенда
№ ПЭВМ
|
Программная среда
|
Описание
|
---|---|---|
1
|
ОС «Альт Сервер»
|
Контроллер домена test.alt
|
2
|
ОС «Альт Сервер»
|
Дополнительный контроллер домена test.alt
|
3
|
ОС Альт («Альт Рабочая станция», «Альт Рабочая станция K», «Альт Образование»)
|
Рабочая станция
|
4
|
ОС Альт («Альт Рабочая станция», «Альт Рабочая станция K», «Альт Образование»)
|
Рабочая станция
|
5
|
ОС Microsoft Windows Server 2012
|
Контроллер домена win.alt
|
6
|
ОС «Альт Сервер»
|
Контроллер домена example.alt
|
7
|
ОС «Альт Сервер»
|
Веб-сервер, прокси-сервер
|
8
|
ОС «Альт Сервер»
|
Контроллер домена test.alt только для чтения (RODC)
|
9
|
ОС Альт («Альт Рабочая станция», «Альт Рабочая станция K», «Альт Образование»)
|
Рабочая станция
|
Содержание
Примечание
Примечание
https://tools.ietf.org/html/rfc2606
) для частных тестовых установок, например, alt.test.
Важно
avahi-daemon
.
Примечание
sAMAccountName
в Active Directory).
Таблица 3.1. Порты, используемые контроллером домена
Служба
|
Порт
|
Протокол
|
Примечание
|
---|---|---|---|
DNS
|
53
|
TCP и UDP
|
Для DNS от контроллера домена к контроллеру домена и от клиента к контроллеру домена. Может быть предоставлен внутренним DNS-сервером Samba или DNS-сервером Bind9
|
Kerberos
|
88
|
TCP и UDP
|
Для аутентификации Kerberos
|
NTP
|
123
|
UDP (Опционально)
|
Если на контроллере домена настроен и работает NTP
|
End Point Mapper (DCE/RPC Locator Service)
|
135
|
TCP
|
Для операций клиента с контроллером домена
|
NetBIOS Name Service
|
137
|
UDP
|
|
NetBIOS Datagram
|
138
|
UDP
|
Для службы репликации файлов между контроллерами домена
|
NetBIOS Session
|
139
|
TCP
|
Для службы репликации файлов между контроллерами домена
|
LDAP
|
389
|
TCP и UDP
|
Для обработки регулярных запросов от клиентских компьютеров к контроллерам домена
|
SMB over TCP
|
445
|
TCP
|
Для службы репликации файлов
|
Kerberos
|
464
|
TCP и UDP
|
Используется
kadmin для установки и смены пароля Kerberos
|
LDAPS
|
636
|
TCP
|
Если в файле
smb.conf установлен параметр tls enabled = yes (по умолчанию)
|
Global Catalog
|
3268
|
TCP
|
Для глобального каталога от клиента к контроллеру домена
|
Global Catalog SSL
|
3269
|
TCP
|
Если в файле
smb.conf установлен параметр tls enabled = yes (по умолчанию)
|
Dynamic RPC Ports
|
49152-65535
|
TCP
|
Диапазон соответствует диапазону портов, используемому в Windows Server 2008 и более поздних версиях. Чтобы вручную установить диапазон портов в Samba, необходимо задать требуемый диапазон в параметре
rpc server port в файле smb.conf . Подробности см. в описании данного параметра на справочной странице man smb.conf .
|
Примечание
Примечание
SAMBA_INTERNAL
— встроенный сервер имен:
SAMBA_INTERNAL
не поддерживает следующий функционал:
BIND9_DLZ
— использует Samba AD для хранения информации о зоне:
Примечание
Важно
BIND9_FLATFILE
не поддерживается.
#Например:hostnamectl set-hostname <имя узла>
#domainname <имя домена>
#hostnamectl set-hostname dc1.test.alt
#domainname test.alt
Примечание
/etc/sysconfig/network
:
HOSTNAME=dc1.test.altВо все остальных случаях параметр HOSTNAME игнорируется.
Примечание
# apt-get install task-samba-dc
Если будет использоваться Samba DC на базе MIT Kerberos следует установить пакет task-samba-dc-mitkrb5:
# apt-get install task-samba-dc-mitkrb5
Примечание
krb5.conf
(в блоке — libdefaults) необходимо отключить использование ядерного кеша ключей — KEYRING:persistent:%{uid}
:
# control krb5-conf-ccache default
krb5kdc
и slapd
, а также bind
:
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
Примечание
# apt-get install chrony
# control chrony server
# sed -i -r 's/^(pool.*)/#\1\npool ru.pool.ntp.org iburst/' /etc/chrony.conf
или указать серверы NTP в директиве server или pool в файле конфигурации NTP /etc/chrony.conf
:
pool ru.pool.ntp.org iburst
Примечание
iburst
используется для ускорения начальной синхронизации.
chronyd
:
# systemctl enable --now chronyd
# systemctl status chronyd.service
samba-tool domain provision
имеет множество опций, которые можно использовать для предоставления дополнительной информации при установке сервера. Эти опции также можно использовать в скриптах.
samba-tool(8)
.
Таблица 4.1. Основные опции для samba-tool domain provision
Опция
|
Описание
|
---|---|
--interactive
|
Запрашивать ввод данных у пользователя (интерактивное создание домена)
|
--domain=DOMAIN
|
Имя домена NetBIOS (имя рабочей группы)
|
--domain-guid=GUID
|
Установить domainguid (иначе используется случайное значение)
|
--domain-sid=SID
|
Установить domainsid (иначе используется случайное значение)
|
--ntds-guid=GUID
|
Установить GUID объекта NTDS (иначе используется случайное значение)
|
--host-name=HOSTNAME
|
Установить имя хоста
|
--host-ip=IPADDRESS
|
Установить IPv4 IP-адрес
|
--host-ip6=IP6ADDRESS
|
Установить IPv6 IP-адрес
|
--adminpass=PASSWORD
|
Пароль основного администратора домена (иначе используется случайное значение)
|
--krbtgtpass=PASSWORD
|
Пароль krbtgtpass (иначе используется случайное значение)
|
--dns-backend=NAMESERVER-BACKEND
|
Бэкенд DNS-сервера: SAMBA_INTERNAL — встроенный сервер имен (по умолчанию), BIND9_FLATFILE — использует текстовую базу данных bind9 для хранения информации о зоне, BIND9_DLZ — использует Samba AD для хранения информации о зоне, NONE — полностью пропускает настройку DNS (не рекомендуется).
|
--dnspass=PASSWORD
|
Пароль dns (иначе используется случайное значение)
|
--server-role=ROLE
|
Позволяет указать тип серверной роли: domain controller, dc (по умолчанию), member server, member или standalone
|
--function-level=FOR-FUN-LEVEL
|
Позволяет указать уровень домена и леса: 2000, 2003, 2008, 2008_R2 (по умолчанию) или 2016
|
--base-schema=BASE-SCHEMA
|
Версия базовой схемы домена (по умолчанию 2019)
|
--use-rfc2307
|
Позволяет поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux (по умолчанию no)
|
--machinepass=PASSWORD
|
Пароль для машины (иначе используется случайное значение)
|
--plaintext-secrets
|
Сохранять конфиденциальные данные в виде обычного текста на диске (по умолчанию конфиденциальные данные шифруются)
|
--realm=REALM
|
Задаёт область Kerberos (LDAP), и DNS имя домена
|
--option=OPTION
|
Позволяет установить параметры
smb.conf из командной строки
|
-s FILE, --configfile=FILE
|
Позволяет указать файл конфигурации
|
-d DEBUGLEVEL, --debuglevel=DEBUGLEVEL
|
Включить отладку
|
dns forwarder
(файл smb.conf
) указать один или несколько IP-адресов DNS-серверов, поддерживающих рекурсивное разрешение. Например:
dns forwarder = 192.168.0.190
Примечание
dns forwarder
поддерживают несколько IP-адресов, разделенных пробелами. Старые версии поддерживают один IP-адрес. Обращение ко второму и последующим DNS-серверам произойдёт только в том случае, если первый не вернул никакого ответа.
Примечание
--dns-backend=SAMBA_INTERNAL
или не указывать этот параметр вообще.
/etc/resolvconf.conf
должна присутствовать строка:
name_servers=127.0.0.1Если этой строки в файле
/etc/resolvconf.conf
нет, то в конец этого файла следует добавить строку:
name_servers=127.0.0.1и перезапустить сервис resolvconf:
# resolvconf -u
DNSStubListener
:
/etc/systemd/resolved.conf
) установить значение:
DNSStubListener=no
# systemctl restart systemd-resolved
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba
#rm -rf /var/cache/samba
#mkdir -p /var/lib/samba/sysvol
Предупреждение
/etc/samba/smb.conf
: rm -f
/etc/samba/smb.conf
# samba-tool domain provision
Realm [TEST.ALT]: Domain [TEST]:
Примечание
Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: 8.8.8.8
Administrator password: Retype password:
Примечание
Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Adding DomainDN: DC=test,DC=alt Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers and extended rights Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=test,DC=alt Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs The Kerberos KDC configuration for Samba AD is located at /var/lib/samba/private/kdc.conf A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink! Once the above files are installed, your Samba AD server will be ready to use Server Role: active directory domain controller Hostname: dc1 NetBIOS Domain: TEST DNS Domain: test.alt DOMAIN SID: S-1-5-21-3617232745-2316959539-2936900449
--realm REALM_NAME
— имя области Kerberos (LDAP) и DNS имя домена;
--domain=DOMAIN
— имя домена (имя рабочей группы);
--adminpass=PASSWORD
— пароль основного администратора домена;
dns forwarder=forwarder_ip_address
— внешний DNS-сервер, чтобы DC мог разрешать внешние доменные имена;
--server-role=ROLE
— тип серверной роли;
--dns-backend=NAMESERVER-BACKEND
— бэкенд DNS-сервера;
--use-rfc2307
— позволяет поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.
Примечание
# samba-tool domain provision
--realm=test.alt --domain=test \
--adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL \
--option="dns forwarder=8.8.8.8" \
--server-role=dc --use-rfc2307
# samba-tool domain provision
--realm=test.alt --domain=test \
--adminpass='Pa$$word' --dns-backend=SAMBA_INTERNAL \
--option="dns forwarder=8.8.8.8" --option="ad dc functional level = 2016" \
--server-role=dc --function-level=2016
Примечание
Примечание
samba-tool domain provision
приведены в в табл. Основные опции для samba-tool domain provision. Полный список параметров можно увидеть, запустив команду:
# samba-tool domain provision --help
Примечание
# systemctl enable --now samba
Примечание
Примечание
/etc/samba/smb.conf
после создания домена с SAMBA_INTERNAL:
Global parameters [global] dns forwarder = 8.8.8.8 netbios name = DC1 realm = TEST.ALT server role = active directory domain controller workgroup = TEST idmap_ldb:use rfc2307 = yes [sysvol] path = /var/lib/samba/sysvol read only = No [netlogon] path = /var/lib/samba/sysvol/test.alt/scripts read only = No
dns forwarder
на бэкенде SAMBA_INTERNAL работает только с одним адресом).
# apt-get install bind bind-utils
Примечание
named-checkconf
— проверка синтаксиса файлов конфигурации;
named-checkzone
— проверка файлов зон DNS;
rndc
— инструмент управления службой DNS.
dig
— многофункциональный инструмент для опроса DNS-серверов;
host
— позволяет получить информацию о DNS-связях между доменными именами и IP-адресами;
nslookup
— позволяет получить информацию DNS об удаленном сервере;
nsupdate
— инструмент для динамического обновления записей DNS.
Примечание
named.conf(5)
.
# control bind-chroot disabled
# grep -q KRB5RCACHETYPE /etc/sysconfig/bind || echo 'KRB5RCACHETYPE="none"' >> /etc/sysconfig/bind
# grep -q 'bind-dns' /etc/bind/named.conf || echo 'include "/var/lib/samba/bind-dns/named.conf";' >> /etc/bind/named.conf
/etc/bind/options.conf
:
tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab"; minimal-responses yes;
forwarders
указать сервера, куда будут перенаправляться запросы, на которые нет информации в локальной зоне (если этой информации нет в файле /etc/bind/resolvconf-options.conf
):
forward first; forwarders { 8.8.8.8; };
listen-on
добавить IP-адрес DNS-сервера, на котором он будет принимать запросы;
allow-query
и указать в нём подсети, из которых разрешено подавать запросы;
allow-recursion
и указать в нём подсети, из которых будут обрабатываться рекурсивные запросы;
category lame-servers {null;};
/etc/bind/options.conf
:
options { version "unknown"; directory "/etc/bind/zone"; dump-file "/var/run/named_dump.db"; statistics-file "/var/run/named.stats"; recursing-file "/var/run/recursing"; // disables the use of a PID file pid-file none; tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab"; minimal-responses yes; listen-on { 127.0.0.1; 192.168.0.132; }; listen-on-v6 { ::1; }; include "/etc/bind/resolvconf-options.conf"; allow-query { localnets; 192.168.0.0/24; }; allow-recursion { localnets; 192.168.0.0/24; }; //max-cache-ttl 86400; }; logging { category lame-servers {null;}; };
/etc/bind/resolvconf-options.conf
в параметре forwarders
должен быть указан DNS-сервер, на который будут перенаправляться запросы клиентов;
bind
:
# systemctl stop bind
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba
#rm -rf /var/cache/samba
#mkdir -p /var/lib/samba/sysvol
Предупреждение
/etc/samba/smb.conf
: rm -f
/etc/samba/smb.conf
# samba-tool domain provision
Realm [TEST.ALT]: Domain [TEST]:
Примечание
Server Role (dc, member, standalone) [dc]: DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ
Administrator password: Retype password:
Примечание
Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Adding DomainDN: DC=test,DC=alt Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers and extended rights Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=test,DC=alt Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions See /var/lib/samba/bind-dns/named.conf for an example configuration include file for BIND and /var/lib/samba/bind-dns/named.txt for further documentation required for secure DNS updates Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs The Kerberos KDC configuration for Samba AD is located at /var/lib/samba/private/kdc.conf A Kerberos configuration suitable for Samba AD has been generated at /var/lib/samba/private/krb5.conf Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink! Once the above files are installed, your Samba AD server will be ready to use Server Role: active directory domain controller Hostname: dc1 NetBIOS Domain: TEST DNS Domain: test.alt DOMAIN SID: S-1-5-21-3684382553-2825304832-3399765044
--realm REALM_NAME
— имя области Kerberos (LDAP) и DNS имя домена;
--domain=DOMAIN
— имя домена (имя рабочей группы);
--adminpass=PASSWORD
— пароль основного администратора домена;
--server-role=ROLE
— тип серверной роли;
--dns-backend=NAMESERVER-BACKEND
— бэкенд DNS-сервера;
--use-rfc2307
— позволяет поддерживать расширенные атрибуты типа UID и GID в схеме LDAP и ACL на файловой системе Linux.
Примечание
--dns-backend=BIND9_DLZ
.
# samba-tool domain provision --realm=test.alt --domain test --adminpass='Pa$$word' --dns-backend=BIND9_DLZ --server-role=dc
# samba-tool domain provision --realm=test.alt --domain=test --adminpass='Pa$$word' --dns-backend=BIND9_DLZ --option="ad dc functional level = 2016" --server-role=dc --function-level=2016
Примечание
Примечание
samba-tool domain provision
приведены в в табл. Основные опции для samba-tool domain provision. Полный список параметров можно увидеть, запустив команду:
# samba-tool domain provision --help
samba
и bind
запускаемыми по умолчанию и запустить их:
#systemctl enable --now samba
#systemctl enable --now bind
Примечание
samba
после установки никаким способом не запускается, необходимо перезагрузить сервер.
Примечание
/etc/samba/smb.conf
после создания домена с BIND9_DLZ:
# Global parameters [global] netbios name = DC1 realm = TEST.ALT server role = active directory domain controller server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate workgroup = TEST [sysvol] path = /var/lib/samba/sysvol read only = No [netlogon] path = /var/lib/samba/sysvol/test.alt/scripts read only = No
# host -t A localhost 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
localhost has address 127.0.0.1
Проверка реверсивной зоны 0.0.127.in-addr.arpa.:
# host -t PTR 127.0.0.1 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:
1.0.0.127.in-addr.arpa domain name pointer localhost.
/etc/krb5.conf
. В этом файле следует раскомментировать строку default_realm и содержимое разделов realms и domain_realm и указать название домена (следует обратить внимание на регистр символов), в строке dns_lookup_realm должно быть установлено значение false:
includedir /etc/krb5.conf.d/ [logging] # default = FILE:/var/log/krb5libs.log # kdc = FILE:/var/log/krb5kdc.log # admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_kdc = true dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = TEST.ALT # default_ccache_name = KEYRING:persistent:%{uid} [realms] TEST.ALT = { default_domain = test.alt } [domain_realm] dc = TEST.ALT
Примечание
krb5.conf
для домена в каталоге /var/lib/samba/private/
. Можно просто заменить этим файлом файл, находящийся в каталоге /etc/
:
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
# samba-tool domain info 127.0.0.1
Forest : test.alt
Domain : test.alt
Netbios domain : TEST
DC name : dc1.test.alt
DC netbios name : DC1
Server site : Default-First-Site-Name
Client site : Default-First-Site-Name
# smbclient -L localhost -Uadministrator
Password for [TEST\administrator]:
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.19.9)
SMB1 disabled -- no workgroup available
Создаваемые по умолчанию общие ресурсы netlogon и sysvol нужны для функционирования контроллера домена и создаются в smb.conf
в процессе развертывания/модернизации.
/etc/resolv.conf
:
#cat /etc/resolv.conf
# Generated by resolvconf # Do not edit manually, use # /etc/net/ifaces/<interface>/resolv.conf instead. search test.alt nameserver 127.0.0.1 #host test.alt
test.alt has address 192.168.0.132
# host -t SRV _kerberos._udp.test.alt.
_kerberos._udp.test.alt has SRV record 0 100 88 dc1.test.alt.
# host -t SRV _ldap._tcp.test.alt.
_ldap._tcp.test.alt has SRV record 0 100 389 dc1.test.alt.
# host -t A dc1.test.alt.
dc1.test.alt has address 192.168.0.132
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Warning: Your password will expire in 15 days on Пт 12 апр 2024 11:46:29
Просмотр полученного билета:
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
27.03.2024 14:14:36 28.03.2024 00:14:36 krbtgt/TEST.ALT@TEST.ALT
renew until 28.03.2024 14:14:32
Примечание
# samba-tool domain join <dnsdomain> [DC|RODC|MEMBER] [options]
samba-tool domain join
:
--realm REALM_NAME
— имя области Kerberos (LDAP), и DNS имя домена;
--dns-backend=NAMESERVER-BACKEND
— бэкенд DNS-сервера: SAMBA_INTERNAL — встроенный сервер имен (по умолчанию), BIND9_DLZ — использует Samba AD для хранения информации о зоне, NONE — полностью пропускает настройку DNS (этот DC не будет DNS-сервером);
Примечание
Примечание
dns forwarder
, чтобы на новом сервере была настроена пересылка запросов:
--option="dns forwarder=forwarder_ip_address"Форвардером может быть как вышестоящий DNS-сервер организации, так и публичные от google или yandex, например:
--option="dns forwarder=8.8.8.8"
--option='idmap_ldb:use rfc2307 = yes'
— если первый контроллер домена создавался с ключом --rfc2307
, то и для текущего необходимо это учесть, указав данный параметр;
--site=SITE
— привязка контроллера домена к определенному сайту AD;
--option="interfaces= lo eth0" --option="bind interfaces only=yes"
— привязка Samba к указанным сетевым интерфейсам сервера (если их несколько); указание данной опции позволяет samba-tool
зарегистрировать корректный IP-адрес при присоединении;
--option="ad dc functional level = LEVEL"
— функциональный уровень AD. Возможные значения: 2008_R2 (по умолчанию), 2012, 2012_R2.
Примечание
Примечание
samba-tool domain join
можно воспользоваться командой:
# samba-tool domain join --help
Таблица 5.1. Параметры контроллеров домена
|
IP-адрес
|
Полное доменное имя (FQDN)
|
---|---|---|
Существующий DC
|
192.168.0.132
|
dc1.test.alt
|
Добавляемый DC
|
192.168.0.133
|
dc2.test.alt
|
# hostnamectl set-hostname dc2.test.alt
Примечание
Примечание
# apt-get install task-samba-dc
/etc/resolv.conf
обязательно должен быть добавлен первый DC как nameserver:
#echo "name_servers=192.168.0.132" >> /etc/resolvconf.conf
#echo "search_domains=test.alt" >> /etc/resolvconf.conf
#resolvconf -u
#cat /etc/resolv.conf
search test.alt nameserver 192.168.0.132 nameserver 8.8.8.8
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba
#rm -rf /var/cache/samba
#mkdir -p /var/lib/samba/sysvol
# samba-tool dns add 192.168.0.132 test.alt DC2 A 192.168.0.133 -Uadministrator
Password for [TEST\administrator]:
Record added successfully
Предупреждение
Примечание
samba-tool dns add
см. в разделе Администрирование DNS
/etc/krb5.conf
):
[libdefaults] default_realm = TEST.ALT dns_lookup_realm = false dns_lookup_kdc = true
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Предупреждение
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
27.03.2024 14:14:36 28.03.2024 00:14:36 krbtgt/TEST.ALT@TEST.ALT
renew until 28.03.2024 14:14:32
# samba-tool domain join
test.alt DC -Uadministrator \
--realm=test.alt --option="dns forwarder=8.8.8.8"
Если всё нормально, в конце будет выведена информация о присоединении к домену:
Joined domain TEST (SID S-1-5-21-80639820-2350372464-3293631772) as a DC
# systemctl enable --now samba
Примечание
# apt-get install task-samba-dc
/etc/resolv.conf
обязательно должен быть добавлен первый DC как nameserver:
#echo "name_servers=192.168.0.132" >> /etc/resolvconf.conf
#echo "search_domains=test.alt" >> /etc/resolvconf.conf
#resolvconf -u
#cat /etc/resolv.conf
search test.alt nameserver 192.168.0.132 nameserver 8.8.8.8
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba
#rm -rf /var/cache/samba
#mkdir -p /var/lib/samba/sysvol
# samba-tool dns add 192.168.0.132 test.alt DC2 A 192.168.0.133 -Uadministrator
Password for [TEST\administrator]:
Record added successfully
Предупреждение
Примечание
samba-tool dns add
см. в разделе Администрирование DNS
/etc/krb5.conf
):
[libdefaults] default_realm = TEST.ALT dns_lookup_realm = false dns_lookup_kdc = true
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Предупреждение
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
27.03.2024 14:14:36 28.03.2024 00:14:36 krbtgt/TEST.ALT@TEST.ALT
renew until 28.03.2024 14:14:32
# samba-tool domain join
test.alt DC -Uadministrator \
--realm=test.alt --dns-backend=BIND9_DLZ
Если всё нормально, в конце будет выведена информация о присоединении к домену:
Joined domain TEST (SID S-1-5-21-80639820-2350372464-3293631772) as a DC
#systemctl enable --now samba
#systemctl enable --now bind
Примечание
# host -t A test.alt
test.alt has address 192.168.0.132
test.alt has address 192.168.0.133
В списке адресов должен отображаться IP-адрес добавленного контроллера домена.
# samba-tool drs showrepl --summary
Default-First-Site-Name\DC1 via RPC DSA object GUID: 10e22808-960e-4cb3-8724-abd2223555cd Last attempt @ Sat Jun 15 10:27:21 2024 EET was successful 0 consecutive failure(s). Last success @ Sat Jun 15 10:27:21 2024 EETВ пункте Last attempt должны стоять актуальные дата и время, идентичные указанным в строке Last success (отображает время последней репликации). Также должно быть «0 consecutive failure(s)».
# samba-tool user add testuser --random-password
User 'testuser' added successfully
# samba-tool user list | grep testuser
testuser
# samba-tool domain level show
Domain and forest function level for domain 'DC=test,DC=alt'
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
Таблица 6.1. Параметры контроллеров домена
|
IP-адрес
|
Полное доменное имя (FQDN)
|
---|---|---|
Существующий RWDC
|
192.168.0.132
|
dc1.test.alt
|
Добавляемый RODC
|
192.168.0.134
|
rodc.test.alt
|
# hostnamectl set-hostname rodc.test.alt
Примечание
# apt-get install task-samba-dc
/etc/resolv.conf
должен быть добавлен первый DC как nameserver:
#echo "name_servers=192.168.0.132" >> /etc/resolvconf.conf
#echo "search_domains=test.alt" >> /etc/resolvconf.conf
#resolvconf -u
#cat /etc/resolv.conf
search test.alt nameserver 192.168.0.132 nameserver 8.8.8.8
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba
#rm -rf /var/cache/samba
#mkdir -p /var/lib/samba/sysvol
# samba-tool dns add 192.168.0.132 test.alt RODC A 192.168.0.134 -Uadministrator
Password for [TEST\administrator]:
Record added successfully
Предупреждение
Примечание
samba-tool dns add
см. в разделе Администрирование DNS
/etc/krb5.conf
):
[libdefaults] default_realm = TEST.ALT dns_lookup_realm = false dns_lookup_kdc = true [realms] TEST.ALT = { kdc = rodc.test.alt kdc = dc1.test.alt default_domain = TEST.ALT }
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
Предупреждение
# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@TEST.ALT
Valid starting Expires Service principal
27.03.2024 14:14:36 28.03.2024 00:14:36 krbtgt/TEST.ALT@TEST.ALT
renew until 28.03.2024 14:14:32
# samba-tool domain join
test.alt RODC -Uadministrator@TEST.ALT \
--realm=test.alt --option="dns forwarder=8.8.8.8"
Если всё нормально, в конце будет выведена информация о присоединении к домену:
Joined domain TEST (SID S-1-5-21-578923263-1107570656-1287136478) as an RODC
Примечание
dns forwarder
, чтобы на новом сервере была настроена пересылка запросов. Форвардером может быть как вышестоящий DNS-сервер организации, так и публичные от google или yandex, например:
--option="dns forwarder=8.8.8.8"
--rfc2307
, то и для текущего необходимо это учесть, указав параметр:
--option='idmap_ldb:use rfc2307 = yes'
# systemctl enable --now samba
Примечание
samba-tool domain join
можно воспользоваться командой:
# samba-tool domain join --help
Примечание
Примечание
#samba-tool group listmembers "Denied RODC Password Replication Group"
Read-only Domain Controllers Domain Admins Enterprise Admins Domain Controllers Schema Admins krbtgt Group Policy Creator Owners Cert Publishers #samba-tool group listmembers "Allowed RODC Password Replication Group"
# samba-tool rodc preload (<SID>|<DN>|<accountname>)+ ... [опции]
Возможные опции:
--server
— обычный контроллер домена, который будет выступать источником данных при репликации;
--file
— имя файла со списком реплицируемых объектов, либо «-» для ввода списка через стандартный поток ввода (stdin);
--ignore-errors
— игнорировать ошибки репликации при загрузке нескольких объектов.
--server
контроллера домена. Для идентификации объектов могут использоваться идентификаторы безопасности (SID), DN или имена учетных записей SAM (samAccountName).
Примечание
samba-tool rodc preload
можно воспользоваться командой:
# samba-tool rodc preload --help
#samba-tool user add
ivanov --given-name='Иван' \ --surname='Иванов' --mail-address='ivanov@test.alt' New Password: Retype Password: User 'ivanov' added successfully #samba-tool group addmembers "Allowed RODC Password Replication Group" ivanov
Added members to group Allowed RODC Password Replication Group
# samba-tool rodc preload ivanov --server=dc1.test.alt
Replicating DN CN=Иван Иванов,CN=Users,DC=test,DC=alt
Exop on[CN=Иван Иванов,CN=Users,DC=test,DC=alt] objects[1] linked_values[0]
$kinit ivanov
Password for ivanov@TEST.ALT: $kinit kim
kinit: A service is not available that is required to process the request while getting initial credentials
# samba-tool domain level show
Domain and forest function level for domain 'DC=test,DC=alt'
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
ad dc functional level
файла /etc/samba/smb.conf
. Возможные значения:
# samba-tool domain schemaupgrade --schema=<SCHEMA>
где SCHEMA — схема, до которой необходимо выполнить обновление (по умолчанию 2019).
# samba-tool domain functionalprep --function-level=<FUNCTION_LEVEL>
где FUNCTION_LEVEL — функциональный уровень, к которому нужно подготовиться (по умолчанию 2016).
# samba-tool domain level raise --domain-level=<DOMAIN_LEVEL> --forest-level=<FOREST_LEVEL>
где:
Примечание
ad dc functional level
в файле /etc/samba/smb.conf
вручную, защита от несовпадения функций между контроллерами домена снижается. Поэтому на всех контроллерах домена должна использоваться одна и та же версия Samba, чтобы гарантировать, что поведение, наблюдаемое клиентом, будет одинаковым независимо от того, к какому контроллеру домена осуществляется соединение.
/etc/samba/smb.conf
добавить строку:
ad dc functional level = 2016
# systemctl restart samba.service
# samba-tool domain schemaupgrade --schema=2019
# samba-tool domain functionalprep --function-level=2016
# samba-tool domain level raise --domain-level=2016 --forest-level=2016
Domain function level changed!
Forest function level changed!
All changes applied successfully!
# samba-tool domain level show
Domain and forest function level for domain 'DC=test,DC=alt'
Forest function level: (Windows) 2016
Domain function level: (Windows) 2016
Lowest function level of a DC: (Windows) 2016
Примечание
# ldbsearch -H /var/lib/samba/private/sam.ldb -s base -b CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System,DC=test,DC=alt cn
# record 1
dn: CN=ypservers,CN=ypServ30,CN=RpcServices,CN=System,DC=test,DC=alt
cn: ypservers
# returned 1 records
# 1 entries
# 0 referrals
Если команда ldbsearch
возвращает одну запись (returned 1 records), расширения NIS установлены и больше ничего делать не нужно.
Предупреждение
# samba-tool fsmo show | grep SchemaMasterRole
SchemaMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
В выводе команды показано имя DC, которому принадлежит эта роль. Все дальнейшие дествия следует выполнять на этом DC.
samba
:
# systemctl stop samba
ypServ30.ldif
, например:
# cp /usr/share/samba/setup/ypServ30.ldif /tmp/
# sed -i -e 's/\${DOMAINDN}/DC=test,DC=alt/g' -e 's/\${NETBIOSNAME}/DC/g' -e 's/\${NISDOMAIN}/test/g' /tmp/ypServ30.ldif
/var/lib/samba/private/sam.ldb
:
# ldbmodify -H /var/lib/samba/private/sam.ldb /tmp/ypServ30.ldif --option="dsdb:schema update allowed"=true
/etc/samba/smb.conf
в секцию [global]
добавить параметр:
idmap_ldb:use rfc2307 = yes
# systemctl start samba
# systemctl stop samba
# samba_upgradedns --dns-backend=BIND9_DLZ
/etc/samba/smb.conf
:
server services
, добавить в секцию global
строку:
server services = -dns
global
есть параметр server services
, удалить опцию dns
, например:
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate
bind
и сделать её запускаемой по умолчанию:
# systemctl enable --now bind
samba
:
# systemctl start samba
bind
и убрать её из автозагрузки:
# systemctl disable --now bind
samba
:
# systemctl stop samba
# samba_upgradedns --dns-backend=SAMBA_INTERNAL
/etc/samba/smb.conf
:
server services
есть только опция -dns
, удалить этот параметр из файла (удалить всю строку):
server services = -dns
global
есть параметр server services
, добавить в него опцию dns
, например:
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate, dns
samba
:
# systemctl start samba
Примечание
server services
, удаление параметра server services
включает все серверы по умолчанию, включая DNS-сервер.
ps
:
# ps axf | grep -E "samba|smbd|winbindd"
…
3078 ? S 0:00 /usr/sbin/samba --no-process-group
3091 ? S 0:00 \_ /usr/sbin/samba --no-process-group
3092 ? S 0:00 | \_ /usr/sbin/samba --no-process-group
3096 ? S 0:00 | \_ /usr/sbin/samba --no-process-group
3101 ? Ss 0:00 | \_ /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
3138 ? S 0:00 | \_ /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
3139 ? S 0:00 | \_ /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
3149 ? S 0:00 | \_ /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
3150 ? S 0:00 | \_ /usr/sbin/smbd -D --option=server role check:inhibit=yes --foreground
…
3127 ? Ss 0:00 | \_ /usr/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
3140 ? S 0:00 | \_ /usr/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
…
samba
, smbd
и winbindd
должны быть дочерними процессами одного процесса samba
.
# samba -i
# ss -tulpn | grep ":53"
/var/lib/samba/bind-dns
создается только в том случае, если произошло одно из следующих трёх событий:
--dns-backend=BIND9_DLZ
;
--dns-backend=BIND9_DLZ
;
samba_upgradedns
и опции --dns-backend=BIND9_DLZ
.
# samba-tool fsmo show
SchemaMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
objectGUID
контроллера домена:
# ldbsearch -H /var/lib/samba/private/sam.ldb '(invocationId=*)' --cross-ncs objectguid | grep -A1 DC3
dn: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
objectGUID: 512f03b4-7042-434d-93c0-61dd6a2ea895
# samba-tool domain demote -Uadministrator
Using dc1.test.alt as partner server for the demotion
Password for [TEST\administrator]:
Deactivating inbound replication
Asking partner server dc1.test.alt to synchronize from us
Changing userControl and container
Removing Sysvol reference: CN=DC3,CN=Enterprise,CN=Microsoft System Volumes,CN=System,CN=Configuration,DC=test,DC=alt
Removing Sysvol reference: CN=DC3,CN=test.alt,CN=Microsoft System Volumes,CN=System,CN=Configuration,DC=test,DC=alt
Removing Sysvol reference: CN=DC3,CN=Domain System Volumes (SYSVOL share),CN=File Replication Service,CN=System,DC=test,DC=alt
Removing Sysvol reference: CN=DC3,CN=Topology,CN=Domain System Volume,CN=DFSR-GlobalSettings,CN=System,DC=test,DC=alt
updating ForestDnsZones.test.alt keeping 2 values, removing 1 values
updating test.alt keeping 6 values, removing 1 values
…
Demote successful
# systemctl stop samba
# systemctl stop bind
Важно
Важно
# samba-tool fsmo show
SchemaMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
objectGUID
контроллера домена:
# ldbsearch -H /var/lib/samba/private/sam.ldb '(invocationId=*)' --cross-ncs objectguid | grep -A1 DC3
dn: CN=NTDS Settings,CN=DC3,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
objectGUID: 512f03b4-7042-434d-93c0-61dd6a2ea895
# samba-tool domain demote --remove-other-dead-server=DC3
Важно
Предупреждение
Примечание
# samba-tool drs replicate <destinationDC> <sourceDC> <NC> [options]
# samba-tool drs replicate
dc2.test.alt \
dc1.test.alt dc=test,dc=alt -Uadministrator
Password for [TEST\administrator]:
Replicate from dc1.test.alt to dc2.test.alt was successful.
Сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP.
# samba-tool drs replicate
dc1.test.alt \
dc2.test.alt dc=test,dc=alt -Uadministrator
Password for [TEST\administrator]:
Replicate from dc2.test.alt to dc1.test.alt was successful.
Сначала указывается приемник, затем источник, после этого реплицируемая ветка в LDAP.
Примечание
# samba-tool drs showrepl
Примечание
samba-tool drs showrepl
отображает установленные связи с другими контроллерами домена в лесу Альт Домен. Соединения отображаются с точки зрения контроллера домена, на котором запускается команда. Пример:
# samba-tool drs showrepl
Default-First-Site-Name\DC2
DSA Options: 0x00000001
DSA object GUID: 26a8d3d0-66b3-4f6c-8457-0def172d4af3
DSA invocationId: 83fb4bbf-9f63-44d6-acbd-c0db4e9e839a
==== INBOUND NEIGHBORS ====
CN=Schema,CN=Configuration,DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ Wed May 22 15:38:51 2024 EET was successful
0 consecutive failure(s).
Last success @ Wed May 22 15:38:51 2024 EET
CN=Configuration,DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ Wed May 22 15:38:51 2024 EET was successful
0 consecutive failure(s).
Last success @ Wed May 22 15:38:51 2024 EET
DC=ForestDnsZones,DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ Wed May 22 15:38:50 2024 EET was successful
0 consecutive failure(s).
Last success @ Wed May 22 15:38:50 2024 EET
DC=DomainDnsZones,DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ Wed May 22 15:38:51 2024 EET was successful
0 consecutive failure(s).
Last success @ Wed May 22 15:38:51 2024 EET
DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ Wed May 22 15:38:51 2024 EET was successful
0 consecutive failure(s).
Last success @ Wed May 22 15:38:51 2024 EET
==== OUTBOUND NEIGHBORS ====
CN=Schema,CN=Configuration,DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
CN=Configuration,DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
DC=ForestDnsZones,DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
DC=DomainDnsZones,DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
DC=test,DC=alt
Default-First-Site-Name\DC1 via RPC
DSA object GUID: e72594f1-4986-4ac9-8cdd-9481cff5e243
Last attempt @ NTTIME(0) was successful
0 consecutive failure(s).
Last success @ NTTIME(0)
==== KCC CONNECTION OBJECTS ====
Connection --
Connection name: 56a02972-69f5-42fb-965a-7125f09c96d1
Enabled : TRUE
Server DNS name : dc1.test.alt
Server DN name : CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
TransportType: RPC
options: 0x00000001
Warning: No NC replicated for Connection!
INBOUND NEIGHBORS
и OUTBOUND NEIGHBORS
. В каждом разделе должно быть по 5 пунктов:
CN=Schema,CN=Configuration,DC=test,DC=alt DC=ForestDnsZones,DC=test,DC=alt DC=test,DC=alt DC=DomainDnsZones,DC=test,DC=alt CN=Configuration,DC=test,DC=alt
INBOUND NEIGHBORS
в пункте Last attempt
должны стоять актуальные дата и время, идентичные указанным в строке Last success
(отображает время последней репликации). Должно быть 0 consecutive failure(s)
.
INBOUND NEIGHBORS
есть записи:
Last attempt @ NTTIME(0) was successful … Last success @ NTTIME(0)необходимо подождать (соединение устанавливается).
KCC CONNECTION OBJECTS
быть приведён список всех контроллеров домена, чьи KCC установили соглашения о репликации с текущим контроллером домена. В случае когда контроллер домена только только был добавлен в домен и запущен, может пройти до 15 минут до того, как соглашения будут установлены.
Примечание
No NC replicated for Connection!можно игнорировать. Оно появляется из-за того, что при регистрации нового DC Samba неверно устанавливает некоторые флаги репликации.
# samba-tool ldapcmp ldap://dc1.test.alt ldap://dc2.test.alt -Uadministrator
Password for [TEST\administrator]:
* Comparing [DOMAIN] context...
* Objects to be compared: 274
* Result for [DOMAIN]: SUCCESS
* Comparing [CONFIGURATION] context...
* Objects to be compared: 1625
* Result for [CONFIGURATION]: SUCCESS
* Comparing [SCHEMA] context...
* Objects to be compared: 1739
* Result for [SCHEMA]: SUCCESS
* Comparing [DNSDOMAIN] context...
* Objects to be compared: 41
* Result for [DNSDOMAIN]: SUCCESS
* Comparing [DNSFOREST] context...
* Objects to be compared: 18
* Result for [DNSFOREST]: SUCCESS
repadmin
:
> repadmin /showrepl
# ldbsearch -H /var/lib/samba/private/sam.ldb '(fromServer=*CN=WindowsDC*)' --cross-ncs dn
# record 1
dn: CN=a46c895e-658b-463e-9ab5-a1c237fca4b1,CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
# returned 1 records
# 1 entries
# 0 referrals
В этом примере возвращается один партнер по репликации (имя хоста: DC2). Имя хоста партнера по репликации является частью возвращаемого отличительного имени (DN).
samba-tool drs showrepl
для отображения статуса репликации каталога.
INBOUND NEIGHBORS
на контроллере домена Samba, а статусы успешны.
Sysvol
присутствует на всех контроллерах домена и используется для хранения логон скриптов и объектов групповых политик. Отсутствие репликации этого каталога приведет к неправильной работе групповых политик и сценариев входа.
Важно
idmap.ldb
из контроллера домена, имеющего роль FSMO PDC_Emulator, со всеми другими контроллерами домена. Это гарантирует, что все контроллеры домена будут использовать одни и те же идентификаторы. Если файл idmap.ldb
не синхронизируется, на каждом контроллере домена будут разные идентификаторы.
idmap.ldb
(см. раздел Сопоставление встроенных идентификаторов пользователей и групп) необходимо при первом присоединении к новому контроллеру домена, а затем периодически (для того чтобы гарантировать постоянство идентификаторов не нужно синхронизировать idmap.ldb
каждый раз при синхронизации SysVol, но это следует делать периодически).
sysvol
расположен в /var/lib/samba/
как на DC1, так и на DC2;
rsync
расположен в /usr/bin/rsync
;
unison
расположен в /usr/bin/unison
;
/var/log/sysvol-sync.log
;
# apt-get install rsync unison
unison
может некорректно работать. Для того чтобы при повторной работе unison
использовал существующее SSH-соединение вместо установки нового, необходимо выполнить следующие команды:
#mkdir ~/.ssh/ctl
#cat << EOF > ~/.ssh/config
Host * ControlMaster auto ControlPath ~/.ssh/ctl/%h_%p_%r ControlPersist 1 EOF
~/.ssh/ctl
.
/root/.unison/
:
# mkdir /root/.unison
/root/.unison/default.prf
со следующим содержимым:
# Список каталогов, которые будут синхронизированы root = /var/lib/samba root = ssh://root@DC2.test.alt//var/lib/samba # Список подкаталогов, которые нужно синхронизировать path = sysvol # Список подкаталогов, которые нужно игнорировать #ignore = Path auto=true batch=true perms=0 rsync=true maxthreads=1 retry=3 confirmbigdeletes=false servercmd=/usr/bin/unison copythreshold=0 copyprog = /usr/bin/rsync -XAavz --rsh='ssh -p 22' --inplace --compress copyprogrest = /usr/bin/rsync -XAavz --rsh='ssh -p 22' --partial --inplace --compress copyquoterem = true copymax = 1 # Сохранять журнал с результатами работы в отдельном файле logfile = /var/log/sysvol-sync.log
# touch /var/log/sysvol-sync.log
# apt-get install rsync unison
Важно
sysvol
.
# /usr/bin/rsync
-XAavz --log-file /var/log/sysvol-sync.log \
--delete-after -f"+ */" -f"- *" /var/lib/samba/sysvol \
root@dc2.test.alt:/var/lib/samba && /usr/bin/unison
В этой команде утилита rsync
создает структуры каталогов с расширенными атрибутами, а затем утилита unison
копирует только эти расширенные атрибуты файлов.
# crontab -e
*/5 * * * * /usr/bin/unison -silent
rsync
и unison
не должны выполняться в данный момент (можно проверить командой ps -aux
);
/root/.unison
;
sysvol
и повторить синхронизацию;
/root/.unison/default.prf
в другой файл, например: /root/.unison/sync_dc2.prf
.
/root/.unison/dc2.prf
изменить значение параметра root
.
* * * * * /usr/bin/unison sync_dc2 -silent * * * * * /usr/bin/unison sync_dc3 -silent …
sysvol
расположен в /var/lib/samba/
как на DC1, так и на DC2;
rsync
расположен в /usr/bin/rsync
;
osync
расположен в /usr/bin/osync
;
/var/log/osync_*.log
;
# apt-get install rsync osync
/etc/osync/sync.conf
:
#!/usr/bin/env bash INSTANCE_ID="sync_sysvol" # Путь до SysVol на текущем сервере INITIATOR_SYNC_DIR="/var/lib/samba/sysvol" # Путь до SysVol на удалённом сервере TARGET_SYNC_DIR="ssh://root@DC2:22//var/lib/samba/sysvol" # ssh ключ root SSH_RSA_PRIVATE_KEY="/root/.ssh/id_ed25519" # Удалённые хосты которые osync пингует перед стартом REMOTE_3RD_PARTY_HOSTS="" # Сохранять xattr PRESERVE_ACL=yes # Сохранять xattr PRESERVE_XATTR=yes # Сохранять резервную копию удалённых файлов SOFT_DELETE=yes DESTINATION_MAILS="your@test.alt" REMOTE_RUN_AFTER_CMD="/usr/bin/samba-tool ntacl sysvolreset"
# apt-get install rsync
Важно
sysvol
.
# /usr/bin/osync.sh /etc/osync/sync.conf --dry --verbose
Если команда выполнилась без ошибок, можно удалить параметр --dry
и запустить команду синхронизации снова:
# /usr/bin/osync.sh /etc/osync/sync.conf --verbose
В результате sysvol
будет синхронизирован на обоих серверах.
Примечание
sysvol
параметры SOFT_DELETE
(сохранять резервные копии удалённых файлов) и CONFLICT_BACKUP
(сохранять резервные копии файлов на целевой реплике, если они обновлены из исходной реплики) установлены в значение yes, то на источнике и получателе репликации необходимо создать каталоги .osync_workdir/deleted
и .osync_workdir/backup
:
#mkdir /var/lib/samba/sysvol/.osync_workdir/deleted
#mkdir /var/lib/samba/sysvol/.osync_workdir/backup
# crontab -e
*/5 * * * * root /usr/bin/osync.sh /etc/osync/sync.conf --silent
rsync
и osync
не выполняются в данный момент (можно проверить, выполнив команду ps -aux| grep sync
);
.osync_workdir
на DC1 и DC2 в /var/lib/samba/sysvol/
;
sysvol
и повторить синхронизацию;
/etc/osync/sync.conf
в другой файл, например: /etc/osync/sync_dc3.conf
.
/etc/osync/sync_dc3.conf
изменить значение параметра TARGET_SYNC_DIR
.
# crontab -e
*/5 * * * * root /usr/bin/osync.sh /etc/osync/sync.conf --silent
*/5 * * * * root /usr/bin/osync.sh /etc/osync/sync_dc3.conf --silent
…
xidNumber
в idmap.ldb
. Из-за особенностей работы idmap.ldb
нельзя гарантировать, что каждый контроллер домена будет использовать один и тот же идентификатор для данного пользователя или группы.
idmap.ldb
с контроллера домена, на котором установлена роль FSMO Эмулятор PDC (см. Роли FSMO), со всеми остальными контроллерами домена. Для достижения наилучших результатов следует регулярно синхронизировать idmap.ldb
.
# apt-get install ldb-tools
/var/lib/samba/private/idmap.ldb
:
#rm -f /var/lib/samba/private/idmap.ldb.bak
#tdbbackup -s .bak /var/lib/samba/private/idmap.ldb
#Создание резервной копии idmap.ldb 0 3 * * * rm -f /var/lib/samba/private/idmap.ldb.bak && tdbbackup -s .bak /var/lib/samba/private/idmap.ldb >/dev/null 2>&1
/var/lib/samba/private/
с удалением суффикса .bak (заменить существующий файл):
# rsync -a dc1:/var/lib/samba/private/idmap.ldb.bak /var/lib/samba/private/idmap.ldb
# net cache flush
# if ! samba-tool ntacl sysvolcheck; then samba-tool ntacl sysvolreset; fi
#Синхронизация idmap.ldb 15 4 * * * rsync -a dc1:/var/lib/samba/private/idmap.ldb.bak /var/lib/samba/private/idmap.ldb && net cache flush && if ! samba-tool ntacl sysvolcheck; then samba-tool ntacl sysvolreset; fi >/dev/null 2>&1
Важно
idmap.ldb
необходим перезапуск Samba (systemctl restart samba.service
), т.к. этот файл держится открытым процессами Samba.
idmap.ldb
можно избежать, если на всех контроллерах добавить следующие параметры в smb.conf
в секции [sysvol] (и в [netlogon]) строки:
acl_xattr:ignore system acls = yes acl_xattr:default acl style = windowsПри использовании этих параметров значения расширенных атрибутов файлов (xattr security.NTACL) на всех контроллерах будут одинаковы, независимо от uid/gid. Именно это и является проблемой при использовании
rsync
, т.к. при синхронизации rsync
передаёт имена пользователей/групп и они разыменовываются в uid/gid уже «на месте», а xattr security.NTACL остаётся неизменным и, в конфигурации по умолчанию (без вышеуказанных параметров), зависит от значений uid/gid/facl.
Важно
Содержание
Таблица 13.1. Сравнение Winbind и SSSD
Категория
|
Описание
|
Winbind
|
SSSD
|
---|---|---|---|
Аутентификация
|
Проверка подлинности с использованием Kerberos
|
Да
|
Да
|
Проверка подлинности LDAP
|
Да
|
Да
|
|
Поддержка нескольких доменов AD
|
Да
|
Да
|
|
Поддержка лесов AD
|
Да
|
Да
|
|
Поддержка гетерогенных сетей AD/FreeIPA
|
Нет
|
Да
|
|
Безопасность
|
Простота настройки безопасной конфигурации
|
Нет
|
Да
|
Система имеет идентификатор и её ключ используется для защиты доступа к центральному серверу
|
Да
|
Да
|
|
Поддержка NTLM
|
Да
|
Нет
|
|
Поиск и сопоставление идентификаторов
|
Динамическое сопоставление идентификаторов AD SID
|
Да
|
Да
|
Использование преимуществ конкретных расширений и протоколов AD
|
Да
|
Да
|
|
DNS
|
Обновление и очистка DNS AD
|
Нет
|
Да
|
Поддержка сайтов AD DNS
|
Да
|
Да
|
|
Обмен файлами
|
Интеграция с Samba FS
|
Да
|
Да
|
Интеграция с клиентом CIFS
|
Да
|
Да
|
|
Служба печати
|
Сервер печати CUPS с использованием Kerberos
|
Да
|
Да
|
Политики
|
Централизованное управление контролем доступа на основе хоста через GPO
|
Нет
|
Да
|
Интеграция с другими сервисами и приложениями
|
Интеграция с основными утилитами, такими как SSH, sudo, automount
|
Нет
|
Да
|
Расширенные интерфейсы идентификации по локальной шине сообщений D-Bus
|
Нет
|
Да
|
|
Специальные функции для приложений (Docker, Cockpit, GSS Proxy и др.)
|
Нет
|
Да
|
Примечание
# hostnamectl set-hostname host-01.test.alt
/etc/net/ifaces/enp0s3/resolv.conf
со следующим содержимым:
nameserver 192.168.0.132где 192.168.0.132 — IP-адрес DNS-сервера домена.
/etc/resolvconf.conf
добавить/отредактировать следующие параметры:
interface_order='lo lo[0-9]* lo.* enp0s3' search_domains=test.altгде enp0s3 — интерфейс, на котором доступен контроллер домена, test.alt — домен.
# resolvconf -u
Примечание
/etc/resolv.conf
должны появиться строки:
search test.alt nameserver 192.168.0.132
nslookup
и host
.
#nslookup dc1.test.alt
Server: 192.168.0.132 Address: 192.168.0.132#53 Name: dc1.test.alt Address: 192.168.0.132 #host dc1.test.alt
dc1.test.alt has address 192.168.0.132
#nslookup 192.168.0.132
132.0.168.192.in-addr.arpa name = dc1.alt.test. #host 192.168.0.132
132.0.168.192.in-addr.arpa domain name pointer dc1.alt.test.
$ nslookup
> set type=SRV
> _ldap._tcp.test.alt
Server: 192.168.0.132
Address: 192.168.0.132#53
_ldap._tcp.test.alt service = 0 100 389 dc2.test.alt.
_ldap._tcp.test.alt service = 0 100 389 dc1.test.alt.
> exit
или:
$ host -t SRV _ldap._tcp.test.alt
_ldap._tcp.test.alt has SRV record 0 100 389 dc1.test.alt.
_ldap._tcp.test.alt has SRV record 0 100 389 dc2.test.alt.
system-auth
:
# system-auth
<Действие> <Опции>
В таблице Параметры команды system-auth приведено описание параметров команды system-auth
.
Таблица 15.1. Параметры команды system-auth
Параметр
|
Описание
|
---|---|
Действие
|
|
status
|
Показать текущую схему аутентификацию
|
list
|
Вывести список доступных схем аутентификации
|
write
|
Установить заданные параметры аутентификации
|
Опция
|
|
-d
|
Включить отладку
|
--winbind
|
Использовать Samba Winbind для подключения системы к домену (если этот параметр не указан, будет использован SSSD)
|
--gpo
|
Включить групповые политики на машине
|
--createcomputer=OU/SubOU
|
Субконтейнер в домене (организационная единица/подразделение), куда будет помещена машина при вводе в домен
|
--windows2003
|
Ввести станцию в домен windows 2003
|
--version
|
Вывести версию программы
|
system-auth
:
# system-auth status
ad TEST.ALT HOST-01 TEST
# system-auth write local
# system-auth write ad
<Домен> <Имя компьютера> <Рабочая группа> <Имя пользователя> [<Пароль>] [--windows2003] [--createcomputer="COMPUTEROU/SubCOMPUTEROU/SubSubCOMPUTEROU"] [--winbind] [--gpo]
man realm
man sssd-ad
man sssd
# apt-get install task-auth-ad-sssd
# system-auth write ad test.alt host-01 test 'administrator' 'Pa$$word'
Joined 'HOST-01' to dns domain 'test.alt'
где:
Примечание
# getent passwd ivanov
ivanov:*:1187401105:1187400513:Иван Иванов:/home/TEST.ALT/ivanov:/bin/bash
# net ads info
LDAP server: 192.168.0.132
LDAP server name: dc1.test.alt
Realm: TEST.ALT
Bind Path: dc=TEST,dc=ALT
LDAP port: 389
Server time: Ср, 27 мар 2024 10:36:51 EET
KDC server: 192.168.0.132
Server time offset: 2
Last machine account password change: Ср, 20 мар 2024 11:13:27 EET
# net ads testjoin
Join is OK
Примечание
# samba-tool user list
Примечание
man realm
man winbindd
# apt-get install task-auth-ad-winbind
# system-auth write ad test.alt host-02 test 'administrator' 'Pa$$word' --winbind
Joined 'HOST-02' to dns domain 'test.alt'
где:
# getent passwd ivanov
ivanov:*:1187401105:1187400513:Иван Иванов:/home/TEST.ALT/ivanov:/bin/bash
# net ads info
LDAP server: 192.168.0.132
LDAP server name: dc1.test.alt
Realm: TEST.ALT
Bind Path: dc=TEST,dc=ALT
LDAP port: 389
Server time: Ср, 27 мар 2024 10:36:51 EET
KDC server: 192.168.0.132
Server time offset: 2
Last machine account password change: Ср, 20 мар 2024 11:13:27 EET
# net ads testjoin
Join is OK
Примечание
# samba-tool user list
Примечание
# control lightdm-greeter-hide-users
В команду можно передать следующие параметры:
/etc/lightdm/lightdm-gtk-greeter.conf
(группа [greeter]), необходимо указать:
enter-username = true
Примечание
# control pam_canonicalize_user enabled
или в файле /etc/pam.d/system-auth-common
раскомментировать строку:
auth required pam_canonicalize_user.so
#rolelst
domain users:users domain admins:localadmins localadmins:wheel,vboxadd,vboxusers powerusers:remote,vboxadd,vboxusers users:cdwriter,cdrom,audio,video,proc,radio,camera,floppy,xgrp,scanner,uucp,vboxusers,fuse,vboxadd vboxadd:vboxsf #id ivanov
uid=906201103(ivanov) gid=906200513(domain users) группы=906200513(domain users),906201107(sales), 906201114(office),100(users),80(cdwriter),22(cdrom),81(audio),475(video),19(proc), 83(radio),444(camera),71(floppy),498(xgrp),499(scanner),14(uucp),462(vboxusers),464(fuse),488(vboxadd),487(vboxsf)
# samba-tool group add 'PC Admins'
Added group PC Admins
Добавить туда необходимых пользователей (например, пользователя ivanov):
# samba-tool group addmembers 'PC Admins' ivanov
Added members to group PC Admins
Затем на машине, введённой в домен, добавить роль для данной группы:
#После этого пользователь, входящий в группу PC Admins, сможет получать права администратора.roleadd 'PC Admins' localadmins
#rolelst
domain users:users domain admins:localadmins pc admins:localadmins localadmins:wheel,vboxadd,vboxusers powerusers:remote,vboxadd,vboxusers users:cdwriter,cdrom,audio,video,proc,radio,camera,floppy,xgrp,scanner,uucp,vboxusers,fuse,vboxadd vboxadd:vboxsf
net
подключается к IP-адресу 127.0.0.1. Если Samba не прослушивает петлевой интерфейс, соединение не устанавливается. Например:
# net rpc rights list -U administrator
Could not connect to server 127.0.0.1
Connection failed: NT_STATUS_CONNECTION_REFUSED
Примечание
-I <IP-адрес>
или -S <Имя хоста>
в команду net
:
# net rpc rights list -U administrator -I 192.168.0.132
Password for [TEST\administrator]:
SeMachineAccountPrivilege Add machines to domain
SeTakeOwnershipPrivilege Take ownership of files or other objects
…
getent passwd
и getent group
нельзя увидеть доменных пользователей и группы. Этот функционал отключен по умолчанию, для того чтобы сократить нагрузку на серверы. Поэтому для проверки необходимо указать точное имя пользователя:
# getent passwd <имя_пользователя>
Примечание
# samba-tool user list
getent passwd <имя_пользователя>
ничего не возвращает, следует попробовать выполнить команду:
# getent passwd <рабочая_группа>\<имя_пользователя>
Например:
# getent passwd "TEST\ivanov"
Если эта команда работает, а первая нет, то необходимо добавить следующую строку в файл smb.conf
:
winbind use default domain = yes
realm leave
. Эта команда удалит конфигурацию домена из SSSD и локальной системы:
# realm leave test.alt
-U
:
# realm leave test.alt -U <пользователь>
Сначала команда пытается подключиться без использования учетных данных, но при необходимости запрашивает пароль.
--remove
:
# realm leave --remove test.alt
man realm
(8).
Примечание
# control system-auth
local
Примечание
# control lightdm-greeter-hide-users show
или в файле /etc/lightdm/lightdm.conf
закомментировать строку в группе [SeatDefaults]
:
#greeter-hide-users=true
# realm leave --remove <домен>
Возможно также понадобится удалить закешированные записи:
# sss_cache -E
/etc/samba/smb.conf
, /etc/sssd/sssd.conf
и /etc/krb5.conf
к виду по умолчанию и повторно ввести машину в домен.
Примечание
/etc/samba/smb.conf
и /etc/krb5.conf
к виду по умолчанию можно в модуле ЦУС . В окне модуля следует установить отметку в поле Восстановить файлы конфигурации по умолчанию (smb.conf, krb5.conf, sssd.conf) и нажать кнопку :
Важно
Важно
/var/lib/samba/sysvol
SID'ы домена некорректно транслируются в UNIX user id и group id.
Важно
# apt-get install task-auth-ad-winbind gpupdate
/etc/krb5.conf
должны быть заданы следующие параметры:
/etc/krb5.conf
:
[logging] [libdefaults] dns_lookup_kdc = true dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = TEST.ALT [realms] [domain_realm]
/etc/samba/smb.conf
должны быть заданы следующие параметры:
/etc/samba/smb.conf
:
[global] dns forwarder = 8.8.8.8 netbios name = DC1 kerberos method = dedicated keytab dedicated keytab file = /etc/krb5.keytab realm = TEST.ALT server role = active directory domain controller workgroup = TEST idmap_ldb:use rfc2307 = yes template shell = /bin/bash template homedir = /home/TEST.ALT/%U wins support = no winbind use default domain = yes winbind enum users = no winbind enum groups = no winbind refresh tickets = yes winbind offline logon = yes [sysvol] path = /var/lib/samba/sysvol read only = No [netlogon] path = /var/lib/samba/sysvol/test.alt/scripts read only = No
/etc/nsswitch.conf
должны быть заданы следующие параметры:
/etc/nsswitch.conf
:
passwd: files winbind systemd shadow: tcb files winbind group: files [SUCCESS=merge] winbind role systemd gshadow: files hosts: files myhostname dns ethers: files netmasks: files networks: files protocols: files rpc: files services: files automount: files aliases: files
# control system-auth winbind
# apt-get install task-auth-ad-sssd gpupdate
/etc/krb5.conf
должны быть заданы следующие параметры:
/etc/krb5.conf
:
includedir /etc/krb5.conf.d/ [logging] [libdefaults] dns_lookup_kdc = true dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = TEST.ALT [realms] [domain_realm]
/etc/sssd/sssd.conf
должны быть заданы следующие параметры:
/etc/sssd/sssd.conf
:
[sssd] config_file_version = 2 services = nss, pam # Managed by system facility command: ## control sssd-drop-privileges unprivileged|privileged|default user = root # SSSD will not start if you do not configure any domains. domains = TEST.ALT [nss] [pam] [domain/TEST.ALT] id_provider = ad auth_provider = ad chpass_provider = ad access_provider = ad default_shell = /bin/bash fallback_homedir = /home/%d/%u debug_level = 0 ; cache_credentials = false ad_gpo_ignore_unreadable = true ad_gpo_access_control = permissive ad_update_samba_machine_account_password = true ad_maximum_machine_account_password_age = 0
/etc/samba/smb.conf
должны быть заданы следующие параметры:
/etc/samba/smb.conf
:
[global] dns forwarder = 8.8.8.8 netbios name = DC1 realm = TEST.ALT server role = active directory domain controller workgroup = TEST idmap_ldb:use rfc2307 = yes template shell = /bin/bash template homedir = /home/TEST.ALT/%U kerberos method = system keytab wins support = no winbind use default domain = yes winbind enum users = no winbind enum groups = no winbind refresh tickets = yes winbind offline logon = yes idmap config * : range = 200000-2000200000 idmap config * : backend = sss [sysvol] path = /var/lib/samba/sysvol read only = No [netlogon] path = /var/lib/samba/sysvol/test.alt/scripts read only = No
/etc/nsswitch.conf
должны быть заданы следующие параметры:
/etc/nsswitch.conf
:
passwd: files sss systemd shadow: tcb files sss group: files [SUCCESS=merge] sss role systemd gshadow: files hosts: files myhostname dns ethers: files netmasks: files networks: files protocols: files rpc: files services: files automount: files aliases: files
# control system-auth sss
# net ads keytab create
nscd
:
# systemctl disable --now nscd
sssd
:
# systemctl enable --now sssd
# roleadd 'domain users' users
# roleadd 'domain admins' localadmins
Важно
# gpupdate-setup enable --local-policy ad-domain-controller
Важно
#control sshd-allow-groups enabled
#control sshd-allow-groups-list remote
# control sshd-gssapi-auth enabled
sshd
:
# systemctl restart sshd
Примечание
pwdlastset
.
Примечание
Важно
Важно
sssd
и winbind
.
/etc/krb5.keytab
). Поэтому, во избежание конфликтов с sssd, следует отключить этот функционал.
/etc/samba/smb.conf
в секцию [global]
добавить параметр machine password timeout = 0
:
[global] machine password timeout = 0
sssd
для обновления пароля учётной записи компьютера использует утилиту adcli
. Необходимо убедиться, что пакет adcli установлен в системе:
# apt-get install adcli
ad_maximum_machine_account_password_age
(секция [domain/<Домен>]
) в /etc/sssd/sssd.conf
. Значение по умолчанию: 30 дней.
sssd
необходим доступ на запись в файл /etc/krb5.keytab
. Для этого не достаточно привилегий пользователя _sssd, от которого обычно и запускается sssd
. Необходимо запускать sssd
с правами суперпользователя. Для этого следует в файле /etc/sssd/sssd.conf
в секции [sssd]
изменить значение параметра user
на root:
[sssd] user = root [domain/<Домен>] ad_update_samba_machine_account_password = true
Важно
/etc/samba/smb.conf
:
machine password timeout = 0
/etc/sssd/sssd.conf
:
ad_update_samba_machine_account_password = true
/etc/sssd/sssd.conf
(секция [domain/<Домен>]
) значение параметра ad_maximum_machine_account_password_age
установить равным 0:
[domain/<Домен>] ad_maximum_machine_account_password_age = 0
/etc/samba/smb.conf
(секция [global]
) значение параметра machine password timeout
установить равным 0:
[global] machine password timeout = 0
# net ads info
…
Last machine account password change: Ср, 20 мар 2024 12:36:35 EET
# net ads info -U <user>
Last machine account password change
.
/etc/krb5.keytab
) содержит корректную информацию:
# klist -ke
Keytab name: FILE:/etc/krb5.keytab
KVNO Principal
---- --------------------------------------------------------------------------
1 host/work.test.alt@TEST.ALT (aes256-cts-hmac-sha1-96)
1 host/WORK@TEST.ALT (aes256-cts-hmac-sha1-96)
1 host/work.test.alt@TEST.ALT (aes128-cts-hmac-sha1-96)
1 host/WORK@TEST.ALT (aes128-cts-hmac-sha1-96)
1 host/work.test.alt@TEST.ALT (DEPRECATED:arcfour-hmac)
1 host/WORK@TEST.ALT (DEPRECATED:arcfour-hmac)
1 restrictedkrbhost/work.test.alt@TEST.ALT (aes256-cts-hmac-sha1-96)
1 restrictedkrbhost/WORK@TEST.ALT (aes256-cts-hmac-sha1-96)
1 restrictedkrbhost/work.test.alt@TEST.ALT (aes128-cts-hmac-sha1-96)
1 restrictedkrbhost/WORK@TEST.ALT (aes128-cts-hmac-sha1-96)
1 restrictedkrbhost/work.test.alt@TEST.ALT (DEPRECATED:arcfour-hmac)
1 restrictedkrbhost/WORK@TEST.ALT (DEPRECATED:arcfour-hmac)
1 WORK$@TEST.ALT (aes256-cts-hmac-sha1-96)
1 WORK$@TEST.ALT (aes128-cts-hmac-sha1-96)
1 WORK$@TEST.ALT (DEPRECATED:arcfour-hmac)
/etc/krb5.keytab
):
# kinit -k WORK\$@TEST.ALT
#klist
Ticket cache: KEYRING:persistent:0:0 Default principal: WORK$@TEST.ALT Valid starting Expires Service principal 21.04.2023 12:25:37 21.04.2023 22:25:37 krbtgt/TEST.ALT@TEST.ALT renew until 28.04.2023 12:25:37 #kdestroy -p WORK\$@TEST.ALT
Важно
/etc/krb5.keytab
) соответствует реальному имени машины (см. вывод команды hostnamectl
).
# apt-get update && apt-get dist-upgrade
/etc/krb5.keytab
;
Содержание
gpupdate
(см. Модуль клиентской машины для применения конфигурации). Инструмент рассчитан на работу на машине, введённой в Альт Домен.
Примечание
Таблица 23.1. Список групповых политик
Политика
|
Статус
|
Комментарий
|
---|---|---|
Стабильная
|
ADMX-файлы ALT (пакет admx-basealt)
|
|
Стабильная
|
ADMX-файлы ALT (пакет admx-basealt)
|
|
Стабильная
|
ADMX-файлы Mozilla Firefox (пакет admx-firefox)
|
|
Стабильная
|
ADMX-файлы Mozilla Thunderbird (пакет admx-thunderbird)
|
|
Стабильная
|
ADMX-файлы Google Chrome (пакет admx-chromium)
|
|
Стабильная
|
ADMX-файлы Yandex (пакет admx-yandex-browser)
|
|
Стабильная
|
|
|
Стабильная
|
ADMX-файлы ALT (пакет admx-basealt)
|
|
Экспериментальная
|
ADMX-файлы ALT (пакет admx-basealt)
|
|
Стабильная
|
ADMX-файлы ALT (пакет admx-basealt)
|
|
Стабильная
|
|
|
Экспериментальная
|
|
|
Стабильная
|
|
|
Стабильная
|
|
|
Экспериментальная
|
|
|
Экспериментальная
|
|
|
Экспериментальная
|
|
|
Экспериментальная
|
|
|
Экспериментальная
|
|
|
|
|
Примечание
# apt-get install admx-basealt admx-chromium admx-firefox admx-yandex-browser admx-msi-setup
admx-msi-setup
, которая загрузит и установит ADMX-файлы от Microsoft:
# admx-msi-setup
/usr/share/PolicyDefinitions
. Скопировать локальные ADMX-файлы в сетевой каталог sysvol (/var/lib/samba/sysvol/<DOMAIN>/Policies/
), выполнив команду:
# samba-tool gpo admxload -U Administrator
Примечание
admx-msi-setup
устанавливает последнюю версию ADMX от Microsoft (сейчас это «Microsoft Group Policy — Windows 10 October 2020 Update (20H2)»). С помощью параметров можно указать другой источник:
# admx-msi-setup -h
admx-msi-setup - download msi files and extract them in <destination-directory>
default value is /usr/share/PolicyDefinitions/.
Usage: admx-msi-setup [-d <destination-directory>] [-s <screen>]
Removing admx-msi-setup temporary files...
# apt-get install admc
admc
).
Примечание
$ kinit administrator
# apt-get install gpui
Примечание
#apt-get install admx-basealt admx-chromium admx-firefox admx-yandex-browser admx-msi-setup
#admx-msi-setup
$ kinit administrator
Таблица 24.1. Рекомендуемые компоненты для администрирования Samba AD
Компонент
|
Описание
|
---|---|
Group Policy Management
|
Предоставляет оснастки для групповой политики: средство управления (GPMC), редактор управления (gpedit) и начальный редактор GPO
|
AD DS Snap-Ins and Command-Line Tools
|
Предоставляет оснастку «Пользователи и компьютеры Active Directory» (ADUC) и «Сайты и службы Active Directory» (ADSS)
|
Server for NIS
|
Добавляет вкладку Атрибуты UNIX в свойства объектов ADUC. Позволяет настраивать атрибуты RFC2307. Эта функция не поддерживается в Windows Server 2016
|
Active Directory Module for Windows PowerShell
|
Включает командлеты Active Directory (AD) PowerShell
|
DNS Server tools
|
Оснастка MMC DNS для удаленного управления DNS
|
Таблица 24.2. Рекомендуемые компоненты для администрирования Samba AD
Компонент
|
Описание
|
---|---|
RSAT: Group Policy Management Tools
|
Включают консоль управления групповыми политиками (gpmc.msc), редактор управления групповыми политиками (gpme.msc) и редактор GPO инициализирующей программы групповой политики (gpedit.msc)
|
RSAT: Active Directory Domain Services and Lightweight Directory Services Tools
|
Предоставляет оснастку «Пользователи и компьютеры Active Directory» (ADUC) и «Сайты и службы Active Directory» (ADSS)
|
RSAT: DNS Server Tools
|
Включает оснастку «Диспетчер DNS» для удаленного управления DNS и программу командной строки
dnscmd.exe
|
RSAT: Remote Desktop Services Tool
|
Добавляет вкладку Профиль служб удаленных рабочих столов в свойства объекта пользователя ADUC и устанавливает оснастку MMC «Удаленные рабочие столы» для администрирования RDP-сервера (tsmmc.msc).
|
Таблица 24.3. Рекомендуемые компоненты для администрирования Samba AD
Компонент
|
Описание
|
---|---|
Group Policy Management Tools (Средства управления групповыми политиками)
|
Включает консоль управления групповыми политиками (gpmc.msc), редактор управления групповыми политиками (gpme.msc) и редактор GPO инициализирующей программы групповой политики (gpedit.msc)
|
AD DS Tools (Оснастки и программы командной строки доменных служб Active Directory)
|
Предоставляет оснастку «Пользователи и компьютеры Active Directory» (ADUC) и «Сайты и службы Active Directory» (ADSS)
|
Server for NIS Tools (Средства сервера для NIS)
|
Добавляет вкладку Атрибуты UNIX (UNIX Attributes) в свойства объектов ADUC. Позволяет настраивать атрибуты RFC2307. Включает программу командной строки
ypclear.exe
|
Active Directory Module for Windows PowerShell (Модуль Active Directory для Windows PowerShell)
|
Обеспечивает централизованную среду для управления службами каталогов
|
DNS Server tools (Средства серверов DNS)
|
Включает оснастку «Диспетчер DNS» для удаленного управления DNS и программу командной строки
dnscmd.exe
|
Remote Desktop Services Tool (Средства служб удалённых рабочих столов)
|
Добавляет вкладку Профиль служб удаленных рабочих столов в свойства объекта пользователя ADUC и устанавливает оснастку MMC «Удаленные рабочие столы» для администрирования RDP-сервера (tsmmc.msc).
|
# apt-get install gpupdate alterator-gpupdate
gpoa
— системная утилита, осуществляющая применение групповых политик для компьютера или пользователя (gpoa
без параметра отрабатывает только для машины, для пользователя нужно указывать username
);
gpupdate
— утилита, осуществляющая запрос на применение групповых политик. При запуске с привилегиями администратора может непосредственно выполнить применение групповых политик минуя необходимость повышения привилегий;
gpupdate-setup
— инструмент администрирования механизмов применения групповых политик. Позволяет включать и отключать применение групповых политик, а также задавать шаблон политики по умолчанию (Рабочая станция, Сервер, Контроллер домена).
gpoa
:
gpoa [-h] [--dc DC] [--nodomain] [--noupdate] [--noplugins] [--list-backends] [--loglevel LOGLEVEL] [пользователь]
Таблица 26.1. Опции команды gpoa
Ключ
|
Описание
|
---|---|
-h, --help
|
Вывести справку о команде
|
--dc DC
|
Указать полное имя (FQDN) контроллера домена для реплицирования SYSVOL
|
--nodomain
|
Работать без домена (применить политику по умолчанию)
|
--noupdate
|
Не пытаться обновить хранилище, только запустить appliers
|
--noplugins
|
Не запускать плагины
|
--list-backends
|
Показать список доступных бэкэндов
|
--loglevel LOGLEVEL
|
Установить уровень журналирования
|
пользователь
|
Имя пользователя домена
|
gpoa
:
# gpoa --loglevel 0
# gpoa --noupdate
# gpoa --dc dc1.test.alt --loglevel 3 ivanov
# gpoa --nodomain --loglevel 0
gpupdate
:
gpupdate [-h] [-u USER] [-t {ALL,USER,COMPUTER}] [-l LOGLEVEL] [-f] [-s]
Таблица 26.2. Опции команды gpupdate
Ключ
|
Описание
|
---|---|
-h, --help
|
Вывести справку о команде
|
-u USER, --user USER
|
Имя пользователя для обновления GPO
|
--target TARGET
|
Указать политики, которые нужно обновить (пользователя или компьютера). Возможные значения: All (по умолчанию), Computer, User
|
-l LOGLEVEL, --loglevel LOGLEVEL
|
Установить уровень журналирования
|
-f, --force
|
Принудительно загрузить политики (GPT) с контроллера
|
-s, --system
|
Запустить gpupdate в системном режиме
|
gpupdate
только для машины или самого себя.
gpupdate
:
$ gpupdate --target Computer
Apply group policies for computer.
$ gpupdate --target User
Apply group policies for kudrin.
$ gpupdate
Apply group policies for kudrin.
$ gpupdate -u ivanov --target User --loglevel 0
2024-06-10 17:17:18.113|[D00010]| Групповые политики будут обновлены для указанной цели|{'target': 'USER'}
2024-06-10 17:17:18.113|[W00002]| Текущий уровень привилегий не позволяет выполнить gpupdate для указанного пользователя. Будут обновлены настройки текущего пользователя.|{'username': 'kudrin'}
2024-06-10 17:17:18.118|[D00013]| Запускается GPOA обращением к oddjobd через D-Bus|{}
2024-06-10 17:17:18.119|[D00900]| Неизвестный отладочный код|{'bus_name': 'ru.basealt.oddjob_gpupdate'}
2024-06-10 17:17:18.119|[D00006]| Запускается GPOA для пользователя обращением к oddjobd через D-Bus|{'username': 'kudrin'}
2024-06-10 17:17:37.972|[D00012]| Получен код возврата из утилиты|{'retcode': dbus.Int32(0)}
Apply group policies for kudrin.
# gpupdate -u ivanov --target User --loglevel 0
2024-06-10 17:19:53.960|[D00010]| Групповые политики будут обновлены для указанной цели|{'target': 'USER'}
2024-06-10 17:19:53.978|[D00013]| Запускается GPOA обращением к oddjobd через D-Bus|{}
2024-06-10 17:19:53.979|[D00900]| Неизвестный отладочный код|{'bus_name': 'ru.basealt.oddjob_gpupdate'}
2024-06-10 17:19:53.979|[D00006]| Запускается GPOA для пользователя обращением к oddjobd через D-Bus|{'username': 'ivanov'}
2024-06-10 17:20:13.852|[D00012]| Получен код возврата из утилиты|{'retcode': dbus.Int32(0)}
Apply group policies for ivanov.
Примечание
gpupdate
сравнивает версию и загружает только измененные политики.
gpupdate-setup
:
gpupdate-setup [-h] действие …
Таблица 26.3. Список возможных действий для команды gpupdate-setup
Ключ
|
Описание
|
---|---|
list
|
Показать список доступных типов локальной политики
|
list-backends
|
Показать список доступных бэкэндов
|
status
|
Показать текущий статус групповой политики (действие по умолчанию)
|
enable
|
Включить подсистему групповой политики
|
disable
|
Отключить подсистему групповой политики
|
update
|
Обновить состояние. Проверяет в каком состоянии находилась служба gpupdate. В случае, если служба gpupdate запущена, gpupdate-setup также запустит весь перечень необходимых служб (например, gpupdate-run-scripts)
|
write
|
Операции с групповыми политиками (включить, отключить, указать тип политики по умолчанию)
|
set-backend
|
Установить или изменить активную в данный момент серверную часть (бэкэнд)
|
default-policy
|
Показать название политики по умолчанию
|
active-policy
|
Показать название текущего профиля политики
|
active-backend
|
Показать текущий настроенный бэкэнд
|
gpupdate-setup
:
# gpupdate-setup
disabled
#gpupdate-setup enable
workstation Created symlink /etc/systemd/user/default.target.wants/gpupdate-user.service → /usr/lib/systemd/user/gpupdate-user.service. Created symlink /etc/systemd/system/multi-user.target.wants/gpupdate-scripts-run.service → /lib/systemd/system/gpupdate-scripts-run.service. Created symlink /etc/systemd/user/default.target.wants/gpupdate-scripts-run-user.service → /usr/lib/systemd/user/gpupdate-scripts-run-user.service. Created symlink /etc/systemd/system/timers.target.wants/gpupdate.timer → /lib/systemd/system/gpupdate.timer. Created symlink /etc/systemd/user/timers.target.wants/gpupdate-user.timer → /usr/lib/systemd/user/gpupdate-user.timer. #control system-policy
gpupdate
# gpupdate-setup disable
Removed /etc/systemd/system/multi-user.target.wants/gpupdate.service.
Removed /etc/systemd/user/default.target.wants/gpupdate-user.service.
Removed /etc/systemd/system/timers.target.wants/gpupdate.timer.
Removed /etc/systemd/user/timers.target.wants/gpupdate-user.timer.
Removed /etc/systemd/system/multi-user.target.wants/gpupdate-scripts-run.service.
Removed /etc/systemd/user/default.target.wants/gpupdate-scripts-run-user.service.
# gpupdate-setup list-backends
local
samba
# gpupdate-setup write enable server
/etc/gpupdate/gpupdate.ini
можно указать в явном виде следующие опции:
/etc/gpupdate/gpupdate.ini
на контроллере домена:
[gpoa] backend = samba local-policy = ad-domain-controller
/etc/gpupdate/gpupdate.ini
на рабочей станции:
[gpoa] backend = samba local-policy = workstation
[gpoa] backend = samba local-policy = /usr/share/local-policy/default [samba] dc = dc1.test.alt
/usr/share/local-policy/
. Данные настройки по умолчанию поставляются пакетом local-policy. Администраторы инфраструктур имеют возможность поставлять собственный пакет с локальной политикой и разворачивать её единообразно на всех клиентах. Формат шаблонов политик по умолчанию представляет собой архивный формат политик Samba с дополнительными модификациями. Локальную политику рекомендуется править только опытным администраторам. Состав локальной политики может меняться или адаптироваться системным администратором.
Таблица 26.4. Состав локальной политики
Параметры
|
Описание
|
Комментарий
|
---|---|---|
sshd-gssapi-auth, ssh-gssapi-auth
|
Включает поддержку аутентификации с использованием GSSAPI на сервере OpenSSH (механизм Control)
|
Отвечает за возможность аутентификации в домене при доступе через SSH
|
sshd-allow-groups, sshd-allow-groups-list
|
Ограничение аутентификации на сервере OpenSSH по группам wheel и remote (механизм Control)
|
Необходимо для ограничения доступа через SSH для всех пользователей домена (только при наличии соответствующей привилегии)
|
system-policy
|
Применяет групповые политики при логине (механизм Control)
|
|
oddjobd.service
|
Включение oddjobd.service (механизм Systemd)
|
Необходимо для обеспечения возможности запуска
gpupdate для пользователя с правами администратора
|
gpupdate.service
|
Включение gpupdate.service (механизм Systemd)
|
Необходимо для регулярного обновления настроек машины
|
sshd.service
|
Включение sshd.service (механизм Systemd)
|
Необходимо для обеспечения возможности удалённого администрирования
|
OpenSSH
|
Открытие порта 22
|
Необходимо для обеспечения возможности подключения по SSH на машинах при старте Firewall applier
|
/usr/share/local-policy/workstation/Machine/Registry.pol.xml
):
<?xml version="1.0" encoding="utf-8"?> <PolFile num_entries="9" signature="PReg" version="1"> <Entry type="1" type_name="REG_SZ"> <Key>Software\BaseALT\Policies\Control</Key> <ValueName>sshd-gssapi-auth</ValueName> <Value>enabled</Value> </Entry> <Entry type="1" type_name="REG_SZ"> <Key>Software\BaseALT\Policies\Control</Key> <ValueName>ssh-gssapi-auth</ValueName> <Value>enabled</Value> </Entry> <Entry type="1" type_name="REG_SZ"> <Key>Software\BaseALT\Policies\Control</Key> <ValueName>sshd-allow-groups</ValueName> <Value>enabled</Value> </Entry> <Entry type="1" type_name="REG_SZ"> <Key>Software\BaseALT\Policies\Control</Key> <ValueName>sshd-allow-groups-list</ValueName> <Value>remote</Value> </Entry> <Entry type="1" type_name="REG_SZ"> <Key>Software\BaseALT\Policies\Control</Key> <ValueName>system-policy</ValueName> <Value>gpupdate</Value> </Entry> <Entry type="4" type_name="REG_DWORD"> <Key>Software\BaseALT\Policies\SystemdUnits</Key> <ValueName>oddjobd.service</ValueName> <Value>1</Value> </Entry> <Entry type="4" type_name="REG_DWORD"> <Key>Software\BaseALT\Policies\SystemdUnits</Key> <ValueName>sshd.service</ValueName> <Value>1</Value> </Entry> <Entry type="4" type_name="REG_DWORD"> <Key>Software\BaseALT\Policies\SystemdUnits</Key> <ValueName>gpupdate.service</ValueName> <Value>1</Value> </Entry> <Entry type="1" type_name="REG_SZ"> <Key>SOFTWARE\Policies\Microsoft\WindowsFirewall\FirewallRules</Key> <ValueName>OpenSSH</ValueName> <Value>v2.20|Action=Allow|Active=TRUE|Dir=In|Protocol=6|LPort=22|Name=Open SSH port|Desc=Open SSH port|</Value> </Entry> </PolFile>
/etc/dconf/db/policy.d/policy.ini
, политики пользователя — в файле /etc/dconf/db/policy<UID>.d/policy<UID>.ini
(где UID — идентификатор пользователя в системе).
dconf dump /
При выполнении этой команды с правами доменного пользователя будут выведены машинные политики и политики данного пользователя, при выполнении с правами пользователя root будут выведены только машинные политики.
dconf dump /
с правами доменного пользователя:
$ dconf dump /
[SOFTWARE/Policies/Microsoft/WindowsFirewall/FirewallRules]
OpenSSH='v2.20|Action=Allow|Active=TRUE|Dir=In|Protocol=6|LPort=22|Name=Open SSH port|Desc=Open SSH port|'
[Software/BaseALT/Policies/Control]
ssh-gssapi-auth='enabled'
sshd-allow-groups='enabled'
sshd-allow-groups-list='remote'
sshd-gssapi-auth='enabled'
system-policy='gpupdate'
[Software/BaseALT/Policies/ReadQueue/Machine]
0="('Local Policy', '/var/cache/gpupdate/local-policy', None)"
1="('Firefox', '/var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{0CCFA74C-57F5-42B5-98E2-007D4A59C4C4}', 262148)"
[Software/BaseALT/Policies/ReadQueue/User]
0="('nm', '/var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{6F65CD4D-9209-4A81-9801-17A35CEE5CFD}', 131074)"
[Software/BaseALT/Policies/SystemdUnits]
gpupdate.service=1
oddjobd.service=1
sshd.service=1
[Software/Policies/Mozilla/Firefox]
DisableMasterPasswordCreation=1
PasswordManagerEnabled=1
ShowHomeButton=1
[Software/Policies/Mozilla/Firefox/Authentication]
SPNEGO="['.test.alt']"
[Software/Policies/Mozilla/Firefox/Homepage]
Locked=1
URL='https://basealt.ru'
[org/gnome/evolution-data-server]
migrated=true
network-monitor-gio-name=''
[org/mate/caja/window-state]
geometry='800x550+310+75'
maximized=false
start-with-sidebar=true
start-with-status-bar=true
start-with-toolbar=true
[org/mate/desktop/accessibility/keyboard]
bouncekeys-beep-reject=true
bouncekeys-delay=300
bouncekeys-enable=false
enable=false
feature-state-change-beep=false
mousekeys-accel-time=1200
mousekeys-enable=false
mousekeys-init-delay=160
mousekeys-max-speed=750
slowkeys-beep-accept=true
slowkeys-beep-press=true
slowkeys-beep-reject=false
slowkeys-delay=300
slowkeys-enable=false
stickykeys-enable=false
stickykeys-latch-to-lock=true
stickykeys-modifier-beep=true
stickykeys-two-key-off=true
timeout=120
timeout-enable=false
togglekeys-enable=false
[org/mate/desktop/session]
session-start=1718111448
[org/mate/mate-menu/plugins/applications]
last-active-tab=0
[org/mate/panel/general]
object-id-list=['menu-bar', 'show-desktop', 'workspace-switcher', 'window-list', 'notification-area', 'clock']
toplevel-id-list=['bottom']
[org/mate/panel/objects/clock]
applet-iid='ClockAppletFactory::ClockApplet'
locked=true
object-type='applet'
panel-right-stick=true
position=0
toplevel-id='bottom'
[org/mate/panel/objects/clock/prefs]
custom-format=''
format='24-hour'
[org/mate/panel/objects/menu-bar]
applet-iid='MateMenuAppletFactory::MateMenuApplet'
has-arrow=false
locked=true
object-type='applet'
position=0
toplevel-id='bottom'
[org/mate/panel/objects/notification-area]
applet-iid='NotificationAreaAppletFactory::NotificationArea'
locked=true
object-type='applet'
panel-right-stick=true
position=10
toplevel-id='bottom'
[org/mate/panel/objects/show-desktop]
applet-iid='WnckletFactory::ShowDesktopApplet'
locked=true
object-type='applet'
position=1
toplevel-id='bottom'
[org/mate/panel/objects/window-list]
applet-iid='WnckletFactory::WindowListApplet'
locked=true
object-type='applet'
position=20
toplevel-id='bottom'
[org/mate/panel/objects/workspace-switcher]
applet-iid='WnckletFactory::WorkspaceSwitcherApplet'
locked=true
object-type='applet'
position=10
toplevel-id='bottom'
[org/mate/panel/toplevels/bottom]
expand=true
orientation='bottom'
screen=0
size=28
y=836
y-bottom=0
[org/mate/terminal/profiles/default]
background-color='#2C2C2C2C2C2C'
background-darkness=0.94999999999999996
background-type='transparent'
bold-color='#000000000000'
foreground-color='#F5F5F5F5E4E4'
palette='#2E2E34343636:#CCCC00000000:#4E4E9A9A0606:#C4C4A0A00000:#34346565A4A4:#757550507B7B:#060698209A9A:#D3D3D7D7CFCF:#555557575353:#EFEF29292929:#8A8AE2E23434:#FCFCE9E94F4F:#72729F9FCFCF:#ADAD7F7FA8A8:#3434E2E2E2E2:#EEEEEEEEECEC'
use-theme-colors=false
visible-name='По умолчанию'
Таблица 26.5. Список модулей
Расширение клиентской стороны
|
Модуль
|
Описание
|
---|---|---|
Управление control framework
|
control
|
Управляет фреймворком control. Может быть вызван только машинной политикой. Принцип работы — вызвать утилиту
control с нужным параметром
|
Управление настройками службы Polkit
|
polkit
|
Управляет генерацией настроек PolicyKit. Работа с правилами PolicyKit ведется методом генерации файлов
.rules
|
Управление настройками службы Polkit
|
polkit_user
|
Управляет генерацией настроек PolicyKit в контексте пользователя
|
Включение или выключение различных служб
|
systemd
|
Управление включением или выключением сервисов systemd. Данный applier реализован только для машин. Его функция — включение или выключение systemd units (при их наличии). Applier способен обрабатывать параметры, полученные из PReg файлов (через ADMX) в виде ветвей реестра
|
Настройка браузера Chromium
|
chromium
|
Генерирует файл политики для Chromium (
policies.json ). Данные настройки устанавливаются из ADMX-файлов для Chromium. Может быть вызван только машинной политикой
|
Настройка браузера Firefox
|
firefox
|
Генерирует файл политики для Firefox (
policies.json ). Данные настройки устанавливаются из ADMX-файлов для Firefox. Может быть вызван только машинной политикой
|
Настройка Яндекс.Браузера
|
yandex
|
Генерирует файл политики для Яндекс.Браузера (
policies.json ). Данные настройки устанавливаются из ADMX-файлов для Яндекс.Браузера. Может быть вызван только машинной политикой
|
Управление ярлыками запуска программ
|
shortcut
|
Управляет
.desktop файлами (создание/удаление/замена)
|
Управление ярлыками запуска программ
|
shortcut_user
|
Управляет
.desktop файлами в контексте пользователя. Способен реагировать на опцию выполнения операций в контексте администратора или пользователя
|
Управление подключением сетевых дисков
|
cifs
|
Управляет подключением сетевых дисков
|
Управление подключением сетевых дисков
|
cifs_user
|
Управляет подключением сетевых дисков в контексте пользователя
|
Управление каталогами файловой системы
|
folder
|
Управляет каталогами файловой системы (создание/удаление/пересоздание)
|
Управление каталогами файловой системы
|
folder_user
|
Управляет каталогами файловой системы в контексте пользователя
|
Управление файлами
|
files
|
Управляет файлами (создание/удаление/пересоздание)
|
Управление файлами
|
files_user
|
Управляет файлами в контексте пользователя
|
Управление INI-файлами
|
ini
|
Управляет INI-файлами (создание/удаление/пересоздание)
|
Управление INI-файлами
|
ini_user
|
Управляет INI-файлами в контексте пользователя
|
Управление переменными среды
|
envvar
|
Управляет переменными среды
|
Управление переменными среды
|
envvar_user
|
Управляет переменными среды в контексте пользователя
|
Управление общими каталогами
|
networkshare
|
Управляет общими каталогами
|
Управление общими каталогами
|
networkshare_user
|
Управляет общими каталогами в контексте пользователя
|
Управление gsettings (настройки графической среды Mate)
|
gsettings
|
Разворачивает системные настройки gsettings. Редактирование системных настроек осуществляется методом развертывания файлов с расширением
.gschema.override (в формате INI) в директории с XML схемами. После разворачивания необходимо осуществить вызов glib-compile-schemas, для того чтобы настройки вступили в силу
|
Управление gsettings (настройки графической среды Mate)
|
gsettings_user
|
Устанавливает настройки gsettings для пользователя
|
Управление настройками графической среды KDE
|
kde
|
Средство управления настройками среды рабочего стола KDE
|
Управление настройками графической среды KDE
|
kde_user
|
Устанавливает настройки KDE в контексте пользователя
|
Управление пакетами
|
package
|
Средство работы с пакетным менеджером для установки и удаления пакетов программ
|
Управление пакетами
|
package_user
|
Управление пакетами в контексте пользователя
|
Управление logon-скриптами
|
scripts
|
Управление скриптами запуска и завершения работы компьютера, входа и выхода из системы пользователя
|
Управление logon-скриптами
|
scripts_user
|
Управление скриптами в контексте пользователя
|
gpupdate.timer
. Запуск фронтенда для пользователя в административном контексте производится с помощью модуля pam_oddjob при входе в систему и далее раз в час (по умолчанию) также средством Systemd — gpupdate-user.timer
.
gpupdate.service
используются системный таймер gpupdate.timer
и пользовательский таймер gpupdate-user.timer
. Для управления периодом запуска групповых политик достаточно изменить параметр соответствующего таймера systemd (по умолчанию период запуска составляет 1 час).
OnUnitActiveSec
в файле /lib/systemd/system/gpupdate.timer
:
[Unit] Description=Run gpupdate every hour [Timer] OnStartupSec=60min OnUnitActiveSec=60min [Install] WantedBy=timers.target
gpupdate.timer
запустится после загрузки ОС, а затем будет запускаться каждый час во время работы системы. Просмотреть статус системного таймера можно, выполнив команду:
# systemctl status gpupdate.timer
● gpupdate.timer - Run gpupdate every hour
Loaded: loaded (/lib/systemd/system/gpupdate.timer; enabled; vendor preset: disabled)
Active: active (waiting) since Mon 2024-06-10 16:39:44 EET; 5min ago
Trigger: Mon 2024-06-10 17:29:17 EET; 43min left
Triggers: ● gpupdate.service
июн 10 16:39:44 w2.test.alt systemd[1]: Started Run gpupdate every hour..
OnUnitActiveSec
в файле /usr/lib/systemd/user/gpupdate-user.timer
:
[Unit] Description=Run gpupdate-user every hour [Timer] OnStartupSec=60min OnUnitActiveSec=60min [Install] WantedBy=timers.target
gpupdate-user.timer
запустится после входа пользователя в систему, а затем будет запускаться каждый час пока активен сеанс соответствующего пользователя. Просмотреть статус пользовательского таймера можно, выполнив команду от имени пользователя:
$ systemctl --user status gpupdate-user.timer
● gpupdate-user.timer - Run gpupdate-user every hour
Loaded: loaded (/usr/lib/systemd/user/gpupdate-user.timer; enabled; vendor preset: enabled)
Active: active (waiting) since Mon 2024-06-10 16:29:32 EET; 10min ago
Trigger: Mon 2024-06-10 17:29:32 EET; 49min left
Triggers: ● gpupdate-user.service
июн 10 16:29:32 w2.test.alt systemd[3469]: Started Run gpupdate-user every hour.
/usr/lib/systemd/user/gpupdate-user.timer
, вступили в силу следует выполнить команду:
$ systemctl --user daemon-reload
Примечание
gpupdate
можно также через групповые политики (см. раздел Настройка периодичности запроса конфигураций).
$ systemctl list-timers
$ systemctl --user list-timers
gpresult
) отображает сведения о результирующем наборе групповых политик для текущего пользователя (для которого запущена сессия) на текущей машине.
# apt-get install gpresult
gpupdate
. GPResult не вызывает утилиту gpupdate
.
gpresult
:
gpresult [-h] [-r] [-c] [-v] [-l] [-p] [-w WIDTH] [-i POLICY_GUID] [-n POLICY_NAME] [-u] [-m]
Таблица 26.6. Опции команды gpresult
Ключ
|
Описание
|
---|---|
-h, --help
|
Вывести справку о команде
|
-r, --raw
|
Формат вывода: отображаются ключи групповых политик, текущие и предыдущие значения
|
-c, --common
|
Формат вывода: отображаются сведения о системе и имена групповых политик
|
-v, --verbose
|
Формат вывода (по умолчанию): отображаются подробные сведения о групповых политиках
|
-l, --list
|
Формат вывода: отображаются имена групповых политик и их GUID
|
-p, --previous
|
Включить информацию о предыдущих значениях ключей групповых политик
|
-w WIDTH, --width WIDTH
|
Задать ширину столбцов для вывода внутренних таблиц (ключи и значения, настройки):
|
-i POLICY_GUID, --policy_guid POLICY_GUID
|
Получить информацию о примененных ключах и значениях политики по GUID
|
-n POLICY_NAME, --policy_name POLICY_NAME
|
Получить информацию о примененных ключах и значениях политики по имени
|
-u, --user
|
Отобразить информацию для текущего пользователя
|
-m, --machine
|
Отобразить информацию для текущей машины
|
Примечание
-l
не применяется с опциями -i
и -n
. Опция -l
может использоваться вместе с опцией -r
— вывод не будет форматированным. Имя GPO и GUID разделяются одним пробелом. Без выбора опции формата вывода по умолчанию используется -v
.
Примечание
gpresult
:
$ gpresult -v
Отчет сформирован 30-01-2025 10:47
Результирующий набор политик
----------------------------
Операционная система: ALT
Версия ОС: 10.4 (SorbaroniaMitschurinii)
ПОЛЬЗОВАТЕЛЬСКИЕ НАСТРОЙКИ
--------------------------
Примененные Объекты Групповой Политики
--------------------------------------
GPO Файлы
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{96D5897A-CEFB-4A1B-90AF-5D83707130C4}
Версия 65537
GUID {96D5897A-CEFB-4A1B-90AF-5D83707130C4}
Ключи -
Настройки -
GPO Local Policy
Путь /var/cache/gpupdate/local-policy
Версия -
GUID -
Ключи -
Настройки -
GPO Экспериментальные политики
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{377A04D4-213E-4783-9B37-5FEE4FF112AA}
Версия 65537
GUID {377A04D4-213E-4783-9B37-5FEE4FF112AA}
Ключи -
Настройки -
GPO Default Domain Policy
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{31B2F340-016D-11D2-945F-00C04FB984F9}
Версия 0
GUID {31B2F340-016D-11D2-945F-00C04FB984F9}
Ключи -
Настройки -
GPO KDE
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{3C70AD47-E9D5-415F-A565-C1E1472C6D55}
Версия 655370
GUID {3C70AD47-E9D5-415F-A565-C1E1472C6D55}
Ключи -
Настройки -
МАШИННЫЕ НАСТРОЙКИ
------------------
Примененные Объекты Групповой Политики
--------------------------------------
GPO Экспериментальные политики
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{377A04D4-213E-4783-9B37-5FEE4FF112AA}
Версия 65537
GUID {377A04D4-213E-4783-9B37-5FEE4FF112AA}
Ключи -
Настройки -
GPO KDE
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{3C70AD47-E9D5-415F-A565-C1E1472C6D55}
Версия 655370
GUID {3C70AD47-E9D5-415F-A565-C1E1472C6D55}
Ключи /Software/BaseALT/Policies/GPUpdate/KdeApplier 1
/Software/BaseALT/Policies/GPUpdate/KdeApplierUser 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/Autolock 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/LockGrace 20
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/LockOnResume 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/Timeout 5
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.Autolock 0
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.LockGrace 1
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.LockOnResume 1
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.Timeout 0
Настройки -
GPO Local Policy
Путь /var/cache/gpupdate/local-policy
Версия -
GUID -
Ключи /SOFTWARE/Policies/Microsoft/WindowsFirewall/FirewallRules/OpenSSH v2.20|Action=Allow|Active=TRUE|Dir=In|Protocol=6|LPort=22|Name=Open SSH port|Desc=Open SSH port|
/Software/BaseALT/Policies/Control/ssh-gssapi-auth enabled
/Software/BaseALT/Policies/Control/sshd-allow-groups enabled
/Software/BaseALT/Policies/Control/sshd-allow-groups-list remote
/Software/BaseALT/Policies/Control/sshd-gssapi-auth enabled
/Software/BaseALT/Policies/Control/system-policy gpupdate
/Software/BaseALT/Policies/SystemdUnits/gpupdate.service 1
/Software/BaseALT/Policies/SystemdUnits/oddjobd.service 1
/Software/BaseALT/Policies/SystemdUnits/sshd.service 1
Настройки -
GPO Default Domain Policy
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{31B2F340-016D-11D2-945F-00C04FB984F9}
Версия 0
GUID {31B2F340-016D-11D2-945F-00C04FB984F9}
Ключи -
Настройки -
GPO Файлы
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{96D5897A-CEFB-4A1B-90AF-5D83707130C4}
Версия 65537
GUID {96D5897A-CEFB-4A1B-90AF-5D83707130C4}
Ключи /Software/BaseALT/Policies/GPUpdate/GlobalExperimental 1
Настройки Тип Файлы
Источник файла(ов) //test.alt/sysvol/test.alt/test.txt
Источник -
Действие U
Место назначения %DesktopDir%/new2.txt
Только для чтения 0
Архивный 0
Скрытый 0
Подавление ошибок 0
Исполняемый 0
GPO Сетевой диск
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{1F4C3297-9355-4098-B9C8-53CAD6FFEBEF}
Версия 720907
GUID {1F4C3297-9355-4098-B9C8-53CAD6FFEBEF}
Ключи /Software/BaseALT/Policies/GPUpdate/DriveMapsName my_share
Настройки Тип Сетевые диски
Пароль
Имя диска I
Путь \\dc1.test.alt\sysvol
Действие U
Этот диск SHOW
Все диски SHOW
Название
Переподключиться 1
Использовать 0
Тип Сетевые диски
Пароль
Имя диска O
Путь \\dc1.test.alt\Free
Действие U
Этот диск SHOW
Все диски SHOW
Название
Переподключиться 0
Использовать 1
$ gpresult -v -m
Отчет сформирован 30-01-2025 10:48
Результирующий набор политик
----------------------------
Операционная система: ALT
Версия ОС: 10.4 (SorbaroniaMitschurinii)
МАШИННЫЕ НАСТРОЙКИ
------------------
Примененные Объекты Групповой Политики
--------------------------------------
GPO Экспериментальные политики
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{377A04D4-213E-4783-9B37-5FEE4FF112AA}
Версия 65537
GUID {377A04D4-213E-4783-9B37-5FEE4FF112AA}
Ключи -
Настройки -
GPO KDE
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{3C70AD47-E9D5-415F-A565-C1E1472C6D55}
Версия 655370
GUID {3C70AD47-E9D5-415F-A565-C1E1472C6D55}
Ключи /Software/BaseALT/Policies/GPUpdate/KdeApplier 1
/Software/BaseALT/Policies/GPUpdate/KdeApplierUser 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/Autolock 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/LockGrace 20
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/LockOnResume 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/Timeout 5
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.Autolock 0
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.LockGrace 1
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.LockOnResume 1
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.Timeout 0
Настройки -
GPO Local Policy
Путь /var/cache/gpupdate/local-policy
Версия -
GUID -
Ключи /SOFTWARE/Policies/Microsoft/WindowsFirewall/FirewallRules/OpenSSH v2.20|Action=Allow|Active=TRUE|Dir=In|Protocol=6|LPort=22|Name=Open SSH port|Desc=Open SSH port|
/Software/BaseALT/Policies/Control/ssh-gssapi-auth enabled
/Software/BaseALT/Policies/Control/sshd-allow-groups enabled
/Software/BaseALT/Policies/Control/sshd-allow-groups-list remote
/Software/BaseALT/Policies/Control/sshd-gssapi-auth enabled
/Software/BaseALT/Policies/Control/system-policy gpupdate
/Software/BaseALT/Policies/SystemdUnits/gpupdate.service 1
/Software/BaseALT/Policies/SystemdUnits/oddjobd.service 1
/Software/BaseALT/Policies/SystemdUnits/sshd.service 1
Настройки -
GPO Default Domain Policy
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{31B2F340-016D-11D2-945F-00C04FB984F9}
Версия 0
GUID {31B2F340-016D-11D2-945F-00C04FB984F9}
Ключи -
Настройки -
GPO Файлы
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{96D5897A-CEFB-4A1B-90AF-5D83707130C4}
Версия 65537
GUID {96D5897A-CEFB-4A1B-90AF-5D83707130C4}
Ключи /Software/BaseALT/Policies/GPUpdate/GlobalExperimental 1
Настройки Тип Файлы
Источник файла(ов) //test.alt/sysvol/test.alt/test.txt
Источник -
Действие U
Место назначения %DesktopDir%/new2.txt
Только для чтения 0
Архивный 0
Скрытый 0
Подавление ошибок 0
Исполняемый 0
GPO Сетевой диск
Путь /var/cache/samba/gpo_cache/TEST.ALT/POLICIES/{1F4C3297-9355-4098-B9C8-53CAD6FFEBEF}
Версия 720907
GUID {1F4C3297-9355-4098-B9C8-53CAD6FFEBEF}
Ключи /Software/BaseALT/Policies/GPUpdate/DriveMapsName my_share
Настройки Тип Сетевые диски
Пароль
Имя диска I
Путь \\dc1.test.alt\sysvol
Действие U
Этот диск SHOW
Все диски SHOW
Название
Переподключиться 1
Использовать 0
Тип Сетевые диски
Пароль
Имя диска O
Путь \\dc1.test.alt\Free
Действие U
Этот диск SHOW
Все диски SHOW
Название
Переподключиться 0
Использовать 1
$ gpresult -lm
Экспериментальные политики {377A04D4-213E-4783-9B37-5FEE4FF112AA}
KDE {3C70AD47-E9D5-415F-A565-C1E1472C6D55}
Local Policy -
Default Domain Policy {31B2F340-016D-11D2-945F-00C04FB984F9}
Файлы {96D5897A-CEFB-4A1B-90AF-5D83707130C4}
Сетевой диск {1F4C3297-9355-4098-B9C8-53CAD6FFEBEF}
$ gpresult -c -i 6F65CD4D-9209-4A81-9801-17A35CEE5CFD
/Software/BaseALT/Policies/Polkit/org.freedesktop.NetworkManager.enable-disable-network Auth_admin
/Software/BaseALT/Policies/Polkit/org.freedesktop.NetworkManager.settings.modify.system No
/Software/BaseALT/Policies/PolkitLocks/org.freedesktop.NetworkManager.enable-disable-network 0
/Software/BaseALT/Policies/PolkitLocks/org.freedesktop.NetworkManager.settings.modify.system 0
$ gpresult -c -n KDE
/Software/BaseALT/Policies/GPUpdate/KdeApplier 1
/Software/BaseALT/Policies/GPUpdate/KdeApplierUser 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/Autolock 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/LockGrace 20
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/LockOnResume 1
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/Timeout 5
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.Autolock 0
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.LockGrace 1
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.LockOnResume 1
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.Timeout 0
где KDE — имя групповой политики;
$ gpresult -c -p -n KDE
/Software/BaseALT/Policies/GPUpdate/KdeApplier 1 -
/Software/BaseALT/Policies/GPUpdate/KdeApplierUser 1 -
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/Autolock 1 -
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/LockGrace 20 11
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/LockOnResume 1 -
/Software/BaseALT/Policies/KDE/kscreenlockerrc/Daemon/Timeout 5 12
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.Autolock 0 1
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.LockGrace 1 -
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.LockOnResume 1 -
/Software/BaseALT/Policies/KDELocks/kscreenlockerrc.Daemon.Timeout 0 1
admc
).
Примечание
$ kinit administrator
Примечание
/usr/share/icons
, пользовательские темы берутся по умолчанию из каталога /usr/share/ad-integration-themes
. Каталоги с темами определяются по наличию в них файла index.theme
и могут быть символическими ссылками.
Таблица 27.1. Назначение вкладок окна «Свойства учётной записи пользователя»
Вкладка
|
Описание
|
Расширенный режим
|
---|---|---|
Общее
|
Основная вкладка, содержащая информацию, идентифицирующую личность пользователя, которой соответствует данная учётная запись
|
-
|
Учётная запись
|
Характеристики учётной записи пользователя, настройка правил регистрации в сети
|
-
|
Адрес
|
Почтовый адрес пользователя
|
-
|
Организация
|
Данные о сотруднике согласно штатному расписанию
|
-
|
Телефоны
|
Настройка телефонии
|
-
|
Группы
|
Управление членством в группах безопасности
|
-
|
Атрибуты
|
Список атрибутов объекта
|
+
|
Объект
|
Информация об объекте
|
+
|
Делегирование
|
|
-
|
Безопасность
|
Права доступа к объекту
|
+
|
Таблица 27.2. Соответствие параметров на вкладке «Общее» полям в AD
Поле на вкладке Общее
|
Примечание
|
Поле в Active Directory
|
Тип
|
---|---|---|---|
Полное имя
|
Во вкладке Общее значение этого поля изменить нельзя
|
cn, name
|
Юникод
|
Описание
|
|
description
|
Юникод
|
Имя
|
|
givenName
|
Юникод
|
Фамилия
|
|
sn
|
Юникод
|
Отображаемое имя
|
Значение этого параметра складывается из значений трёх параметров: First Name, Initials и Last Name
|
diplayName
|
Юникод
|
Инициалы
|
Длина не более 6 символов
|
initials
|
Юникод
|
Электронная почта
|
Автоматически заполняемое поле в соответствии с форматом UPN (RFC 822) при создании почтового ящика для учётной записи пользователя. По умолчанию поле пустое
|
mail
|
Юникод
|
Расположение офиса
|
Указывается физическое месторасположение пользователя: комната, офис и т.д.
|
physicalDeliveryOfficeName
|
Юникод
|
Номер телефона
|
|
telephoneNumber
|
Юникод
|
Другие телефоны
|
Можно задать, нажав кнопку
|
otherTelephone
|
Юникод
|
Адрес веб-страницы
|
|
wWWHomePage
|
Юникод
|
Другие адреса веб-страниц
|
Можно задать, нажав кнопку
|
url
|
Юникод
|
Таблица 27.3. Соответствие параметров на вкладке «Учетная запись» полям в AD
Поле на вкладке Учетная запись
|
Примечание
|
Поле в Active Directory
|
Тип
|
---|---|---|---|
Имя для входа
|
Имя пользователя для входа (логин пользователя)
|
userPrincipalName
|
Юникод
|
Разблокировать учётную запись
|
Позволяет разблокировать учётную запись пользователя, если она была заблокирована, например, из-за слишком большого количества неудачных попыток входа
|
userAccountControl = 16
|
Целое число
|
Срок действия учётной записи
|
Дата отключения учётной записи (по умолчанию Никогда — неограниченный срок действия). Если нужно задать дату окончания срока действия учётной записи пользователя, следует выбрать Конец и затем выбрать дату
|
accountExpires
|
Большое целое число
|
Время входа…
|
Часы, в которые пользователю разрешено выполнять вход в домен
|
logonHours
|
Октет
|
Учетная запись отключена (ACCOUNTDISABLE)
|
Если эта опция включена, пользователь не сможет войти в систему
|
userAccountControl = 0x0002 (2)
|
Целое число
|
Пользователь не может изменить пароль (PASSWD_CANT_CHANGE)
|
|
userAccountControl = 0x0040 (64)
|
Целое число
|
Пользователь должен сменить пароль при следующем входе в систему
|
|
pwdLastSet
|
Большое целое число
|
Пароль не истекает (DONT_EXPIRE_PASSWORD)
|
Срок действия пароля для этой учётной записи никогда не истечет
|
userAccountControl = 0x10000 (65536)
|
Целое число
|
Хранить пароль с использованием обратимого шифрования (ENCRYPTED_TEXT_PWD_ALLOWED)
|
Для шифрования ключей использовать DES-шифрование. Эта политика обеспечивает поддержку приложений, использующих протоколы, требующие знание пароля пользователя для проверки подлинности
|
userAccountControl = 0x0080 (128)
|
Целое число
|
Смарт-карта необходима для интерактивного входа в систему (SMARTCARD_REQUIRED)
|
Пользователь должен войти в систему с помощью смарт-карты
|
userAccountControl = 0x40000 (262144)
|
Целое число
|
Учетная запись является конфиденциальной и не может быть делегирована (NOT_DELEGATED)
|
Пользователю нельзя доверять делегирование полномочий
|
userAccountControl = 0x100000 (1048576)
|
Целое число
|
Использовать Kerberos DES тип шифрования для этой учётной записи (USE_DES_KEY_ONLY)
|
Ограничить этот субъект использованием только типов шифрования DES (стандарт шифрования данных) для ключей
|
userAccountControl = 0x200000 (2097152)
|
Целое число
|
Не требовать предварительной аутентификации Kerberos (DONT_REQ_PREAUTH)
|
Для доступа к ресурсам сети не нужно предварительно проверять подлинность с помощью протокола Kerberos
|
userAccountControl = 0x400000 (4194304)
|
Целое число
|
Доверять делегирование (TRUSTED_FOR_DELEGATION)
|
Учетная запись пользователя или компьютера, под которой выполняется служба, является доверенной для делегирования Kerberos. Любая такая служба может олицетворять клиента, запрашивающего службу
|
userAccountControl = 0x80000 (524288)
|
Целое число
|
Примечание
Примечание
Примечание
Примечание
Примечание
Предупреждение
Предупреждение
Предупреждение
Примечание
Предупреждение
Примечание
Примечание
Примечание
Примечание
Примечание
Примечание
Примечание
Примечание
Предупреждение
Примечание
Примечание
Примечание
Примечание
Примечание
Примечание
Примечание
Примечание
Примечание
Примечание
<Фильтр>=(<Атрибут><оператор сравнения><значение>)
gpui-main
:
gpui-main [параметры]
Таблица 28.1. Опции команды gpui-main
Параметр
|
Описание
|
---|---|
-p <путь>
|
Полный путь для редактируемой политики
|
-b <путь>
|
Полный путь к набору ADMX-файлов
|
-n <имя>
|
Опция оставлена для совместимости с ADMC. Она ничего не делает
|
--log-console <уровень>
|
Установить уровень логирования для консоли. По умолчанию: none
|
--log-syslog <уровень>
|
Установить уровень логирования для syslog. По умолчанию: none
|
--log-file <уровень>
|
Установить уровень логирования для файла в
~/.local/share/gpui/ . По умолчанию: warning
|
-v, --version
|
Вывести сведения о версии
|
-h, --help
|
Вывести справку о команде
|
$ gpui-main -p "smb://dc1.test.alt/SysVol/test.alt/Policies/{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX}"
-p
позволяет указать путь к шаблону групповой политики, который нужно редактировать, dc1.test.alt
— имя контроллера домена, а {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX}
— GUID шаблона групповой политики для редактирования. Можно указывать как каталоги smb, так и локальные каталоги.
Примечание
$ gpui-main -p "smb://dc1.test.alt/SysVol/test.alt/Policies/{2E80AFBE-BBDE-408B-B7E8-AF79E02839D6}"
/usr/share/PolicyDefinitions
.
-b
:
$ gpui-main -b "/usr/share/PolicyDefinitions"
Примечание
systemctl enable <служба>
);
systemctl disable <служба>
).
Таблица 28.2. Список служб, состояние которых можно изменить, настроив соответствующую политику в GPUI
Служба
|
Описание
|
Сервис Systemd
|
---|---|---|
Менеджер модема
|
Политика определяет, включен ли systemd юнит диспетчера модемов
|
ModemManager.service
|
Ожидание Network Manager'ом сети при загрузке
|
Политика определяет, включен ли systemd юнит «Network Manager Wait Online»
|
NetworkManager-wait-online.service
|
Управление службой Network Manager
|
Политика определяет, включен ли systemd юнит «Network Manager»
|
NetworkManager.service
|
Служба учётных записей (accounts-daemon)
|
Политика определяет, включен ли systemd юнит службы учётных записей (accounts-daemon)
|
accounts-daemon.service
|
Служба события ACPI
|
Политика определяет, включен ли systemd юнит системной службы событий ACPI
|
acpid.service
|
Сервер frontend веб-интерфейса Alterator
|
Политика определяет, включен ли systemd юнит веб-сервера frotend WWW интерфейса Alterator
|
ahttpd.service
|
Серверная часть Alterator
|
Политика определяет, включен ли systemd юнит внутреннего сервера Alterator
|
alteratord.service
|
Служба аудита безопасности
|
Политика определяет, включен ли системный модуль службы аудита безопасности
|
auditd.service
|
Avahi mDNS/DNS-SD
|
Политика определяет, включен ли systemd юнит стека mDNS/DNS-SD Avahi
|
avahi-daemon.service
|
DNS-сервер BIND
|
Политика определяет, включен ли systemd юнит DNS-сервера (сервиса) BIND (Berkeley Internet Name Domain)
|
bind.service
|
Chronyd (служба NTP)
|
Политика определяет, включен ли systemd юнит NTP клиента/сервера Chronyd
|
chronyd.service
|
Сервис colord
|
Политика определяет, включен ли systemd юнит colord (сервис для управления, установки и создания цветовых профилей)
|
colord.service
|
Сервис Сonsolesaver SYSV
|
Политика определяет, включен ли systemd юнит Сonsolesaver (SYSV: этот пакет загружает конфигурацию энергосбережения консоли)
|
consolesaver.service
|
Cpufreq-simple сервис
|
Политика определяет, включен ли systemd юнит службы Cpufreq-simple (загружает модули ядра, необходимые для масштабирования cpufreq)
|
cpufreq-simple.service
|
Служба Crond
|
Политика определяет, включен ли systemd юнит службы Cron
|
crond.service
|
Шина системных сообщений D-Bus
|
Политика определяет, включен ли systemd юнит шины системных сообщений D-Bus
|
dbus.service
|
Служба Dnsmasq
|
Политика определяет, включен ли systemd юнит службы Dnsmasq (облегченный DHCP и кеширующий DNS-сервер, а также TFTP-сервер для поддержки загрузки по сети)
|
dnsmasq.service
|
Менеджер мыши в консоли
|
Политика определяет, включен ли sytemd юнит диспетчера мыши консоли
|
gpm.service
|
Системный модуль kmod-static-nodes
|
Политика определяет, включен ли systemd юнит kmod-static-nodes (создаёт список необходимых статических узлов устройства для текущего ядра)
|
kmod-static-nodes.service
|
Kerberos 5 KDC
|
Политика определяет, включен ли systemd юнит Kerberos 5 KDC
|
krb5kdc.service
|
Графический менеджер входа в систему (lightdm)
|
Политика определяет, включен ли systemd юнит службы графического менеджера входа в систему
|
lightdm.service
|
Служба сетевых подключений
|
Политика определяет, включен ли systemd юнит службы сетевых подключений
|
network.service
|
Samba NMB сервис
|
Политика определяет, включен ли systemd юнит сервиса Samba NMB
|
nmb.service
|
Сервис кеширования службы имен (nscd)
|
Политика определяет, включён ли systemd юнит сервиса кеширования службы имен
|
nscd.service
|
Сервис службы именования LDAP-клиента (nslcd)
|
Политика определяет, включен ли systemd юнит сервиса служб именования клиента LDAP
|
nslcd.service
|
Системный модуль oddjobd
|
Политика определяет, включен ли systemd юнит oddjobd (используется для запуска привилегированных операций для непривилегированных процессов)
|
oddjobd.service
|
SYSV: интерфейс терминала смарт-карт
|
Политика определяет, включен ли systemd юнит Openct (SYSV: терминал смарт-карт)
|
openct.service
|
Планировщик CUPS
|
Политика определяет, включен ли systemd юнит Service CUPS (планировщик)
|
org.cups.cupsd.service
|
Служба PC/SC Smart Card
|
Политика определяет, включен ли systemd юнит службы поддержки PC/SC Smart Card
|
pcscd.service
|
Диспетчер авторизации (polkit)
|
Политика определяет, включен ли systemd юнит диспетчера авторизации (polkit)
|
polkit.service
|
Агент передачи почты Postfix
|
Политика определяет, включен ли systemd юнит агента передачи почты Postfix
|
postfix.service
|
Сервис отображения универсальных адресов и номеров программ RPC
|
Политика определяет, включен ли systemd юнит RPC bind
|
rpcbind.service
|
Samba SMB сервис
|
Политика определяет, включен ли systemd юнит сервис Samba SMB
|
smb.service
|
Служба защищенного управления (sshd)
|
Политика определяет, включен ли systemd юнит демона сервера OpenSSH
|
sshd.service
|
Демон Upower
|
Политика определяет, включен ли systemd юнит Daemon Upower (управление питанием)
|
upower.service
|
Samba Winbind сервис
|
Политика определяет, включен ли systemd юнит Samba Winbind
|
winbind.service
|
Таблица 28.3. Категория «Безопасность»
Политика
|
Control
|
Описание
|
Режимы
|
---|---|---|---|
Выполнение программы
/usr/bin/chage
|
chage
|
Политика позволяет контролировать доступ для выполнения программы
/usr/bin/chage
|
|
Выполнение программы
/usr/bin/chfn
|
chfn
|
Политика позволяет контролировать поведение и права доступа к команде
chfn (/usr/bin/chfn ). Команда chfn может изменить полное имя пользователя, номер кабинета, номера офисного и домашнего телефона для учётной записи пользователя. Обычный пользователь может изменять поля только для своей учётной записи, с учётом ограничений в /etc/login.defs (конфигурация по умолчанию не позволяет пользователям менять свое полное имя)
|
|
Выполнение программы
/usr/bin/chsh
|
chsh
|
Политика позволяет управлять правами доступа к команде
chsh (/usr/bin/chsh ). Команда chsh позволяет изменить командную оболочку (или интерпретатор командной строки), запускаемую по умолчанию при регистрации пользователя в текстовой консоли (по умолчанию используется /bin/bash ). Обычный пользователь может изменить командную оболочку только для своей учётной записи (командная оболочка должна быть перечислена в файле /etc/shells ). Суперпользователь может изменить настройки для любой учётной записи (могут быть указаны любые значения)
|
|
Разрешение на использование
consolehelper
|
consolehelper
|
Определяет права доступа к инструменту
consolehelper (/usr/lib/consolehelper/priv/auth ), который позволяет пользователям консоли запускать системные программы, выполняя аутентификацию через PAM. Когда это возможно, аутентификация выполняется графически; в противном случае выполняется в текстовой консоли, с которой был запущен consolehelper
|
|
Выполнение программы
/usr/bin/gpasswd
|
gpasswd
|
Определяет права на запуск инструмента
/usr/bin/gpasswd
|
|
Выполнение программы
/usr/bin/groupmems
|
groupmems
|
Определяет права на выполнение программы
/usr/bin/groupmems
|
|
Выполнение программы
/usr/sbin/hddtemp
|
groupmems
|
Разрешение на использование инструмента
/usr/sbin/hddtemp — отслеживание температуры жёсткого диска
|
|
Разрешения для
/usr/bin/newgrp
|
newgrp
|
Разрешение на использование инструмента
/usr/bin/newgrp
|
|
Создание временных каталогов
|
pam_mktemp
|
Определяет, следует ли создавать отдельные временные каталоги для пользователей
|
|
Управление паролями с помощью
passwd
|
passwd
|
Определяет политику управления паролями с помощью команды
/usr/bin/passwd
|
|
Управление проверками сложности пароля
|
passwdqc-enforce
|
Политика управляет паролями для достаточной надежности пароля
|
|
Разрешения для
/bin/su
|
su
|
Определяет разрешения для
/bin/su
|
|
Разрешения для
/usr/bin/sudo
|
sudo
|
Определяет разрешения для
/usr/bin/sudo
|
|
Режим передачи родительской среды в sudo
|
sudoers
|
Определяет, передаются ли переменные среды в sudo
|
|
Разрешения для
/usr/bin/sudoreplay
|
sudoreplay
|
Определяет разрешения для
/usr/bin/sudoreplay
|
|
Разрешить команду
sudo членам группы «wheel»
|
sudowheel
|
Эта политика разрешает или запрещает членам группы «wheel» применять команду
sudo . Если политика включена, пользователи, входящие в группу «wheel», могут повысить системные привилегии через команду sudo . Если политика не сконфигурирована или отключена, пользователи, входящие в группу «wheel», не смогут применить команду sudo
|
|
Метод аутентификации
|
system-auth
|
Определяет метод аутентификации пользователя
|
|
Разрешения для
/usr/lib/chkpwd/tcb_chkpwd
|
tcb_chkpwd
|
Определяет разрешения для привилегированного помощника
/usr/lib/chkpwd/tcb_chkpwd
|
|
Разрешения для
/usr/bin/write
|
write
|
Определяет разрешения для
/usr/bin/write
|
|
Примечание
/etc/samba/smb.conf
в секции [global] подключен файл /etc/samba/usershares.conf
(include = /etc/samba/usershares.conf).
Таблица 28.4. Категория «Службы»
Политика
|
Control
|
Описание
|
Режимы
|
---|---|---|---|
Права доступа и поведение очереди заданий
/usr/bin/at
|
at
|
Политика позволяет контролировать поведение и права доступа для запуска очереди заданий (права доступа для запуска
/usr/bin/at )
|
|
Режим демона NTP Chrony
|
chrony
|
Политика определяет режим работы (конфигурацию) демона Chrony, который реализует функции сетевого протокола времени
|
|
Разрешение на использование
crontab
|
crontab
|
Политика определяет права доступа к инструменту
crontab (/usr/bin/crontab )
|
|
Режим CUPS
|
cups
|
Политика определяет поведение CUPS
|
|
Обратный поиск DNS для запросов OpenLDAP
|
ldap-reverse-dns-lookup
|
Политика определяет, разрешен ли обратный поиск DNS для запросов OpenLDAP
|
|
Проверка сертификата при установлении соединений TLS OpenLDAP
|
ldap-tls-cert-check
|
Политика определяет режим проверки сертификата при установке TLS соединений OpenLDAP
|
|
Режим работы Postfix MTA
|
postfix
|
Политика определяет режим работы MTA Postfix (почтовый транспортный агент)
|
|
Разрешения для
/usr/sbin/postqueue
|
postqueue
|
Определяет разрешения для
/usr/sbin/postqueue
|
|
Режим работы Rpcbind
|
rpcbind
|
Политика определяет режим работы
rpcbind (/sbin/rpcbind )
|
|
Поддержка SFTP на сервере OpenSSH
|
sftp
|
Политика определяет поддержку SFTP на сервере OpenSSH
|
|
Поддержка аутентификации OpenSSH-клиентов через GSSAPI
|
ssh-gssapi-auth
|
Эта политика определяет функциональные возможности поддержки аутентификации OpenSSH-клиентов через GSSAPI
|
|
Samba опции
|
|||
Гостевой доступ к общим каталогам
|
smb-conf-usershare-allow-guests
|
Политика управляет возможностью предоставления гостевого доступа общему ресурсу.
Данная политика управляет параметром
usershare allow guests в файле /etc/samba/usershares.conf .
|
|
Доступ к общим каталогам других пользователей
|
smb-conf-usershare-owner-only
|
Политика управляет правом пользователя на предоставление общего доступа или доступ к каталогу, если пользователь не является владельцем этого каталога.
Данная политика управляет параметром
usershare owner only в файле /etc/samba/usershares.conf .
|
|
Доступ членам группы «sambashare» к управлению общими каталогами
|
role-sambashare
|
Политика управляет разрешением членам группы «sambashare» управлять общими каталогами.
Конфигурации пользовательских общих ресурсов расположены в каталоге
/var/lib/samba/usershares , права на запись в котором имеют члены группы «usershares». Данная политика позволяет расширить привилегии членов группы «sambashare», добавляя их в группу «usershares».
|
|
Доступ членам группы «users» к управлению общими каталогами
|
role-usershares
|
Политика управляет разрешением членам группы «users» управлять общими каталогами.
Конфигурации пользовательских общих ресурсов расположены в каталоге
/var/lib/samba/usershares , права на запись в котором имеют члены группы «usershares». Данная политика позволяет расширить привилегии членов группы «users», добавляя их в группу «usershares».
|
|
Запрет на создание общих каталогов в системных каталогах
|
smb-conf-usershare-deny-list
|
Данная политика управляет параметром
usershare prefix deny list в файле /etc/samba/usershares.conf — открывая или закрывая комментарием этот параметр.
Параметр
usershare prefix deny list определяет каталоги в корневом каталоге (/), в которых пользователю запрещено создавать общие каталоги. Если абсолютный путь к общему каталогу пользователя начинается с одного из перечисленных каталогов, то доступ к нему будет запрещен. Таким образом ограничивается список каталогов, в которых возможно создавать общие пользовательские каталоги. По умолчанию в параметре usershare prefix deny list заданы каталоги: /etc , /dev , /sys , /proc .
Если настроен список запрещенных каталогов usershare prefix deny list, и список разрешенных каталогов usershare prefix allow list, сначала обрабатывается список запрета, а затем уже список разрешений.
|
|
Разрешение на создание общих каталогов в системных каталогах
|
smb-conf-usershare-allow-list
|
Данная политика управляет параметром
usershare prefix allow list в файле /etc/samba/usershares.conf — открывая или закрывая комментарием этот параметр.
Параметр
usershare prefix allow list определяет каталоги в корневом каталоге (/), в которых пользователю разрешено создавать общие каталоги. Если абсолютный путь к общему каталогу пользователя не начинается с одного из перечисленных каталогов, то доступ к нему будет запрещен. Таким образом ограничивается список каталогов, в которых возможно создавать общие пользовательские каталоги. По умолчанию в параметре usershare prefix allow list заданы каталоги: /home , /srv , /mnt , /media , /var .
Если настроен список запрещенных каталогов usershare prefix deny list, и список разрешенных каталогов usershare prefix allow list, сначала обрабатывается список запрета, а затем уже список разрешений.
|
|
Разрешение на создание пользовательских общих каталогов
|
smb-conf-usershare
|
Политика управляет возможностью создания пользовательских общих каталогов на компьютере.
Дананя политика управляет параметром
usershare max shares в файле /etc/samba/usershares.conf , который устанавливает предельное число общих каталогов.
|
|
SSHD опции
|
|||
Контроль доступа по группам к серверу OpenSSH
|
ssh-gssapi-auth
|
Эта политика включает в службе удаленного доступа OpenSSH контроль доступа по списку разрешенных групп
|
|
Группы для контроля доступа к серверу OpenSSH
|
sshd-allow-groups-list
|
Эта политика определяет, какие группы входят в список разрешенных для службы удаленного доступа к серверу OpenSSH
|
|
Поддержка GSSAPI-аутентификации на сервере OpenSSH
|
sshd-gssapi-auth
|
Эта политика включает поддержку аутентификации с использованием GSSAPI на сервере OpenSSH
|
|
Аутентификация по паролю на сервере OpenSSH
|
sshd-password-auth
|
Эта политика включает поддержку аутентификации по паролю на сервере OpenSSH
|
|
Аутентификация суперпользователя на сервере OpenSSH
|
sshd-permit-root-login
|
Эта политика определяет режимы аутентификации для суперпользователя (root) на сервере OpenSSH
|
|
SSSD опции
|
|||
Контроль доступа в SSSD через групповые политики
|
sssd-ad-gpo-access-control
|
Эта политика определяет в каком режиме будет осуществляться контроль доступа в SSSD основанный на групповых политиках Active Directory (GPO)
|
|
Игнорирование политик при недоступности GPT
|
sssd-ad-gpo-ignore-unreadable
|
Эта настройка определяет будут ли проигнорированы правила управления доступом в SSSD основанные на групповых политиках, если недоступен какой-либо шаблон (GPT) объекта групповой политики (GPO)
|
|
Кеширование учётных данных пользователей
|
sssd-cache-credentials
|
Эта политика определяет, будут ли учётные данные удалённых пользователей сохраняться в локальном кеше SSSD
|
|
Режим привилегий службы SSSD
|
sssd-drop-privileges
|
Эта политика позволяет сбросить права службы SSSD, чтобы избежать работы от имени суперпользователя (root)
|
|
Обновление DNS-записей прямой зоны
|
sssd-dyndns-update
|
Эта политика позволяет включить или отключить автоматическое обновление DNS-записей (защищенных с помощью GSS-TSIG) с IP-адресом клиента через SSSD
|
|
Обновление DNS-записей обратной зоны
|
sssd-dyndns-update-ptr
|
Данная политика определяет будет ли обновляться клиентская PTR-запись (защищенная с помощью GSS-TSIG). Эта политика работает только если включено «Обновление DNS-записей прямой зоны»
|
|
Таблица 28.5. Категория «Сетевые приложения»
Политика
|
Control
|
Описание
|
Режимы
|
---|---|---|---|
Разрешение на использование
/usr/bin/mtr
|
mtr
|
Разрешение на использование сетевого инструмента
/usr/bin/mtr
|
|
Разрешения для
/usr/bin/ping
|
ping
|
Эта политика определяет разрешения для
/usr/bin/ping
|
|
Разрешения для
/usr/sbin/pppd
|
ppp
|
Эта политика определяет разрешения для
/usr/sbin/pppd
|
|
Разрешения для wireshark-capture (
dumpcap )
|
wireshark-capture
|
Эта политика определяет функциональные возможности (режимы) разрешения для захвата wireshark (
/usr/bin/dumpcap )
|
|
Таблица 28.6. Категория «Приложения для CD/DVD»
Политика
|
Control
|
Описание
|
Режимы
|
---|---|---|---|
Разрешение на использование
/usr/bin/dvd-ram-control
|
dvd-ram-control
|
Эта политика определяет права доступа к
/usr/bin/dvd-ram-control
|
|
Разрешения на использование
/usr/bin/dvd+rw-booktype
|
dvd+rw-booktype
|
Эта политика определяет права доступа к
/usr/bin/dvd+rw-booktype
|
|
Разрешения на использование
/usr/bin/dvd+rw-format
|
dvd+rw-format
|
Эта политика определяет права доступа к
/usr/bin/dvd+rw-format
|
|
Разрешения на использование
/usr/bin/dvd+rw-mediainfo
|
dvd+rw-mediainfo
|
Эта политика определяет права доступа к
/usr/bin/dvd+rw-mediainfo
|
|
Разрешения на использование
/usr/bin/growisofs
|
growisofs
|
Эта политика определяет права на использование инструмента
/usr/bin/growisofs
|
|
Таблица 28.7. Категория «Монтирование»
Политика
|
Control
|
Описание
|
Режимы
|
---|---|---|---|
Доступ к инструментам FUSE
|
fusermount
|
Эта политика определяет права доступа для монтирования файловой системы FUSE (выполнение программ
/usr/bin/fusermount и /usr/bin/fusermount3 )
|
|
Разрешения для
/bin/mount и /bin/umount
|
mount
|
Эта политика определяет разрешения для
/bin/mount и /bin/umount
|
|
Разрешения для
/sbin/mount.nfs
|
nfsmount
|
Эта политика определяет разрешения для
/sbin/mount.nfs
|
|
Правила подключения USB-накопителей
|
udisks2
|
Эта политика определяет правила подключения USB-накопителей
|
|
Таблица 28.8. Категория «Виртуализация»
Политика
|
Control
|
Описание
|
Режимы
|
---|---|---|---|
Разрешения для VirtualBox
|
virtualbox
|
Эта политика определяет разрешения для VirtualBox
|
|
Таблица 28.9. Категория «Графическая подсистема»
Политика
|
Control
|
Описание
|
Режимы
|
---|---|---|---|
Cписок пользователей в greeter (LightDM)
|
lightdm-greeter-hide-users
|
Эта политика определяет, будет ли показан список всех пользователей при входе в систему с помощью LightDM (в greeter — на экране приветствия/входа в систему LightDM) или нет
|
|
Стандартные каталоги в home
|
xdg-user-dirs
|
Эта политика определяет, работает ли функция стандартных каталогов (Документы, Загрузки, Изображения и т.д.) xdg-user-dirs в домашнем каталоге (home) пользователя
|
|
Разрешения для Xorg
|
xorg-server
|
Эта политика определяет разрешения для Xorg (
/usr/bin/Xorg )
|
|
Примечание
/etc/polkit-1/rules.d/50-default.rules
:
polkit.addAdminRule(function(action, subject) { return ["unix-group:wheel"]; });По умолчанию запрашивается пароль пользователя, находящегося в группе wheel.
49-alt_group_policy_permissions.rules
, для пользовательской политики — 48-alt_group_policy_permissions_user.<USERNAME>.rules
. Правила для пользовательской политики обрабатываются до правил для машинной политики. У машинных политик имеются блокировки (параметр Блокировать), при установке которых машинные политики становятся приоритетнее пользовательских (создается файл правил 47-alt_group_policy_permissions.rules
).
Таблица 28.10. Ограничения Accounts
Политика
|
Описание
|
Правило Polkitd для службы Accounts (org.freedesktop.accounts)
|
---|---|---|
Ограничение возможности изменения конфигурации экрана входа в систему
|
Данная политика управляет ограничением возможности изменения конфигурации экрана входа в систему
|
set-login-option
|
Ограничение возможности изменения собственного пароля пользователя
|
Данная политика управляет ограничением возможности изменения собственного пароля пользователя
|
change-own-password
|
Ограничение возможности изменения собственных пользовательских данных
|
Данная политика управляет ограничением возможности изменения собственных пользовательских данных
|
change-own-user-data
|
Ограничение возможности управления учетными записями пользователей
|
Данная политика управляет ограничением возможности управления учетными записями пользователей
|
user-administration
|
Таблица 28.11. Ограничения ColorManager
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности изменения цветового профиля
|
Политика ограничивает возможность изменения цветового профиля
|
org.freedesktop.color-manager.modify-profile
|
Ограничение возможности изменения цветовых параметров для устройства
|
Политика ограничивает возможность изменения цветовых параметров для устройства
|
org.freedesktop.color-manager.modify-device
|
Ограничение возможности использования цветового датчика
|
Политика ограничивает возможность использования цветового датчика
|
org.freedesktop.color-manager.sensor-lock
|
Ограничение возможности создания цветового профиля
|
Политика ограничивает возможность создания цветового профиля
|
org.freedesktop.color-manager.create-profile
|
Ограничение возможности создания цветоуправляемого устройства
|
Политика управляет ограничением возможности создания цветоуправляемого устройства
|
org.freedesktop.color-manager.create-device
|
Ограничение возможности удаления цветового профиля
|
Политика ограничивает возможность удаления цветового профиля
|
org.freedesktop.color-manager.delete-profile
|
Ограничение возможности удаления цветоуправляемого устройства
|
Политика ограничивает возможность удаления цветоуправляемого устройства
|
org.freedesktop.color-manager.delete-device
|
Ограничение возможности установки цветовых профилей в системный каталог
|
Политика ограничивает возможность установки цветовых профилей в системный каталог
|
org.freedesktop.color-manager.install-system-wide
|
Ограничение возможности временной блокировки цветового профиля устройства
|
Политика управляет ограничением возможности временной блокировки цветового профиля устройства.
Метод device-inhibit утилиты colormgr блокирует цветовой профиль для применения к устройству. Блокировка устанавливается на время (в секундах). При параметре timeout равным «0», применение цветового профиля к устройству будет заблокировано «навсегда», до прекращения работы утилиты colormgr. Polkit позволяет ограничить доступ пользователя к данному методу.
|
org.freedesktop.color-manager.device-inhibit
|
Таблица 28.12. Ограничения DisplayManager
Политика
|
Описание
|
Правило Polkitd для службы DisplayManager
|
---|---|---|
Ограничение доступа к своей учетной записи
|
Данная политика управляет ограничением возможности доступа к своей учетной записи
|
org.freedesktop.DisplayManager.AccountsService.ModifyOwn
|
Ограничение доступа к списку учетных записей пользователей
|
Данная политика управляет ограничением возможности доступа к списку учетных записей пользователей
|
org.freedesktop.DisplayManager.AccountsService.ModifyAny
|
Ограничение чтения списка учетных записей пользователей
|
Данная политика управляет ограничением возможности чтения списка учетных записей пользователей
|
org.freedesktop.DisplayManager.AccountsService.ReadAny
|
Таблица 28.13. Ограничения HostName
Политика
|
Описание
|
Правило Polkitd для HostName
|
---|---|---|
Ограничение возможности установки имени хоста
|
Данная политика управляет ограничением возможности установки имени хоста
|
org.freedesktop.hostname1.set-hostname
|
Ограничение возможности установки информации о машине
|
Данная политика управляет ограничением возможности установки информации о машине
|
org.freedesktop.hostname1.set-machine-info
|
Ограничение возможности установки статического имени хоста
|
Данная политика управляет ограничением возможности установки статического имени хоста
|
org.freedesktop.hostname1.set-static-hostname
|
Таблица 28.14. Ограничения для работы с токенами и смарт-картами
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности доступа к демону PC/SC
|
Данная политика управляет ограничением возможности доступа к демону PC/SC и регулирует работу с токенами
|
org.debian.pcsc-lite.access_pcsc
|
Ограничение возможности доступа к смарт-картам
|
Данная политика управляет ограничением возможности доступа к смарт-картам
|
org.debian.pcsc-lite.access_card
|
Таблица 28.15. Ограничения службы Login
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности блокировки или разблокировки экрана активных сеансов
|
Политика ограничивает возможность блокировки или разблокировки экрана активных сеансов
|
org.freedesktop.login1.lock-sessions
|
Ограничение возможности выключения питания системы
|
Политика ограничивает возможность выключения питания системы
|
org.freedesktop.login1.power-off
|
Ограничение возможности выключения системы, когда приложение запрещает это действие
|
Политика ограничивает возможность выключения системы, когда приложение запрещает это действие
|
org.freedesktop.login1.power-off-ignore-inhibit
|
Ограничение возможности выключения системы, при наличии активных сеансов других пользователей
|
Политика ограничивает возможность выключения системы, при наличии активных сеансов других пользователей
|
org.freedesktop.login1.power-off-multiple-sessions
|
Ограничение возможности изменения сеанса виртуального терминала
|
Политика управляет ограничением возможности изменить сеанс виртуального терминала
|
org.freedesktop.login1.chvt
|
Ограничение возможности остановки системы
|
Политика ограничивает возможность остановки системы
|
org.freedesktop.login1.halt
|
Ограничение возможности остановки системы, пока приложение запрещает это действие
|
Политика ограничивает возможность остановки системы, пока приложение запрещает это действие
|
org.freedesktop.login1.halt-ignore-inhibit
|
Ограничение возможности остановки системы, при наличии активных сеансов других пользователей
|
Политика ограничивает возможность остановки системы, при наличии активных сеансов других пользователей
|
org.freedesktop.login1.halt-multiple-sessions
|
Ограничение возможности очистки устройства в месте привязки (изменение способа подключения устройств к рабочим местам)
|
Политика управляет ограничением возможности очистки устройства в месте привязки (изменение способа подключения устройств к рабочим местам)
|
org.freedesktop.login1.flush-devices
|
Ограничение возможности перевода системы в спящий режим
|
Политика ограничивает возможность перевода системы в спящий режим
|
org.freedesktop.login1.hibernate
|
Ограничение возможности перевода системы в спящий режим, пока приложение препятствует этому
|
Политика ограничивает возможность перевода системы в спящий режим, пока приложение препятствует этому
|
org.freedesktop.login1.hibernate-ignore-inhibit
|
Ограничение возможности перевода системы в спящий режим, при наличии активных сеансов других пользователей
|
Политика ограничивает возможность перевода системы в спящий режим, при наличии активных сеансов других пользователей
|
org.freedesktop.login1.hibernate-multiple-sessions
|
Ограничение возможности перезагрузки системы
|
Политика ограничивает возможность перезагрузки системы
|
org.freedesktop.login1.reboot
|
Ограничение возможности перезагрузки системы, когда приложение препятствует этому действию
|
Политика ограничивает возможность перезагрузки системы, когда приложение препятствует этому действию
|
org.freedesktop.login1.reboot-ignore-inhibit
|
Ограничение возможности перезагрузки системы, при наличии активных сеансов других пользователей
|
Политика ограничивает возможность перезагрузки системы, при наличии активных сеансов других пользователей
|
org.freedesktop.login1.reboot-multiple-sessions
|
Ограничение возможности приложениям блокировать выключение системы
|
Политика ограничивает возможность приложениям блокировать выключение системы
|
org.freedesktop.login1.inhibit-block-shutdown
|
Ограничение возможности приложениям запрещать автоматическое приостановление работы системы
|
Политика ограничивает возможность приложениям запрещать автоматическое приостановление работы системы
|
org.freedesktop.login1.inhibit-block-idle
|
Ограничение возможности приложениям запрещать низкоуровневую обработку аппаратного ключа гибернации (энергосбережения) системы
|
Политика ограничивает возможность приложениям запрещать низкоуровневую обработку аппаратного ключа гибернации (энергосбережения) системы
|
org.freedesktop.login1.inhibit-handle-hibernate-key
|
Ограничение возможности приложениям запрещать низкоуровневую обработку аппаратного переключателя крышки (устройства)
|
Политика ограничивает возможность приложениям запрещать низкоуровневую обработку аппаратного переключателя крышки (устройства)
|
org.freedesktop.login1.inhibit-handle-lid-switch
|
Ограничение возможности приложениям запрещать низкоуровневую обработку аппаратной клавиши перезагрузки системы
|
Политика ограничивает возможность приложениям запрещать низкоуровневую обработку аппаратной клавиши перезагрузки системы
|
org.freedesktop.login1.inhibit-handle-reboot-key
|
Ограничение возможности приложениям запрещать низкоуровневую обработку аппаратной клавиши питания системы
|
Политика ограничивает возможность приложениям запрещать низкоуровневую обработку аппаратной клавиши питания системы
|
org.freedesktop.login1.inhibit-handle-power-key
|
Ограничение возможности приложениям запрещать низкоуровневую обработку аппаратной клавиши приостановки системы
|
Политика ограничивает возможность приложениям запрещать низкоуровневую обработку аппаратной клавиши приостановки системы
|
org.freedesktop.login1.inhibit-handle-suspend-key
|
Ограничение возможности приложениям запрещать системный сон
|
Политика ограничивает возможность приложениям запрещать системный сон
|
org.freedesktop.login1.inhibit-block-sleep
|
Ограничение возможности приложениям откладывать выключение системы
|
Политика ограничивает возможность приложениям откладывать выключение системы
|
org.freedesktop.login1.inhibit-delay-shutdown
|
Ограничение возможности приложениям откладывать переход в спящий режим
|
Политика ограничивает возможность приложениям откладывать переход в спящий режим
|
org.freedesktop.login1.inhibit-delay-sleep
|
Ограничение возможности приостановки работы системы
|
Политика ограничивает возможность приостановки работы системы
|
org.freedesktop.login1.suspend
|
Ограничение возможности приостановки работы системы, пока приложение препятствует этому действию
|
Политика ограничивает возможность приостановки работы системы, пока приложение препятствует этому действию
|
org.freedesktop.login1.suspend-ignore-inhibit
|
Ограничение возможности приостановки работы системы, при наличии активных сеансов других пользователей
|
Политика ограничивает возможность приостановки работы системы, при наличии активных сеансов других пользователей
|
org.freedesktop.login1.suspend-multiple-sessions
|
Ограничение возможности присоединения устройств к рабочим местам
|
Политика управляет ограничением возможности присоединить устройства к рабочим местам
|
org.freedesktop.login1.attach-device
|
Ограничение возможности разрешения незалогиненному пользователю запускать программы
|
Политика ограничивает возможность разрешения незалогиненному пользователю запускать программы
|
org.freedesktop.login1.set-self-linger
|
Ограничение возможности разрешения незалогиненным пользователям запускать программы
|
Политика ограничивает возможность разрешения незалогиненным пользователям запускать программы
|
org.freedesktop.login1.set-user-linger
|
Ограничение возможности указания загрузчику системы на загрузку в определенную запись загрузчика
|
Политика ограничивает возможность указания загрузчику системы на загрузку в определенную запись загрузчика
|
org.freedesktop.login1.set-reboot-to-boot-loader-entry
|
Ограничение возможности указания загрузчику системы на необходимость загрузки в меню загрузчика
|
Политика ограничивает возможность указания загрузчику системы на необходимость загрузки в меню загрузчика
|
org.freedesktop.login1.set-reboot-to-boot-loader-menu
|
Ограничение возможности указания микропрограмме системы на необходимость перезагрузки в интерфейс настройки микропрограммы
|
Политика ограничивает возможность указания микропрограмме системы на необходимость перезагрузки в интерфейс настройки микропрограммы
|
org.freedesktop.login1.set-reboot-to-firmware-setup
|
Ограничение возможности управления активными сеансами, пользователями и местами
|
Политика ограничивает возможность управления активными сеансами, пользователями и местами
|
org.freedesktop.login1.manage
|
Ограничение возможности установки «причины» перезагрузки в ядре
|
Политика ограничивает возможность установить «причины» перезагрузки в ядре
|
org.freedesktop.login1.set-reboot-parameter
|
Ограничение возможности установки сообщения на стене (сообщение, которое будет отправлено на все терминалы)
|
Политика ограничивает возможность установки сообщения на стене (сообщение, которое будет отправлено на все терминалы)
|
org.freedesktop.login1.set-wall-message
|
Таблица 28.16. Ограничения службы Machine
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности авторизации в локальном контейнере
|
Политика управляет ограничением возможности авторизации в локальном контейнере
|
org.freedesktop.machine1.login
|
Ограничение возможности авторизации на локальном хосте
|
Политика управляет ограничением возможности авторизации на локальном хосте
|
org.freedesktop.machine1.host-login
|
Ограничение возможности получения интерпретатора командной строки (командной оболочки) в локальном контейнере
|
Политика управляет ограничением возможности получения интерпретатора командной строки (командной оболочки) в локальном контейнере
|
org.freedesktop.machine1.shell
|
Ограничение возможности получения интерпретатора командной строки (командной оболочки) на локальном хосте
|
Политика управляет ограничением возможности получения интерпретатора командной строки (командной оболочки) на локальном хосте
|
org.freedesktop.machine1.host-shell
|
Ограничение возможности получения псевдотелетайпа (TTY) в локальном контейнере
|
Политика управляет ограничением возможности получения псевдотелетайпа (TTY) в локальном контейнере
|
org.freedesktop.machine1.open-pty
|
Ограничение возможности получения псевдотелетайпа (TTY) на локальном хосте
|
Политика управляет ограничением возможности получения псевдотелетайпа (TTY) на локальном хосте
|
org.freedesktop.machine1.host-open-pty
|
Ограничение возможности управления локальными виртуальными машинами и контейнерами
|
Политика управляет ограничением возможности управления локальными виртуальными машинами и контейнерами
|
org.freedesktop.machine1.manage-machines
|
Ограничение возможности управления локальными виртуальными машинами и образами контейнеров
|
Политика управляет ограничением возможности управления локальными виртуальными машинами и образами контейнеров
|
org.freedesktop.machine1.manage-images
|
Таблица 28.17. Ограничения ModemManager
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности блокировки и управления мобильным широкополосным устройством
|
Политика ограничивает возможность изменения конфигурации мобильного широкополосного устройства
|
org.freedesktop.ModemManager1.Device.Control
|
Ограничение возможности добавления, изменения или удаления контактов устройства
|
Политика управляет ограничением возможности добавления, изменения и удаления контактов мобильного широкополосного доступа
|
org.freedesktop.ModemManager1.Contacts
|
Ограничение возможности запросов и использования сетевой информации и услуг
|
Политика ограничивает возможность запрашивать или использовать сетевую информацию и службы
|
org.freedesktop.ModemManager1.USSD
|
Ограничение возможности запросов информации о сетевом времени и часовом поясе
|
Политика ограничивает возможность запрашивать информацию о сетевом времени
|
org.freedesktop.ModemManager1.Time
|
Ограничение возможности отправки, сохранения, изменения и удаления текстовых сообщений
|
Политика ограничивает возможность отправки или манипулирования текстовыми сообщениями устройства
|
org.freedesktop.ModemManager1.Messaging
|
Ограничение возможности приема входящих голосовых вызовов или начала исходящего голосового вызова
|
Политика ограничивает возможность голосовых вызовов
|
org.freedesktop.ModemManager1.Voice
|
Ограничение возможности просмотра информации о географическом положении и позиционировании
|
Политика ограничивает возможность просмотра информации о географическом положении
|
org.freedesktop.ModemManager1.Location
|
Ограничение возможности управления демоном Modem Manager
|
Политика ограничивает возможность управления диспетчером модемов
|
org.freedesktop.ModemManager1.Control
|
Ограничение возможности управления прошивкой мобильного широкополосного устройства
|
Политика ограничивает возможность управления микропрограммой мобильного широкополосного устройства
|
org.freedesktop.ModemManager1.Firmware
|
Таблица 28.18. Ограничения NetworkManager
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности включения или отключения сети
|
Политика управляет ограничением возможности включения или отключения сетевого взаимодействия системы. Если сетевое взаимодействие отключено, все управляемые интерфейсы отсоединяются и деактивируются. Если сетевое взаимодействие включено, все управляемые интерфейсы доступны для активации
|
org.freedesktop.NetworkManager.enable-disable-network
|
Ограничение возможности включения или отключения статистики
|
Политика управляет ограничением возможности включения или отключения счётчика статистики устройства
|
org.freedesktop.NetworkManager.enable-disable-statistics
|
Ограничение возможности включения или отключения устройств Wi-Fi
|
Данная политика управляет ограничением возможности включения или отключения устройств Wi-Fi
|
org.freedesktop.NetworkManager.enable-disable-wifi
|
Ограничение возможности включения или отключения устройств WiMAX
|
Данная политика управляет ограничением возможности включения или отключения мобильных широкополосных устройств WiMAX
|
org.freedesktop.NetworkManager.enable-disable-wimax
|
Ограничение возможности включения или отключения WWAN-устройств
|
Политика управляет ограничением возможности включения или отключения WWAN-устройств
|
org.freedesktop.NetworkManager.enable-disable-wwan
|
Ограничение возможности изменения общих настроек DNS
|
Политика управляет ограничением возможности изменений общей конфигурации DNS
|
org.freedesktop.NetworkManager.settings.modify.global-dns
|
Ограничение возможности изменения персональных сетевых настроек
|
Данная политика управляет ограничением возможности изменений личных сетевых соединений
|
org.freedesktop.NetworkManager.settings.modify.own
|
Ограничение возможности изменения постоянного имени хоста
|
Данная политика управляет ограничением возможности изменения постоянного имени (hostname) системы
|
org.freedesktop.NetworkManager.settings.modify.hostname
|
Ограничение возможности изменения сетевых подключений для всех пользователей
|
Политика управляет ограничением возможности изменения системных сетевых настроек для всех пользователей
|
org.freedesktop.NetworkManager.settings.modify.system
|
Ограничение возможности изменения системных настроек для сети
|
Политика управляет ограничением возможности изменения системных сетевых настроек
|
org.freedesktop.NetworkManager.network-control
|
Ограничение возможности изменения состояния сна NetworkManager
|
Данная политика управляет ограничением возможности перевода NetworkManager в спящий режим или пробуждения из спящего режима (должна использоваться только для управления питанием системы).
В спящем состоянии все интерфейсы, которыми управляет NetworkManager, деактивированы. В бодрствующем состоянии устройства доступны для активации. Обращение к состоянию сна NetworkManager не вызывается пользователем напрямую; функция предназначена для отслеживания приостановки/возобновления работы системы.
|
org.freedesktop.NetworkManager.sleep-wake
|
Ограничение возможности отката конфигурации сетевых интерфейсов к контрольной точке
|
Политика управляет ограничением возможности создания контрольной точки сетевых интерфейсов или отката к ней
|
org.freedesktop.NetworkManager.checkpoint-rollback
|
Ограничение возможности перезагрузки NetworkManager
|
Политика управляет ограничением возможности перезагрузки конфигурации NetworkManager
|
org.freedesktop.NetworkManager.reload
|
Ограничение возможности проверки подключения сети
|
Политика управляет ограничением возможности включения или отключения проверки подключения к сети
|
org.freedesktop.NetworkManager.enable-disable-connectivity-check
|
Ограничение возможности сканирования Wi-Fi сетей
|
Данная политика управляет ограничением возможности сканирования Wi-Fi сетей
|
org.freedesktop.NetworkManager.wifi.scan
|
Ограничение возможности совместных подключений через защищённую сеть Wi-Fi
|
Политика управляет ограничением возможности совместного подключения через защищенную сеть Wi-Fi
|
org.freedesktop.NetworkManager.wifi.share.protected
|
Ограничение возможности совместных подключений через открытую сеть Wi-Fi
|
Политика управляет ограничением возможности совместного подключения ерез открытую сеть Wi-Fi
|
org.freedesktop.NetworkManager.wifi.share.open
|
$ nmcli general permissions
PERMISSION VALUE
org.freedesktop.NetworkManager.checkpoint-rollback auth
org.freedesktop.NetworkManager.enable-disable-connectivity-check нет
org.freedesktop.NetworkManager.enable-disable-network auth
org.freedesktop.NetworkManager.enable-disable-statistics auth
org.freedesktop.NetworkManager.enable-disable-wifi да
org.freedesktop.NetworkManager.enable-disable-wimax да
org.freedesktop.NetworkManager.enable-disable-wwan да
org.freedesktop.NetworkManager.network-control да
org.freedesktop.NetworkManager.reload auth
org.freedesktop.NetworkManager.settings.modify.global-dns нет
org.freedesktop.NetworkManager.settings.modify.hostname auth
org.freedesktop.NetworkManager.settings.modify.own auth
org.freedesktop.NetworkManager.settings.modify.system да
org.freedesktop.NetworkManager.sleep-wake да
org.freedesktop.NetworkManager.wifi.scan да
org.freedesktop.NetworkManager.wifi.share.open да
org.freedesktop.NetworkManager.wifi.share.protected да
Таблица 28.19. Ограничения PackageKit
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности восстановления пакетов в системе
|
Данная политика ограничивает пользователям возможность восстановления системы пакетов, если в ней возникли проблемы, например, пропали зависимости, посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.repair-system
|
Ограничение возможности добавления ключа электронной подписи
|
Данная политика ограничивает пользователям возможность добавления ключа подписи в список доверенных ключей системы посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.system-trust-signing-key
|
Ограничение возможности обновления пакетов
|
Данная политика ограничивает пользователям возможность обновления пакетов, установленных в систему, посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.system-update
|
Ограничение возможности обновления системных источников пакетов
|
Данная политика ограничивает пользователям возможность обновления системных источников пакетов посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.system-sources-refresh
|
Ограничение возможности переустановки пакетов
|
Данная политика ограничивает пользователям возможность переустановки пакетов посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.package-reinstall
|
Ограничение возможности принятия лицензионного соглашения
|
Данная политика ограничивает пользователям возможность принятия пользовательского соглашения программ посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.package-eula-accept
|
Ограничение возможности редактирования источников пакетов
|
Данная политика ограничивает пользователям возможность редактирования источников пакетов в системе посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.system-sources-configure
|
Ограничение возможности удаления пакетов
|
Данная политика ограничивает пользователям возможность удаления пакетов посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.package-remove
|
Ограничение возможности установки пакетов
|
Данная политика ограничивает пользователям возможность установки пакетов посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.package-install
|
Ограничение возможности установки непроверенных пакетов
|
Данная политика ограничивает пользователям возможность установки ненадёжных или непроверенных пакетов посредством интерфейса управления пакетами PackageKit
|
org.freedesktop.packagekit.package-install-untrusted
|
Таблица 28.20. Ограничения Realmd
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности возможности запустить обнаружение области Kerberos REALM
|
Данная политика управляет ограничением возможности запустить обнаружение области Kerberos REALM
|
org.freedesktop.realmd.discover-realm
|
Ограничение возможности изменения политики входа в систему
|
Данная политика управляет ограничением возможности изменения политики входа в систему
|
org.freedesktop.realmd.login-policy
|
Ограничение возможности присоединения машины к домену или Kerberos REALM
|
Данная политика управляет ограничением возможности присоединения машины к домену или Kerberos REALM
|
org.freedesktop.realmd.configure-realm
|
Ограничение возможности отключения машины из домена или Kerberos REALM
|
Данная политика управляет ограничением возможности удаления машины из домена или Kerberos REALM
|
org.freedesktop.realmd.deconfigure-realm
|
Таблица 28.21. Ограничения Systemd
Политика
|
Описание
|
Правило Polkitd для службы Systemd (org.freedesktop.systemd1)
|
---|---|---|
Ограничение возможности отправки пароля системе
|
Данная политика управляет ограничением возможности отправки пароля системе
|
reply-password
|
Ограничение возможности перезагрузки состояния systemd
|
Данная политика управляет ограничением возможности перезагрузки состояния systemd
|
reload-daemon
|
Ограничение возможности управления системными службами или другими устройствами
|
Данная политика управляет ограничением возможности управления системными службами или другими устройствами
|
manage-units
|
Ограничение возможности управления файлами системных служб или модулей
|
Данная политика управляет ограничением возможности управления файлами системных служб или модулей
|
manage-unit-files
|
Ограничение возможности установки или удаления переменных окружения менеджера систем и служб
|
Данная политика управляет ограничением возможности установки или удаления переменных окружения менеджера систем и служб
|
set-environment
|
Таблица 28.22. Ограничения TimeDate
Политика
|
Описание
|
Правило Polkitd для службы TimeDate (org.freedesktop.timedate1)
|
---|---|---|
Ограничение возможности включения или выключения синхронизации сетевого времени
|
Данная политика управляет ограничением возможности включения или выключения синхронизации сетевого времени
|
set-ntp
|
Ограничение возможности установки системного времени
|
Данная политика управляет ограничением возможности установки системного времени
|
set-time
|
Ограничение возможности установки системного часового пояса
|
Данная политика управляет ограничением возможности установки системного часового пояса
|
set-timezone
|
Ограничение возможности установки RTC в местный часовой пояс или UTC
|
Данная политика управляет ограничением возможности установки RTC в местный часовой пояс или UTC
|
set-local-rtc
|
Таблица 28.23. Ограничения Udisks
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Общая политика ограничения возможности монтирования
|
Данная политика ограничивает возможность монтирования съёмных запоминающих устройств, монтирования системных разделов, монтирования съёмных запоминающих устройств в удалённых сеансах
|
org.freedesktop.udisks2.filesystem-mount
org.freedesktop.udisks2.filesystem-mount-other-seat
org.freedesktop.udisks2.filesystem-mount-system
|
Ограничение возможности включения/отключения SMART
|
Данная политика управляет ограничением возможности включения/отключения SMART
|
org.freedesktop.udisks2.ata-smart-enable-disable
|
Ограничение возможности демонтировать устройство, смонтированное другим пользователем
|
Данная политика управляет ограничением возможности демонтировать устройство, смонтированное другим пользователем
|
org.freedesktop.udisks2.filesystem-unmount-others
|
Ограничение возможности заблокировать зашифрованное устройство, разблокированное другим пользователем
|
Данная политика управляет ограничением возможности заблокировать зашифрованное устройство, разблокированное другим пользователем
|
org.freedesktop.udisks2.encrypted-lock-others
|
Ограничение возможности запуска самопроверки SMART
|
Данная политика управляет ограничением возможности запуска самопроверки SMART
|
org.freedesktop.udisks2.ata-smart-selftest
|
Ограничение возможности извлечь носитель
|
Данная политика управляет ограничением возможности извлечь носитель
|
org.freedesktop.udisks2.eject-media
|
Ограничение возможности извлечь носитель из дисковода, подключенного к другому рабочему месту
|
Данная политика управляет ограничением возможности извлечь носитель из дисковода, подключенного к другому рабочему месту
|
org.freedesktop.udisks2.eject-media-other-seat
|
Ограничение возможности извлечь носитель из системного диска
|
Данная политика управляет ограничением возможности извлечь носитель из системного диска
|
org.freedesktop.udisks2.eject-media-system
|
Ограничение возможности изменения настроек привода
|
Данная политика управляет ограничением возможности изменения настроек привода
|
org.freedesktop.udisks2.modify-drive-settings
|
Ограничение возможности изменения общесистемной конфигурации
|
Данная политика управляет ограничением возможности изменения общесистемной конфигурации
|
org.freedesktop.udisks2.modify-system-configuration
|
Ограничение возможности изменения петлевых (loop) устройств
|
Данная политика управляет ограничением возможности изменения петлевых (loop) устройств
|
org.freedesktop.udisks2.loop-modify-others
|
Ограничение возможности изменения системного устройства
|
Данная политика управляет ограничением возможности изменения системного устройства
|
org.freedesktop.udisks2.modify-device-system
|
Ограничение возможности изменения устройства
|
Данная политика управляет ограничением возможности изменения устройства
|
org.freedesktop.udisks2.modify-device
|
Ограничение возможности изменения устройства, подключенного к другому рабочему месту
|
Данная политика управляет ограничением возможности изменения устройства, подключенного к другому рабочему месту
|
org.freedesktop.udisks2.modify-device-other-seat
|
Ограничение возможности изменить пароль для зашифрованного устройства
|
Данная политика управляет ограничением возможности изменения пароля для зашифрованного устройства
|
org.freedesktop.udisks2.encrypted-change-passphrase
|
Ограничение возможности изменения системного пароля для зашифрованного устройства
|
Данная политика управляет ограничением возможности изменения системного пароля для зашифрованного устройства
|
org.freedesktop.udisks2.encrypted-change-passphrase-system
|
Ограничение возможности монтирования системных разделов
|
Данная политика ограничивает возможность монтирования системных разделов. Системное устройство хранения информации — это неизвлекаемое устройство. Для таких устройств переменная
HintSystem установлена в значение True . Жёсткий диск с установленной ОС относится к системным устройствам
|
org.freedesktop.udisks2.filesystem-mount-system
|
Ограничение возможности монтирования съёмных запоминающих устройств в удалённых сеансах
|
Данная политика ограничивает возможность монтирования съёмных запоминающих устройств с устройства, подключенного к удалённому рабочему месту (например, на другом компьютере или удаленной сессии)
|
org.freedesktop.udisks2.filesystem-mount-other-seat
|
Ограничение возможности монтирования файловой системы
|
Данная политика управляет ограничением возможности монтирования файловой системы устройства
|
org.freedesktop.udisks2.filesystem-mount
|
Ограничение возможности монтирования файловой системы от имени другого пользователя
|
Данная политика управляет ограничением возможности монтирования файловой системы от имени другого пользователя
|
org.freedesktop.udisks2.filesystem-mount-other-user
|
Ограничение возможности монтировать/демонтировать файловые системы, указанные в файле fstab с параметром x-udisks-auth
|
Данная политика управляет ограничением возможности монтирования/демонтирования файловых систем, указанных в файле fstab с параметром x-udisks-auth
|
org.freedesktop.udisks2.filesystem-fstab
|
Ограничение возможности надежно стереть жёсткий диск
|
Данная политика управляет ограничением возможности надежно стереть жёсткий диск
|
org.freedesktop.udisks2.ata-secure-erase
|
Ограничение возможности обновить данные SMART
|
Данная политика управляет ограничением возможности обновить данные SMART
|
org.freedesktop.udisks2.ata-smart-update
|
Ограничение возможности отменить задание
|
Данная политика управляет ограничением возможности отменить задание
|
org.freedesktop.udisks2.cancel-job
|
Ограничение возможности отменить задание, начатое другим пользователем
|
Данная политика управляет ограничением возможности отменить задание, начатое другим пользователем
|
org.freedesktop.udisks2.cancel-job-other-user
|
Ограничение возможности отправить команду ожидания для диска с удаленного места
|
Данная политика управляет ограничением возможности отправить команду ожидания для диска с удаленного места
|
org.freedesktop.udisks2.ata-standby-other-seat
|
Ограничение возможности разблокировать зашифрованное системное устройство
|
Данная политика управляет ограничением возможности разблокировать зашифрованное системное устройство
|
org.freedesktop.udisks2.encrypted-unlock-system
|
Ограничение возможности разблокировать зашифрованное устройство
|
Данная политика управляет ограничением возможности разблокировать зашифрованное устройство
|
org.freedesktop.udisks2.encrypted-unlock
|
Ограничение возможности разблокировать зашифрованное устройство, подключенное к другому рабочему месту
|
Данная политика управляет ограничением возможности разблокировать зашифрованное устройство, подключенное к другому рабочему месту
|
org.freedesktop.udisks2.encrypted-unlock-other-seat
|
Ограничение возможности разблокировать зашифрованное устройство, указанное в файле crypttab, с опцией x-udisks-auth
|
Данная политика управляет ограничением возможности разблокировать зашифрованное устройство, указанное в файле crypttab, с опцией x-udisks-auth
|
org.freedesktop.udisks2.encrypted-unlock-crypttab
|
Ограничение возможности отправить команду режима ожидания на системный диск
|
Данная политика управляет ограничением возможности отправить команду режима ожидания на системный диск
|
org.freedesktop.udisks2.ata-standby-system
|
Ограничение возможности отправить резервную команду
|
Данная политика управляет ограничением возможности отправить резервную команду
|
org.freedesktop.udisks2.ata-standby
|
Ограничение возможности разрешения на проверку состояния питания жесткого диска
|
Данная политика управляет ограничением возможности разрешения на проверку состояния питания жесткого диска
|
org.freedesktop.udisks2.ata-check-power
|
Ограничение возможности смены владельца файловой системы
|
Данная политика управляет ограничением возможности смены владельца файловой системы
|
org.freedesktop.udisks2.filesystem-take-ownership
|
Ограничение возможности удаления петлевых (loop) устройств
|
Данная политика управляет ограничением возможности удаления петлевых (loop) устройств
|
org.freedesktop.udisks2.loop-delete-others
|
Ограничение возможности разрешения управления массивами RAID
|
Данная политика управляет ограничением возможности разрешения управления массивами RAID
|
org.freedesktop.udisks2.manage-md-raid
|
Ограничение возможности управления петлевыми (loop) устройствами
|
Данная политика управляет ограничением возможности управления петлевыми (loop) устройствами
|
org.freedesktop.udisks2.loop-setup
|
Ограничение возможности управления пространством подкачки
|
Данная политика управляет ограничением возможности управления пространством подкачки
|
org.freedesktop.udisks2.manage-swapspace
|
Ограничение возможности установить данные SMART из большого двоичного объект
|
Данная политика управляет ограничением возможности установить данные SMART из большого двоичного объекта
|
org.freedesktop.udisks2.ata-smart-simulate
|
Таблица 28.24. Другие политики
Политика
|
Описание
|
Правило Polkitd
|
---|---|---|
Ограничение возможности запуска программы от имени другого пользователя
|
Данная политика управляет ограничением возможности запуска программы от имени другого пользователя
|
org.freedesktop.policykit.exec
|
{GUID GPT}/Machine/Registry.pol
и {GUID GPT}/User/Registry.pol
.
Registry.pol
:
PReg [Software\BaseALT\Policies\PolkitLocks;org.freedesktop.udisks2.filesystem-mount;;;] [Software\BaseALT\Policies\Polkit;org.freedesktop.udisks2.filesystem-mount;;;No] [Software\BaseALT\Policies\Polkit;org.freedesktop.packagekit.system-update;;;Auth_self] [Software\BaseALT\Policies\PolkitLocks;org.freedesktop.NetworkManager.network-control;;;] [Software\BaseALT\Policies\Polkit;org.freedesktop.NetworkManager.network-control;;Yes]
Примечание
/etc/polkit-1/rules.d/
).
49-gpoa_disk_permissions.rules
, для пользовательской политики — 48-gpoa_disk_permissions_user.<USERNAME>.rules
.
Примечание
{GUID GPT}/Machine/Registry.pol
и {GUID GPT}/User/Registry.pol
.
Registry.pol
:
PReg [Software\Policies\Microsoft\Windows\RemovableStorageDevices;Deny_All;;;]
Таблица 28.25. Настройки фона рабочего стола
Политика
|
Ключ
|
Описание
|
Значение
|
---|---|---|---|
Картинка фона рабочего стола
|
picture-filename
|
Позволяет установить изображение в качестве фона рабочего стола, указав файл, содержащий изображение
|
Строка, содержащая путь (с точки зрения клиента) к файлу изображения (например,
/usr/share/backgrounds/mate/nature/Wood.jpg )
|
Метод отображения картинки фона
|
picture-options
|
Устанавливает метод отображения изображения, заданного параметром Картинка фона рабочего стола
|
|
Тип градиента
|
color-shading-type
|
Устанавливает тип градиента фона рабочего стола. Этот параметр имеет смысл, только если не установлен параметр Картинка фона рабочего стола
|
|
Конечный цвет градиента
|
secondary-color
|
Устанавливает «конечный» цвет градиента фона рабочего стола. Данным цветом заканчивается градиент и, в зависимости от типа градиента, параметр определяет цвет правого или нижнего края рабочего стола. Данный параметр не используется, если в параметре Тип градиента выбрана Сплошная заливка
|
|
Начальный цвет градиента
|
primary-color
|
Устанавливает начальный цвет градиента фона рабочего стола. Данным цветом начинается градиент и, в зависимости от типа градиента, параметр определяет цвет левого или верхнего края рабочего стола, или цвет сплошной заливки
|
|
Таблица 28.26. Настройки хранителя экрана
Политика
|
Ключ
|
Описание
|
Значение
|
---|---|---|---|
Время смены тем
|
cycle-delay
|
Устанавливает интервал (в минутах) между сменами тем хранителя экрана.
Этот параметр имеет смысл только при активированном параметре Включение хранителя экрана и если для параметра Режим работы установлено значение Случайные темы.
|
Время в минутах
|
Время до блокировки паролем
|
lock-delay
|
Устанавливает количество минут, по истечении которых после активации хранителя экрана, компьютер будет заблокирован.
Этот параметр имеет смысл только при активированном параметре Включение хранителя экрана и Блокировка компьютера
|
Время в минутах
|
Блокировка компьютера
|
lock-enabled
|
Включает блокировку компьютера при активации хранителя экрана. Блокировка будет включена через интервал времени, установленный настройкой Время до блокировки паролем.
Этот параметр имеет смысл только при активированном параметре Включение хранителя экрана
|
-
|
Время до выхода из сеанса
|
logout-delay
|
Устанавливает количество минут, по истечении которых после активации хранителя экрана, при разблокировании пользователю будет предоставлена возможность выхода из сеанса.
Этот параметр имеет смысл только при активированном параметре Включение хранителя экрана и Выход из сеанса после блокировки
|
Время в минутах
|
Выход из сеанса после блокировки
|
logout-enabled
|
После некоторой задержки добавляет кнопку выхода из сеанса (Время выхода из сеанса.
) к диалогу разблокирования экрана. Время задержки указывается в настройке
Этот параметр имеет смысл только при активированном параметре Включение хранителя экрана и Блокировка компьютера (так как без блокировки не появляется диалог с кнопкой)
|
-
|
Режим работы
|
mode
|
Устанавливает режим работы хранителя экрана.
Этот параметр имеет смысл только при активированном параметре Включение хранителя экрана
|
Доступны следующие режимы:
|
Переключить пользователя после блокировки
|
user-switch-enabled
|
Добавляет кнопку
к диалогу разблокирования экрана.
Этот параметр имеет смысл только при активированном параметре Включение хранителя экрана и Блокировка компьютера (так как без блокировки не появляется диалог с кнопкой)
|
-
|
Включение хранителя экрана
|
idle-activation-enabled
|
Обеспечивает включение хранителя экрана при бездействии системы
|
-
|
Таблица 28.27. Настройки сеанса
Политика
|
Ключ
|
Описание
|
Значение
|
---|---|---|---|
Запрос при выходе из сеанса
|
logout-prompt
|
Если политика включена и для поля Запрос при выходе из сеанса выбрано значение Включено, при завершении сеанса будет выведено диалоговое окно с выбором действия:
![]()
Если политика включена и для поля Запрос при выходе из сеанса выбрано значение Отключено, завершение сеанса будет происходить автоматически, без появления диалогового окна.
|
-
|
Интервал бездействия, по истечении которого сеанс считается простаивающим
|
idle-delay
|
Устанавливает время в минутах, по истечении которого, сеанс будет считаться простаивающим.
Данная политика позволяет управлять настройкой Считать компьютер простаивающим через:
![]()
Этот параметр имеет смысл только при активированных параметрах Включение хранителя экрана и Блокировка компьютера.
|
Время в минутах
|
Отображение скрытых автоматически запускаемых приложений
|
show-hidden-apps
|
Включает отображение скрытых автоматически запускаемых приложений в меню
.
Если политика включена и для неё выбрано состояние Включено, в окне Параметры запускаемых приложений будут показаны скрытые автоматически запускаемые приложения:
![]() |
-
|
Сохранение сеансов
|
auto-save-session
|
Позволяет автоматически сохранять рабочий сеанс для восстановления при следующем запуске.
Если политика включена и для неё выбрано состояние Включено, система будет автоматически сохранять рабочий сеанс (система запомнит какие приложения были запущены при выходе из системы и автоматически запустит их при входе в систему).
|
-
|
Таймаут выхода из сеанса
|
logout-timeout
|
Позволяет установить время в секундах, по истечении которого произойдет выход из системы.
Если политика включена, при завершении сеанса и выключении компьютера, в диалоговом окне с выбором действия будет выставлен тайм-аут со значением, указанным в поле В секундах:
![]()
Если в поле В секундах указан 0, то тайм-аут будет отключен:
![]()
Если политика не сконфигурирована или отключена, значение тайм-аута будет равно 60 секундам.
|
Время в секундах
|
Таблица 28.28. Настройки ограничений пользователя
Политика
|
Ключ
|
Описание
|
Значение
|
---|---|---|---|
Запрет блокировки экрана
|
picture-filename
|
Запрещает пользователю блокировать экран паролем. При установке данной настройки, значение параметра Блокировка компьютера игнорируется
|
-
|
Запрет пользователю завершать сеанс
|
disable-log-out
|
Запрещает пользователю завершать свой сеанс
|
-
|
Запрет выбора тем рабочего стола
|
picture-filename
|
Запрещает пользователю изменять тему оформления графической среды Mate
|
-
|
Запрет переключения пользователей
|
disable-user-switching
|
Запрещает пользователю переключение на другую учётную запись, пока активен его сеанс. Отключает кнопку
в диалоговом окне, вызываемом при выборе в главном меню пункта
|
-
|
Таблица 28.29. Настройки удаленного доступа VNC
Политика
|
Ключ
|
Описание
|
Значение
|
---|---|---|---|
Альтернативный порт
|
alternative-port
|
Устанавливает альтернативный порт для удаленного подключения к рабочему столу. Используется только при установленном параметре Включить альтернативный порт
|
Значение номера порта в пределах от 5 000 до 50 000. По умолчанию используется порт 5900
|
Методы аутентификации
|
authentication-methods
|
Устанавливает методы аутентификации пользователей, подключающихся к рабочему столу. Используется только при установленном параметре Пароль для подключения
|
|
Удаленный доступ
|
enabled
|
Разрешает удаленный доступ к рабочему столу с использованием протокола RFB и VNC
|
|
Иконка подключения
|
icon-visibility
|
Управляет отображением значка подключения в области уведомления
|
|
Подтверждение при подключении
|
prompt-enabled
|
Включает запрос подтверждения при любой попытке доступа к рабочему столу. Рекомендуется при отсутствии защиты подключения паролем
|
|
Включить альтернативный порт
|
prompt-enabled
|
Включить прослушивание альтернативного порта для удалённых подключений (вместо порта по умолчанию 5 900). Порт указывается в параметре Альтернативный порт
|
|
Удалённое управление
|
view-only
|
Запрещает удалённое управление рабочим столом. Удалённым пользователям, разрешается только просматривать рабочий стол, но не управлять мышью и клавиатурой
|
|
Таблица 28.30. Настройки оконного менеджера Marco
Политика
|
Ключ
|
Описание
|
Значение
|
---|---|---|---|
Иконки заголовка окна
|
button-layout
|
Настройки расположения кнопок в заголовке окна
|
Строка вида: menu:minimize,maximize,spacer,close
Разделителем правой и левой половин является двоеточие. Имена кнопок разделяются запятыми.
Например, строка 'menu:minimize,maximize,spacer,close' — расположить кнопку меню окна слева, а справа кнопки свернуть, распахнуть, закрыть окно.
Дублирование кнопок не допускается. Неизвестные имена кнопок игнорируются без уведомления.
Специальный элемент spacer может использоваться для вставки пробела между двумя кнопками.
|
Действие по нажатию средней кнопки
|
action-middle-click-titlebar
|
Установливает действие, выполняемое по нажатию средней кнопки мыши по заголовку окна
|
|
Действие по нажатию правой кнопки
|
action-right-click-titlebar
|
Устанавливает действие, выполняемое по нажатию правой кнопки мыши по заголовку окна
|
|
Действие по двойному щелчку
|
action-double-click-titlebar
|
Устанавливает действие, выполняемое по двойному щелчку левой кнопкой мыши по заголовку окна
|
|
Изменение размеров окна при перетаскивании
|
primary-color
|
Включает изменение размеров окна при перетаскивании его в различные области экрана.
Если включено, перетаскивание окна на границу экрана распахивает окно вертикально и изменяет горизонтальный размер до половины доступного пространства.
Если активирован параметр Распахнуть окно при перетаскивании к верхнему краю экрана, перетаскивание окна наверх разворачивает окно.
|
-
|
Разворачивание при перетаскивании (Распахнуть окно при перетаскивании к верхнему краю экрана)
|
allow-top-tiling
|
Включает разворачивание окна во весь экран при перетаскивании его к верхнему краю экрана. Этот параметр имеет смысл только при активированном параметре Изменение размеров окна при перетаскивании
|
-
|
Размер окна переключения Alt+Tab
|
alt-tab-max-columns
|
Устанавливает количество колонок в окне переключения приложений Alt+Tab
|
Количество колонок
|
Задержка при восстановлении
|
alt-tab-max-columns
|
Временной интервал в миллисекундах, по истечении которого окно в фокусе будет поднято поверх остальных. Этот параметр имеет смысл только при активированном параметре Автоматически поднимать окно, получившее фокус
|
Время в миллисекундах
|
Автоматически поднимать окно, получившее фокус
|
auto-raise
|
При включении этой политики, окно, получившее фокус, автоматически отображается поверх остальных. Параметр Переключение фокуса окон должен быть установлен в Sloppy или Mouse. Интервал, по истечении которого, окно поднимается, устанавливается в параметре Задержка при восстановлении
|
-
|
Новые окна по центру
|
center-new-windows
|
Если включено, то новые окна будут открываться по центру экрана. В противном случае они будут открыты в левом верхнем углу экрана
|
-
|
Миниатюры при переключении окон
|
compositing-fast-alt-tab
|
Если включено, то вместо миниатюр предварительного просмотра в окне переключения Alt+Tab будут отображаться значки приложений
|
-
|
Режим активации окна
|
focus-mode
|
Режим переключения фокуса в окно определяет, как активируются окна
|
|
Переключение фокуса на новое окно
|
focus-new-windows
|
Определяет, как новое окно получает фокус
|
|
Размер иконок в окне Alt+Tab
|
icon-size
|
Устанавливает размер значков, отображаемых в окне переключения приложений Alt+Tab
|
Интервал допустимых значений: 8-256
|
Количество рабочих областей (мест)
|
num-workspaces
|
Установка количества рабочих мест
|
Интервал допустимых значений 1-36
|
Расположение новых окон
|
placement-mode
|
Указывает как будут позиционироваться новые окна
|
|
Граница окна при переключении с помощью Alt+Tab
|
show-tab-border
|
Выделять границу выбранного окна при переключении с помощью Alt+Tab
|
-
|
Тема оформления
|
theme
|
Устанавливает тему, отвечающую за отображение границ окон, заголовка и т.д.
|
Строка, содержащая название темы (например, Dopple)
|
Шрифт заголовка окна
|
titlebar-font
|
Устанавливает шрифт заголовков окон. Этот параметр игнорируется, если активирован параметр Системный шрифт в заголовке окна
|
Строка, содержащая название шрифта и через пробел, размер шрифта (например, Noto Sans Bold 10)
|
Системный шрифт в заголовке окна
|
titlebar-uses-system-font
|
Если включено, в заголовках окон используется стандартный системный шрифт. Параметр Шрифт заголовка окна при этом игнорируется
|
-
|
Переключение рабочих областей (столов)
|
wrap-style
|
Определяет, каким образом пролистывать от одного рабочего стола к другому на границе переключателя рабочих мест
|
|
Таблица 28.31. Настройки клавиатуры
Политика
|
Ключ
|
Описание
|
Значение
|
---|---|---|---|
Задержка перед повтором
|
delay
|
Задержка перед повтором нажатой и удерживаемой клавиши
|
Время в миллисекундах
|
Скорость повтора
|
rate
|
Устанавливает скорость повтора нажатой и удерживаемой клавиши
|
Количество повторов в секунду
|
Повторять удерживаемую нажатой клавишу
|
repeat
|
Включить повтор нажатой и удерживаемой клавиши. Если нажать и удерживать клавишу при включённом повторе ввода, действие, соответствующее клавише, будет повторяться. Например, если нажать и удерживать клавишу с буквой, то эта буква будет многократно повторена.
|
-
|
Таблица 28.32. Опции Winbind DNSupdate
Политика
|
Ключ
|
Описание
|
Значение
|
---|---|---|---|
Время хранения DNS записи
|
ttl
|
Позволяет позволяет задать время хранения DNS записи в кеше
|
Время в секундах
|
Обновление IPv4 DNS записей
|
enable-update-ipv4, ipv4_ptr_update
|
Позволяет включить обновление прямой и обратной IPv4 DNS записи компьютера. Включение параметра Обновление обратной IPv4 DNS записи имеет смысл только при включённом параметре Обновление прямой IPv4 DNS записи
|
-
|
Обновление IPv6 DNS записей
|
enable-update-ipv6, ipv6_ptr_update
|
Позволяет включить обновление прямой и обратной IPv6 DNS записи компьютера. Включение параметра Обновление обратной IPv6 DNS записи имеет смысл только при включённом параметре Обновление прямой IPv6 DNS записи
|
-
|
[General] FilterBar=0 Version=202 ViewPropsTimestamp=2023,10,5,18,6,33.478 [MainWindow] MenuBar=Disabled ToolBarsMovable=Disabled
Примечание
/etc/xdg/<имя_файла>
— машинная политика;
~/.config/<имя_файла>
— пользовательская политика.
Таблица 28.33. Настройки среды рабочего стола KDE
Политика
|
Описание
|
Примечание
|
---|---|---|
Виртуальные рабочие столы
|
Позволяет настроить количество виртуальных рабочих столов.
|
Файлы конфигурации:
Пример файла конфигурации:
[Desktops] Number=4 Rows=1Где:
|
Наличие кнопки «Удалить» в контекстном меню Dolphin
|
Позволяет управлять отображением кнопки
в контекстном меню Dolphin
|
Файлы конфигурации:
Пример файла конфигурации:
[KDE] ShowDeleteCommand[$i]=1Возможные значения:
|
Настройка подключаемых устройств
|
Позволяет настроить автоматическое монтирование подключаемых устройств.
|
Возможные значения:
Файлы конфигурации:
Пример файла конфигурации:
[General] AutomountEnabled=1 AutomountOnLogin=1 AutomountOnPlugin=0 AutomountUnknownDevices=0 |
Региональные и языковые параметры
|
Позволяет установить региональные и языковые параметры. Эти параметры меняют настройки не только самого языка системы, но и задают настройки валюты, стандарт времени, числовые значения, стиль написания имени, телефонный код и стандарт телефонного номера страны. Параметры вписываются в поля Стандарт и Язык.
Примеры:
|
Файлы конфигурации:
Пример файла конфигурации:
[Formats] LANG[$i]=ru_RU.UTF-8 [Translation] LANGUAGE=ruГде:
|
Служба поиска файлов
|
Позволяет включить службу поиска файлов и задать параметры индексирования файлов.
|
Возможные значения:
Файлы конфигурации:
Пример файла конфигурации:
[Basic Settings] Indexing-Enabled=1 [General] index hidden folders=0 only basic indexing=1 Примечание
Параметры Включить индексацию содержимого файлов и Включить индексацию скрытых файлов и папок имеют смысл только при включённом параметре Включить службу поиска файлов.
|
Таблица 28.34. Внешний вид
Политика
|
Описание
|
Значение
|
---|---|---|
Оформление рабочего стола
|
Позволяет выбрать оформление рабочего стола (определяет то, как отображаются различные компоненты Plasma), указав название темы (например, breeze-light).
Используются темы оформления рабочего стола, доступные в
/usr/share/kf5/plasma/desktoptheme . Для добавления новых тем необходимо установить пакеты, включающие в себя эти темы.
|
|
Оформление рабочей среды
|
Позволяет установить тему оформления рабочей среды, указав название темы (например, org.kde.название.desktop или org.kde.название).
Используются темы оформления рабочего стола, доступные в
/usr/share/kf5/plasma/look-and-feel/ . Для добавления новых тем необходимо установить пакеты, включающие в себя эти темы.
|
|
Тема заставки
|
Позволяет установить тему заставки, указав название темы (например, org.kde.название.desktop или org.kde.название).
Используются темы заставки, доступные в
/usr/share/kf5/plasma/look-and-feel/ . Для добавления новых тем необходимо установить пакеты, включающие в себя эти темы.
|
|
Тема значков
|
Позволяет установить тему значков, указав название темы (например, gnome).
Применение темы значков зависит от её наличия в системе. Используются темы значков, доступные в
/usr/share/icons/ . Для добавления новых тем необходимо установить пакеты, включающие в себя эти темы.
|
|
Тема курсора
|
Позволяет установить тему курсора мыши, указав название темы (например, Adwaita).
Применение темы курсора зависит от её наличия в системе. Используются темы курсоров, доступные в
/usr/share/icons/ . Для добавления новых тем необходимо установить пакеты, включающие в себя эти темы.
|
|
Цвета
|
Позволяет установить цветовую схему, указав название схемы (например, BreezeClassic).
Применение цветовой схемы зависит от её наличия в системе. Используются цветовые схемы, доступные в
/usr/share/kf5/color-schemes . Для добавления новых тем необходимо установить пакеты, включающие в себя эти темы.
|
Варианты цветовых схем:
|
Пользовательские политики
|
||
Обои рабочего стола
|
Позволяет установить изображение в качестве фона рабочего стола, указав файл, содержащий изображение.
|
В качестве значения должна быть указана строка, содержащая путь (с точки зрения клиента) к файлу изображения. Например:
|
Включение панели фильтрации в файловом менеджере Dolphin
|
Позволяет включить или отключить панель фильтрации в файловом менеджере Dolphin.
|
-
|
Таблица 28.35. Поведение рабочей среды
Политика
|
Описание
|
Примечание
|
---|---|---|
Блокировка экрана
|
Позволяет регулировать параметры блокировки экрана.
Позволяет определить, сколько времени должно проходить перед включением блокировки экрана, настроить период отсрочки для разблокировки экрана без пароля.
Настройка Время до блокировки экрана при отсутствии активности будет применена только в случае включения параметра Автоматически блокировать экран
|
Файлы конфигурации:
Пример файла конфигурации:
[Daemon] Autolock[$i]=1 Timeout[$i]=12 LockOnResume[$i]=1 LockGrace[$i]=11Где:
|
Графические эффекты
|
Позволяет настроить включение или отключение графических эффектов при входе в систему
|
Файлы конфигурации:
Пример файла конфигурации:
[Compositing] Enabled=1Возможные значения:
|
Задержка отрисовки
|
Позволяет установить уровень задержки и плавности анимации
|
Возможные значения:
Файлы конфигурации:
Пример файла конфигурации:
[Compositing] LatencyPolicy=Medium |
Открытие файла или каталога одним щелчком
|
Позволяет настроить открытие файла или каталога одним щелчком
|
Файлы конфигурации:
Пример файла конфигурации:
[KDE] SingleClick[$i]=1Возможные значения:
|
Режим активации окна
|
Позволяет определить как активируются окна при переключении фокуса.
|
Возможные значения:
Файлы конфигурации:
Пример файла конфигурации:
[Windows] FocusPolicy=FocusFollowMouse NextFocusPrefersMouse=0 |
Пользовательские политики
|
||
Обновление графического окружения Plasma
|
Если политика включена, при изменении пути до файла изображения рабочего стола сервис графического окружения Plasma-plasmashell будет автоматически обновляться
|
|
/etc/xdg/powermanagementprofilesrc
— машинная политика;
~/.config/powermanagementprofilesrc
— пользовательская политика.
Таблица 28.36. Управление электропитанием
Политика
|
Описание
|
Файл конфигурации
|
---|---|---|
Потухание экрана
|
Позволяет настроить время до угасания экрана (уменьшения яркости до нуля) в зависимости от режима электропитания.
|
Для указания значения используется точное время в минутах, заданное в миллисекундах. Если время в миллисекундах указано неверно и не соответствует целому значению в минутах, то время автоматически округляется к ближайшему целому значению в меньшую сторону, например:
Пример файла конфигурации:
[AC][DimDisplay] idleTime=800000 [Battery][DimDisplay] idleTime=600000 [LowBattery][DimDisplay] idleTime=600000 |
Энергосбережение монитора
|
Позволяет настроить время до выключения монитора (при бездействии) в зависимости от режима электропитания.
|
Для указания значения используется точное время в минутах, заданное в секундах. Если время в секундах указано неверно и не соответствует целому значению в минутах, то время автоматически округляется к ближайшему целому значению в меньшую сторону, например:
Пример файла конфигурации:
[AC][DPMSControl] idleTime=800 [Battery][DPMSControl] idleTime=600 [LowBattery][DPMSControl] idleTime[$i]=60 |
Яркость клавиатуры
|
Позволяет настроить яркость клавиатуры в зависимости от режима электропитания.
|
Для указания значения используется число от 0 до 100, например:
Пример файла конфигурации:
[AC][KeyboardBrightnessControl] value=60 [Battery][KeyboardBrightnessControl] value=20 [LowBattery][KeyboardBrightnessControl] value[$i]=0 |
Яркость экрана
|
Позволяет настроить яркость экрана в зависимости от режима электропитания.
|
Для указания значения используется число от 0 до 100, например:
Пример файла конфигурации:
[AC][BrightnessControl] value=80 [Battery][BrightnessControl] value=50 [LowBattery][BrightnessControl] value=30 |
Таблица 28.37. Настройки приложений
Политика
|
Описание
|
Значение
|
---|---|---|
Браузер по умолчанию
|
Позволяет выбрать браузер по умолчанию.
|
Возможные значения:
Примечание
Применение настроек доступно только в случае, если в системе установлен выбранный браузер.
|
Примечание
Примечание
{GUID GPT}/Machine/Registry.pol
и {GUID GPT}/User/Registry.pol
.
Registry.pol
:
PReg [Software\BaseALT\Policies\GPUpdate;GlobalExperimental;;;] [Software\BaseALT\Policies\Packages;Sync;;;] [Software\BaseALT\Policies\Packages\Install;gimp;;;gimp] [Software\BaseALT\Policies\Packages\Install;simple-scan;;;simple-scan] [Software\BaseALT\Policies\Packages\Remove;python3-tools;;;python3-tools]
/etc/chromium/policies/managed/policies.json
и применяет параметры групповых политик. Групповые политики на основе policies.json
предоставляют кроссплатформенную совместимость, что позволяет управлять браузерами в любом дистрибутиве Альт с установленным окружением рабочего стола.
Примечание
/etc/chromium/policies/managed/policies_local.json
и вносить изменения в него. При коллизиях будет применена последняя прочитанная настройка.
Примечание
Примечание
chrome://policy
:
{GUID GPT}/Machine/Registry.pol
. Пример файла Registry.pol
:
PReg[Software\Policies\Google\Chrome;HomepageLocation;;;https://docs.altlinux.org]
chrome://policy
и установив отметку на пункте Показывать правила, значения которых не заданы.
Таблица 28.38. Примеры политик управляющих настройками браузера Chromium
Политика
|
Ключ
|
Описание
|
---|---|---|
Действие при запуске
|
RestoreOnStartup
|
Настройка процесса запуска Chromium.
При выборе значения Восстановить последний сеанс или «Открыть список URL и восстановить последний сеанс» будут отключены некоторые функции, такие как удаление данных о работе в браузере или сессионных файлов cookie при завершении работы.
Если для политики указано значение Открыть список URL и восстановить последний сеанс, браузер будет восстанавливать предыдущий сеанс и открывать URL, заданные в политике URL, открывающиеся при запуске, в отдельном окне. Если пользователь не закроет страницы с этими URL, они также будут восстановлены в новом сеансе.
Если политика находится в состоянии Включено, пользователи не смогут изменить эту настройку в Chromium.
|
Настройка URL домашней страницы
|
HomepageLocation
|
Позволяет установить URL домашней страницы и запрещает пользователям его изменять.
Если политика находится в состоянии Включено, можно установить домашнюю страницу по умолчанию (открыть эту страницу в Chromium можно, нажав кнопку на панели инструментов). Пользователи при этом не смогут изменить домашнюю страницу.
Если политика находится в состоянии Отключено, пользователи не смогут установить домашнюю страницу.
Если политика находится в состоянии Не сконфигурировано, пользователь может сам установить и изменить домашнюю страницу.
Данная политика не будет работать, если пользователем или политикой «Сделать страницу быстрого доступа главной» в качестве главной страницы была задана страница быстрого доступа.
|
Настройка URL страницы быстрого доступа
|
NewTabPageLocation
|
Позволяет установить URL страницы быстрого доступа по умолчанию и запрещает пользователям его изменять.
Страница быстрого доступа появляется, когда пользователь открывает новую вкладку или окно.
Политика не определяет, какие страницы открываются при запуске. Для этого применяется политика Действие при запуске. Но если страница быстрого доступа используется в качестве главной или стартовой страницы, эта политика также распространяется и на них.
Если политика находится в состоянии Не сконфигурировано или URL не указан, используется страница быстрого доступа, установленная по умолчанию.
|
Отображать кнопку
на панели инструментов
|
ShowHomeButton
|
Позволяет управлять отображением кнопки
на панели инструментов.
Если политика находится в состоянии Включено, кнопка отображается на панели инструментов.
Если политика находится в состоянии Отключено, кнопка не будет отображаться.
Если эта политика настроена, пользователи не смогут изменить эту настройку в Chromium. В противном случае пользователи смогут добавить или скрыть кнопку главного экрана.
|
Сделать страницу быстрого доступа главной
|
HomepageIsNewTabPage
|
Если политика находится в состоянии Включено, в качестве главной страницы используется страница быстрого доступа. Заданный URL главной страницы игнорируется.
Если политика находится в состоянии Отключено или Не сконфигурировано, страница быстрого доступа открывается, только когда в качестве URL главной страницы указан путь
chrome://newtab .
Если эта политика настроена, пользователи не смогут изменить главную страницу в Chromium. Если политика не сконфигурирована, пользователи смогут выбрать, устанавливать ли страницу быстрого доступа в качестве главной.
|
URL, открывающиеся при запуске
|
RestoreOnStartupURLs
|
Если для политики Действие при запуске задано значение Открыть одну или несколько страниц, в данной политике можно настроить список URL-адресов.
В противном случае при запуске будет открываться страница быстрого доступа.
|
Включить сохранение паролей
|
PasswordManagerEnabled
|
Если политика находится в состоянии Включено или Не сконфигурировано, Chromium будет предлагать запоминать введенные пароли (а также предлагать их при следующем входе).
Если политика находится в состоянии Отключено, пользователям будут доступны только ранее сохраненные пароли, а сохранить новые будет нельзя.
Если политика настроена, пользователи не могут изменить её в Chromium. В противном случае пользователи при желании смогут отключить функцию сохранения паролей.
|
Включить поисковую систему по умолчанию
|
DefaultSearchProviderEnabled
|
Если политика находится в состоянии Включено, то при вводе в адресную строку текста (не URL) будет выполняться поиск в используемой по умолчанию поисковой системе.
Задать поисковую систему по умолчанию можно с помощью других политик. Если значения для этих политик не установлены, пользователь может сам выбрать поисковую систему по умолчанию.
Если политика находится в состоянии Отключено, то поиск текста, введенного в адресную строку, не выполняется.
|
Название поисковой системы по умолчанию
|
DefaultSearchProviderName
|
Если политика Включить поисковую систему по умолчанию включена, то данная политика задает название поисковой системы по умолчанию.
Если параметр Включить поисковую систему по умолчанию не задан, то используется имя хоста, указанное в URL поискового запроса.
|
Показ URL страницы быстрого доступа в поисковой системе по умолчанию
|
DefaultSearchProviderNewTabURL
|
Если политика Включить поисковую систему по умолчанию включена, то данная политика указывает URL поисковой системы, используемой для страницы быстрого доступа.
Если политика находится в состоянии Отключено или Не сконфигурировано, страница быстрого доступа не будет использоваться.
|
URL поиска для поисковой системы по умолчанию
|
DefaultSearchProviderSearchURL
|
Если политика Включить поисковую систему по умолчанию включена, то данная политика содержит URL поисковой системы, используемой по умолчанию. В URL должна быть строка '{searchTerms}', которая во время отправки запроса заменяется на текст пользователя.
URL поисковой системы Google можно указать так: '{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion} {google:assistedQueryStats}{google:searchFieldtrialParameter} {google:searchClient}{google:sourceId}ie={inputEncoding}'.
URL поисковой системы Яндекс можно указать так: https://yandex.ru/search/?text={searchTerms}
|
Включить панель закладок
|
BookmarkBarEnabled
|
Если политика находится в состоянии Включено, в Chromium будет видна панель закладок.
Если политика находится в состоянии Отключено, панель закладок будет всегда скрыта.
Если эта политика настроена, пользователи не смогут её изменить. Если политика находится в состоянии Не сконфигурировано, пользователи смогут самостоятельно решать, использовать эту функцию или нет.
|
Разрешить пользователям менять фон на странице быстрого доступа
|
NTPCustomBackgroundEnabled
|
Если политика находится в состоянии Отключено, пользователи не смогут изменять фон страницы быстрого доступа. Уже используемые изображения удаляются без возможности восстановления.
Если политика находится в состоянии Включено или Не сконфигурировано, пользователи могут изменять фон страницы быстрого доступа.
|
Блокировать изображения на этих сайтах
|
ImagesBlockedForUrls
|
Позволяет задать список шаблонов URL для указания сайтов (значение * не поддерживается для этой политики), на которых запрещен показ изображений.
Если политика находится в состоянии Включено, Chromium будет блокировать изображения на указанных сайтах.
Если политика находится в состоянии Не сконфигурировано, то действует политика Настройка изображений по умолчанию) при условии, что оно задано. В противном случае применяются персональные настройки пользователя.
|
Блокировка доступа к списку URL
|
URLBlocklist
|
Если политика находится в состоянии Включено, страницы с запрещенными URL не загружаются (задаются шаблоны запрещенных URL).
Если политика находится в состоянии Не сконфигурировано, браузер не блокирует URL.
Формат шаблона URL должен соответствовать требованиям, указанным на странице
https://www.chromium.org/administrators/url-blocklist-filter-format . В политике URLAllowlist можно задавать не более 1000 исключений.
|
Всегда открывать PDF-файлы во внешнем приложении
|
AlwaysOpenPdfExternally
|
Если политика находится в состоянии Включено, встроенное средство просмотра PDF-файлов в Chromium отключается, они начинают обрабатываться как скачанный контент, а пользователю разрешается открывать их в приложении, установленном по умолчанию.
Если политика находится в состоянии Отключено, для просмотра PDF-файлов будет использоваться плагин PDF (если он не отключен пользователем).
Если политика находится в состоянии Не сконфигурировано, пользователи смогут настраивать этот параметр самостоятельно.
|
Всегда указывать место для скачивания
|
PromptForDownloadLocation
|
Если политика находится в состоянии Включено, то при скачивании каждого файла пользователь должен указать, в какой каталог его сохранить.
Если политика находится в состоянии Отключено, скачивание выполняется без запроса каталога для сохранения.
Если политика находится в состоянии Не сконфигурировано, пользователи могут выбрать каталог, в который всегда будут сохраняться файлы.
|
Выбор каталога для скачиваний
|
DownloadDirectory
|
В этой политике указывается каталог, в котором браузер Chromium сохраняет скачиваемые файлы. Данный каталог используется, даже если пользователь выбрал каталог для сохранения или установил флажок, позволяющий выбирать каталог при каждом скачивании файла.
Эта политика отменяет действие политики DefaultDownloadDirectory.
Если политика находится в состоянии Не сконфигурировано, браузер Chromium скачивает файлы в каталог по умолчанию, а пользователь может его изменить.
Список переменных можно посмотреть на странице
https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables .
|
Доступ к поисковой системе по умолчанию в контекстном меню
|
DefaultSearchProviderContextMenuAccessAllowed
|
Позволяет использовать поисковую систему по умолчанию в контекстном меню.
Если политика находится в состоянии Включено или Не сконфигурировано, поиск в системе по умолчанию будет доступен в контекстном меню.
Если политика находится в состоянии Отключено, поиск будет недоступен в контекстном меню.
Значение этой политики применяется только в том случае, если включена политика Включить поисковую систему по умолчанию.
|
Доступность режима инкогнито
|
IncognitoModeAvailability
|
Определяет, может ли пользователь просматривать страницы в Chromium в режиме инкогнито.
Если политика находится в состоянии Включено или значение не задано, страницы можно открывать в режиме инкогнито.
Если политика находится в состоянии Отключено, пользователи не смогут открывать страницы в режиме инкогнито.
Если для политики выбрано значение Включить принудительно, страницы можно просматривать ТОЛЬКО в режиме инкогнито.
|
Удаление истории просмотров и загрузок браузера
|
AllowDeletingBrowserHistory
|
Определяет, может ли пользователь удалять историю просмотров и скачиваний.
Если политика находится в состоянии Включено или Не сконфигурировано, то историю просмотров и скачиваний можно удалить.
Если политика находится в состоянии Отключено, то историю просмотров и скачиваний удалить нельзя.
|
Разрешить вызов окна выбора файлов
|
AllowFileSelectionDialogs
|
Если политика находится в состоянии Включено или Не сконфигурировано, то пользователи смогут открывать в Chromium окна выбора файлов.
Если политика находится в состоянии Отключено, и пользователь выполняет действия, для которых нужно открыть окно выбора файлов (например, импортирует закладки, загружает файлы, сохраняет ссылки и т.д.), вместо окна отображается сообщение и предполагается, что пользователь нажал кнопку в окне выбора файлов.
|
Включить поисковые подсказки
|
SearchSuggestEnabled
|
Если политика находится в состоянии Включено, в адресной строке Chromium при поиске будут появляться подсказки.
Если политика находится в состоянии Отключено, поисковые подсказки не отображаются.
Эта политика не влияет на показ в строке поиска закладок и страниц из истории просмотров.
Если политика настроена, пользователи не могут изменить её. Если политика не сконфигурирована, подсказки при поиске будут включены, но пользователи смогут отключить их в любое время.
|
Настройка изображений по умолчанию
|
DefaultImagesSetting
|
Если политика находится в состоянии Включено и выбрано значение 1 — Разрешить показ изображений на всех сайтах, на всех сайтах могут показываться изображения. При значении 2 — Запретить показ изображений на всех сайтах, показ изображений на сайтах запрещен.
Если политика находится в состоянии Не сконфигурировано, показ изображений разрешен, но пользователи могут изменять этот параметр.
|
Разрешить полноэкранный режим
|
FullscreenAllowed
|
Если политика находится в состоянии Включено или Не сконфигурировано, то при наличии необходимых разрешений пользователи, приложения и расширения смогут включать полноэкранный режим, в котором виден только контент веб-страниц.
Если политика находится в состоянии Отключено, то полноэкранный режим будет заблокирован для всех пользователей, приложений и расширений.
|
Управляемые закладки
|
ManagedBookmarks
|
Политика позволяет установить список закладок в Chromium.
Если политика настроена, будет создан список закладок Каждая закладка представляет собой словарь, где ключам name и url соответствуют значения — название закладки и URL-адрес сайта ([{"name": "Документация","url": "docs.altlinux.org"},{"name": "Wiki","url": "altlinux.org"}]).
По умолчанию папка называется «Управляемые закладки». Чтобы изменить это название, необходимо добавить в правило дополнительный словарь с единственным ключом
toplevel_name и названием папки в качестве значения. Можно также задать подпапку для закладок. Для этого вместо ключа url следует использовать ключ children , а в качестве его значения указать список вложенных закладок или папок ([{"toplevel_name":"ALT"},{"name":"BaseALT","url":"basealt.ru"}, {"name":"ALT docs","children":[{"name": "Документация","url": "docs.altlinux.org"}, {"name": "Wiki","url": "altlinux.org"}]}]).
Chromium дополняет неполные URL так же, как при их вводе в адресной строке. Например, адрес altlinux.org будет преобразован в
https://altlinux.org/ .
Пользователи не смогут изменять папки с закладками, а только скрывать их на панели. Управляемые закладки не синхронизируются с аккаунтом пользователя, а расширения не могут их изменять.
|
Включить анонимный сбор данных о URL
|
UrlKeyedAnonymizedDataCollectionEnabled
|
Если политика находится в состоянии Включено, то всегда выполняется анонимный сбор данных о URL (эти сведения отправляются в Google с целью улучшить поиск и просмотр веб-страниц).
Если политика находится в состоянии Отключено, сбор данных о URL не выполняется.
Если политика находится в состоянии Не сконфигурировано, пользователь может разрешить или запретить анонимный сбор данных о URL.
|
Удаление данных о работе в браузере при выходе
|
ClearBrowsingDataOnExitList
|
Политика позволяет настроить список данных о работе в браузере, которые должны удаляться, когда пользователь закрывает все окна браузера.
Можно указать следующие типы данных:
У этой политики нет приоритета над политикой Удаление истории просмотров и загрузок браузера.
Эта политика работает, если политика Отключить синхронизацию данных с Google находится в состоянии Включено. В противном случае политика игнорируется.
Если Chromium закрывается непредвиденно (например, из-за сбоя в работе браузера или ОС), данные о работе в браузере удаляются при следующей загрузке профиля.
Если политика находится в состоянии Отключено, то данные о работе, при закрытии браузера, не удаляются.
|
Отключить синхронизацию данных с Google
|
SyncDisabled
|
Если политика находится в состоянии Включено, синхронизация данных в Chromium с помощью сервисов, размещенных в Google, отключается.
Полностью отключить сервис «Chrome Sync» можно через Google Admin console.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователи могут самостоятельно решать, использовать ли им сервис «Chrome Sync».
|
Включает гостевой режим в браузере
|
BrowserGuestModeEnabled
|
Если политика находится в состоянии Включено или Не сконфигурировано, разрешается использовать гостевой доступ. При гостевом доступе все окна для профилей Chromium открываются в режиме инкогнито.
При гостевом доступе все окна для профилей Chromium открываются в режиме инкогнито.
Если политика находится в состоянии Отключено, в браузере не разрешается использовать гостевые профили.
|
Задать объем кеша в байтах
|
DiskCacheSize
|
Если для политики задано значение None, Chromium использует объем кеша по умолчанию для хранения кешированных файлов на диске. В этом случае пользователи не могут изменить правило.
Если политика находится в состоянии Включено Chromium будет использовать указанный размер кеша независимо от того, указали ли пользователи значение экспериментального параметра
--disk-cache-size . Объем кеша задается в байтах, например, чтобы задать размер кеша 300МБ, необходимо указать 314572800. Значения меньше нескольких мегабайтов округляются.
Если политика находится в состоянии Не сконфигурировано, Chromium использует объем по умолчанию. В этом случае пользователи могут менять размер кеша с помощью экспериментального параметра
--disk-cache-size .
Указанное в правиле значение используется различными подсистемами в браузере как справочное. Поэтому фактический объем используемого дискового пространства может превышать указанное значение, но будет иметь такой же порядок.
|
Список разрешенных серверов для аутентификации
|
AuthServerAllowlist
|
Это правило указывает, какие серверы можно использовать для встроенной проверки подлинности Windows (IWA). Встроенная проверка подлинности включается, только когда Chromium получает запрос на аутентификацию от прокси-сервера или от сервера из списка разрешенных.
Если политика находится в состоянии Не сконфигурировано, Chromium отвечает на запросы IWA только после того, как определяет, находится ли сервер в интранете. Если сервер находится в Интернете, Chromium игнорирует поступающие от него IWA запросы (веб-сайту не разрешается использовать аутентификацию SPNEGO с помощью браузера).
Названия серверов нужно разделять запятыми. Допустимы подстановочные знаки (*).
|
Управление расширениями (Позволяет управлять расширениями)
|
ExtensionSettings
|
Это правило контролирует настройки управления расширениями в Chromium, включая те, которые заданы другими правилами. Оно заменяет любые ранее действовавшие правила.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователи могут самостоятельно настраивать расширения.
Если политика находится в состоянии Включено, настройки расширений задает администратор с помощью кода, указанного в параметрах политики:
Пример значения:
{ "hdokiejnpimakedhajhdlcegeplioahd": { "installation_mode": "force_installed", "update_url": "https://clients2.google.com/service/update2/crx" }, "pioclpoplcdbaefihamjohnefbikjilc": { "installation_mode": "force_installed", "update_url": "https://clients2.google.com/service/update2/crx" } }
Параметры политики:
|
policies.json
и применяет параметры групповых политик. Групповые политики на основе policies.json
предоставляют кроссплатформенную совместимость, что позволяет управлять браузерами в любом дистрибутиве Альт с установленным окружением рабочего стола.
policies.json
, в зависимости от версии веб-браузера Firefox:
/etc/firefox/policies
— новые версии;
/usr/lib64/firefox/distribution
— старые версии.
Примечание
Примечание
about:policies#active
:
{GUID GPT}/Machine/Registry.pol
. Пример файла Registry.pol
:
PReg[Software\Policies\Mozilla\Firefox\Homepage;URL;;;https://basealt.ru] [Software\Policies\Mozilla\Firefox\Homepage;Locked;;;]
about:policies#documentation
.
Таблица 28.39. Примеры политик управляющих настройками веб-браузера Mozilla Firefox
Политика
|
Ключ
|
Описание
|
---|---|---|
Менеджер паролей
|
PasswordManagerEnabled
|
Позволяет запретить доступ к менеджеру паролей через настройки и блокирует about:logins.
Если эта политика находится в состоянии Включено или Не сконфигурировано, менеджер паролей доступен в настройках и на странице about:logins.
Если эта политика находится в состоянии Отключено, Firefox запрещает доступ к менеджеру паролей через настройки и блокирует about:logins.
|
Отключить создание мастер-пароля
|
DisableMasterPasswordCreation
|
Позволяет отключить возможность установить мастер-пароль (основной пароль).
Если эта политика находится в состоянии Отключено или Не сконфигурировано, пользователи могут создать мастер-пароль.
Если эта политика находится в состоянии Включено, то она работает так же, как установка политики Основной (главный) пароль состояние Отключено, и пользователи не могут создать мастер-пароль.
Если используются и политика «Отключить создание мастер-пароля», и «Основной (главный) пароль», то политика Отключить создание мастер-пароля имеет приоритет.
|
Предлагать сохранить логины
|
OfferToSaveLogins
|
Позволяет настроить будет ли Firefox предлагать запоминать сохранённые логины и пароли.
Если политика находится в состоянии Отключено, Firefox не будет предлагать сохранять логины и пароли веб-сайтов.
Если политика находится в состоянии Включено или Не сконфигурировано, Firefox будет предлагать сохранять логины и пароли веб-сайтов.
|
Отключить инструменты разработчика
|
DisableDeveloperTools
|
Позволяет управлять доступом к инструментам разработчика.
Если политика находится в состоянии Включено, инструменты веб-разработчика недоступны в Firefox.
Если политика находится в состоянии Отключено или Не сконфигурировано, инструменты веб-разработчика доступны в Firefox.
|
Отключить приватный просмотр
|
DisablePrivateBrowsing
|
Запрещает доступ к приватному просмотру.
Если политика находится в состоянии Включено, приватный просмотр запрещен.
Если политика находится в состоянии Отключено или Не сконфигурировано, приватный просмотр разрешен.
|
Нет закладок по умолчанию
|
NoDefaultBookmarks
|
Отключает создание закладок по умолчанию (идущих вместе с Firefox), и смарт-закладки (часто посещаемые, недавние).
Если политика находится в состоянии Включено, закладки по умолчанию и смарт-закладки (наиболее посещаемые, недавние теги) не создаются.
Если политика находится в состоянии Отключено или Не сконфигурировано, создаются закладки по умолчанию и смарт-закладки (наиболее посещаемые, последние теги).
Примечание: эта политика эффективна только в том случае, если она используется до первого запуска профиля.
|
Запрос места загрузки
|
PromptForDownloadLocation
|
Позволяет указать должен ли пользователь выбирать каталог для загружаемых файлов
Если политика находится в состоянии Отключено, файлы будут сохраняться в каталог, указанный в настройках (пользователю не предлагается указать место для загрузки файла).
Если политика находится в состоянии Включено, пользователю будет всегда выдаваться запрос на сохранение файла.
Если политика находится в состоянии Не сконфигурировано, пользователю будет выдаваться запрос на сохранение файла, но он может изменить значение по умолчанию.
|
Отключить историю форм
|
DisableFormHistory
|
Отключает запоминание истории поиска и данных форм.
Если политика находится в состоянии Включено, Firefox не запоминает историю форм или поиска.
Если политика находится в состоянии Отключено или Не сконфигурировано, Firefox будет помнить историю форм и поиска.
|
Блокировка редактора настроек (about:config)
|
BlockAboutConfig
|
Блокирует доступ к странице about:config.
Если эта политика находится в состоянии Включено, пользователь не может получить доступ к about:config.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователь может получить доступ к about:config.
|
Блокировка страницы управления профилями (about:profiles)
|
BlockAboutProfiles
|
Блокирует доступ к странице управления профилями (about:profiles).
Если политика находится в состоянии Включено, пользователь не может получить доступ к профилям about:profiles.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователь может получить доступ к профилям about:profiles.
|
Блокировка информации об устранении неполадок
|
BlockAboutSupport
|
Блокирует доступ к странице about:support.
Если политика находится в состоянии Включено, пользователь не может получить доступ к информации для устранения неполадок или about:support.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователь может получить доступ к информации для устранения неполадок или about:support.
|
Captive Portal (портал захвата)
|
CaptivePortal
|
Включает или отключает тест соединения (поддержку перехватывающего портала).
Если политика находится в состоянии Отключено, то поддержка captive portal отключена.
Если политика находится в состоянии Включено или Не сконфигурировано, то поддержка captive portal включена.
Примечание: Браузер Mozilla Firefox при запуске проверяет, требует ли используемое сетевое соединение вход в систему. Во время теста Firefox пытается подключиться к
http://detectportal.firefox.com/success.txt , чтобы проверить возможность соединения с этим адресом. Этот адрес также используется для проверки поддержки активного сетевого соединения IPv6. Отключение этой функциональности уменьшает количество автоматических подключений и может немного ускорить запуск браузера.
|
Отключить встроенную программу просмотра PDF (PDF.js)
|
DisableBuiltinPDFViewer
|
Отключает PDF.js, встроенный просмотрщик PDF в Firefox.
Если политика находится в состоянии Включено, файлы PDF не просматриваются в Firefox.
Если политика находится в состоянии Отключено или Не сконфигурировано, файлы PDF просматриваются в Firefox.
|
Отключить команды обратной связи
|
DisableFeedbackCommands
|
Отключает команды отправки отзывов в меню
( и ).
Если политика находится в состоянии Включено, пункты меню и недоступны из меню .
Если политика находится в состоянии Отключено или Не сконфигурировано, пункты меню и доступны из меню .
|
Отключить снимки экрана Firefox
|
DisableFirefoxScreenshots
|
Отключает функцию Firefox Screenshots.
Если политика находится в состоянии Включено, снимки экрана Firefox недоступны.
Если политика находится в состоянии Отключено или Не сконфигурировано, доступны снимки экрана Firefox.
|
Отключить учетные записи Firefox
|
DisableFirefoxAccounts
|
Отключает службы, основанные на Аккаунте Firefox, включая синхронизацию.
Если политика находится в состоянии Включено, учетные записи Firefox отключены, в том числе отключена синхронизация.
Если политика находится в состоянии Отключено или Не сконфигурировано, доступны Аккаунты Firefox и синхронизация.
|
Отключить исследования Firefox
|
DisableFirefoxStudies
|
Запрещает Firefox выполнять исследования.
Если политика находится в состоянии Включено, Firefox никогда не будет проводить исследования SHIELD или опросы Heartbeat.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователь может включить исследования SHIELD или опросы Heartbeat.
Для получения дополнительной информации см.
https://support.mozilla.org/en-US/kb/shield и https://wiki.mozilla.org/Firefox/Shield/Heartbeat
|
Отключить кнопку «Забыть»
|
DisableForgetButton
|
Закрывает доступ к кнопке
.
Если политика находится в состоянии Включено, кнопка недоступна.
Если политика находится в состоянии Отключено или Не сконфигурировано, кнопка доступна.
|
Запретить показывать пароли в сохраненных логинах
|
DisablePasswordReveal
|
Не позволяет просматривать пароли у сохранённых логинов.
Если политика находится в состоянии Включено, пользователи не могут отображать пароли в сохраненных логинах.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователи могут отображать пароли в сохраненных логинах.
|
Отключить Pocket
|
DisablePocket
|
Отключает сохранение страниц в Pocket.
Если политика находится в состоянии Включено, Pocket недоступен.
Если политика находится в состоянии Отключено или Не сконфигурировано, Pocket доступен.
Примечание: Pocket — это специальный сервис для хранения различной информации, найденной в ходе веб-сёрфинга.
|
Отключить импорт профиля
|
DisableProfileImport
|
Отключает команду меню для импорта данных из другого браузера.
Если политика находится в состоянии Включено, опция в окне закладок недоступна.
Если политика находится в состоянии Отключено или Не сконфигурировано, опция доступна.
|
Отключить обновление профиля
|
DisableProfileRefresh
|
Отключает кнопку
на странице about:support.
Если политика находится в состоянии Включено, кнопка будет недоступна на странице about:support.
Если эта политика отключена или не сконфигурирована, кнопка
будет доступна.
|
Отключить безопасный режим
|
DisableSafeMode
|
Отключает функцию для перезапуска в безопасном режиме.
Если политика находится в состоянии Включено, пользователь не может перезапустить браузер в безопасном режиме.
Если политика находится в состоянии Отключено или Не сконфигурировано, безопасный режим разрешен.
|
Не проверять браузер по умолчанию
|
DontCheckDefaultBrowser
|
Отключает проверку браузера по умолчанию при запуске.
Если политика находится в состоянии Включено, Firefox не проверяет, является ли он браузером по умолчанию при запуске.
Если политика находится в состоянии Отключено или Не сконфигурировано, Firefox при запуске проверяет, является ли он браузером по умолчанию.
|
Аппаратное ускорение
|
HardwareAcceleration
|
Отключает аппаратное ускорение.
Если политика находится в состоянии Отключено, аппаратное ускорение не может быть включено.
Если политика находится в состоянии Включено или Не сконфигурировано, включено аппаратное ускорение.
|
Основной (главный) пароль
|
PrimaryPassword
|
Позволяет установить следует ли требовать или не давать использовать мастер-пароль.
Если политика находится в состоянии Отключено, пользователи не могут создать основной пароль.
Если политика находится в состоянии Включено или Не сконфигурировано, пользователи могут создать основной пароль.
|
Прогнозирование сети
|
NetworkPrediction
|
Включает или отключает прогнозирование сети (предварительная выборка DNS).
Предварительная выборка DNS — это технология, используемая Firefox для ускорения загрузки новых веб-сайтов.
Если политика находится в состоянии Отключено, прогнозирование сети (предварительная выборка DNS) будет отключено.
Если политика находится в состоянии Включено или Не сконфигурировано, будет включено прогнозирование сети (предварительная выборка DNS).
|
Новая вкладка
|
NewTabPage
|
Включает или отключает страницу новой вкладки.
Если эта политика находится в состоянии Отключено, в новой вкладке будет загружена пустая страница.
Если эта политика в состоянии Включено или Не сконфигурировано, в новой вкладке будет загружена страница по умолчанию.
|
Подсказки по поиску
|
SearchSuggestEnabled
|
Включает или отключает поисковые предложения.
Если эта политика находится в состоянии Отключено, поисковые подсказки будут отключены.
Если эта политика в состоянии Включено, поисковые подсказки будут включены.
Если эта политика в состоянии Не сконфигурировано, поисковые подсказки будут включены, но пользователь может отключить их.
|
Показывать кнопку «Домашняя страница» на панели инструментов
|
ShowHomeButton
|
Включает кнопку
на панели инструментов.
Если политика находится в состоянии Отключено, кнопка не будет отображаться на панели инструментов.
Если политика находится в состоянии Включено, кнопка отображается на панели инструментов.
|
Блокировка менеджера дополнений (about:addons)
|
BlockAboutAddons
|
Блокирует доступ к менеджеру дополнений (about:addons).
Если политика находится в состоянии Отключено или Не сконфигурировано пользователь может получить доступ к менеджеру дополнений (about:addons).
Если политика находится в состоянии Включено, пользователь не может получить доступ к менеджеру дополнений (about:addons).
|
URL для домашней страницы
|
Homepage
|
Устанавливает URL домашней страницы при старте браузера и, если необходимо, блокирует её смену.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователь может установить и изменить домашнюю страницу.
Если политика находится в состоянии Включено, можно установить домашнюю страницу по умолчанию, а также заблокировать возможность изменения домашней страницы.
|
SPNEGO
|
SPNEGO
|
Включает аутентификацию через SPNEGO/Kerberos.
Если политика находится в состоянии Отключено или Не сконфигурировано, никаким веб-сайтам не разрешается использовать аутентификацию SPNEGO с помощью браузера.
Если политика находится в состоянии Включено, указанным веб-сайтам разрешается использовать аутентификацию SPNEGO в браузере. Записи в списке имеют формат altlinux.org или https://altlinux.org
|
Не разрешать изменять настройки аутентификации
|
Authentication Locked
|
Блокирует настройки аутентификации от изменений пользователем.
Если политика находится в состоянии Включено или Не сконфигурировано, пользователь не может изменить параметры проверки подлинности.
Если политика находится в состоянии Отключено, пользователь может изменить параметры проверки подлинности.
|
Разрешить неполное доменное имя (Non FQDN)
|
Authentication AllowNonFQDN
|
Разрешить SPNEGO или NTLM для неполных доменных имен (Non FQDN).
Если политика находится в состоянии Отключено или Не сконфигурировано, NTLM и SPNEGO не будут включены для неполных доменных имен.
Если политика находится в состоянии Включено (и флажки отмечены), SPNEGO или NTLM будут включены для неполных доменных имен (Non FQDN).
|
Расширения для установки
|
Extensions\Install
|
Задаёт список URL-адресов или собственных путей для устанавливаемых расширений.
Если политика находится в состоянии Отключено или Не сконфигурировано, расширения не устанавливаются.
Если политика находится в состоянии Включено, можно указать список URL-адресов или путей расширений, которые будут устанавливаться при запуске Firefox. При каждом изменении этого списка политики будут переустанавливаться.
URL политики необходимо задавать в формате *.xpi (например,
https://addons.mozilla.org/firefox/downloads/file/3450175/adapter_rutoken_plugin-1.0.5.0.xpi ). Можно также указать путь на локальный каталог, в который политикой копирования файлов скопировать расширение в формате *.xpi.
|
Управление расширениями
|
ExtensionSettings
|
Это правило позволяет управлять всеми аспектами расширений.
Политика сопоставляет идентификатор расширения с его конфигурацией. Если указан идентификатор расширения, конфигурация будет применяться только к указанному расширению. Конфигурация по умолчанию может быть установлена для специального идентификатора *, который будет применяться ко всем расширениям, для которых не задана пользовательская конфигурация в этой политике.
Чтобы получить идентификатор расширения, можно установите расширение и посмотреть идентификатор на странице about:support в разделе Расширения.
Если политика находится в состоянии Отключено или Не сконфигурировано, расширения не будут управляться.
Если политика находится в состоянии Включено, можно использовать JSON для описания политики управления расширениями.
Пример JSON:
{ "*": { "blocked_install_message": "Custom error message" }, "adblockultimate@adblockultimate.net": { "installation_mode": "force_installed", "install_url": "file:///home/user/file.xpi" }, "rutokenplugin@rutoken.ru": { "installation_mode": "force_installed", "install_url": "https://addons.mozilla.org/…/plugin.xpi" } }
Конфигурация для каждого расширения — это еще один словарь, который может содержать следующие поля:
|
/etc/opt/yandex/browser/policies/managed/policies.json
и применяет параметры групповых политик. Групповые политики на основе policies.json
предоставляют кроссплатформенную совместимость, что позволяет управлять браузерами в любом дистрибутиве Альт с установленным окружением рабочего стола.
Примечание
/etc/opt/yandex/browser/policies/managed/policies_local.json
и вносить изменения в него. При коллизиях будет применена последняя прочитанная настройка.
Примечание
browser://policy
:
{GUID GPT}/Machine/Registry.pol
. Пример файла Registry.pol
:
Preg[Software\Policies\YandexBrowser;BlockExternalExtensions;;;] [Software\Policies\YandexBrowser\URLBlocklist;https://mail.ru;; ;https://mail.ru] [Software\Policies\YandexBrowser\AutoOpenFileTypes;pdf;;pdf] [Software\Policies\YandexBrowser;HomepageLocation;;4;https://docs.altlinux.org]
browser://policy/
и установив отметку на пункте Показывать правила, значения которых не заданы.
Таблица 28.40. Примеры политик управляющих настройками «Яндекс.Браузера»
Политика
|
Ключ
|
Описание
|
---|---|---|
Включить или отключить панель закладок
|
BookmarkBarEnabled
|
Политика позволяет принудительно включить или принудительно отключить панель закладок в «Яндекс.Браузере».
Если политика находится в состоянии Включено, панель закладок отображается.
Если политика находится в состоянии Отключено, панель закладок не отображается.
Если политика находится в состоянии Не сконфигурировано, пользователь может самостоятельно решать, включить или отключить панель закладок.
|
Настроить закладки
|
EditBookmarksEnabled
|
Политика включает или отключает возможность изменения закладок.
Если политика находится в состоянии Включено или Не сконфигурировано, пользователи могут добавлять, изменять и удалять закладки.
Если политика находится в состоянии Отключено, пользователи не могут добавлять, изменять и удалять закладки. Закладки, созданные до отключения политики, останутся доступными.
|
Задать форматы файлов, которые будут автоматически открываться после скачивания
|
AutoOpenFileTypes
|
Политика позволяет задать форматы файлов, которые будут автоматически открываться после скачивания.
Если политика находится в состоянии Включено, в ней можно перечислить форматы файлов (без точки), которые будут автоматически открываться после скачивания (например, txt, jpg).
Если политика находится в состоянии Отключено или Не сконфигурировано, после скачивания будут автоматически открываться файлы только тех форматов, которые выбрал пользователь в контекстном меню загруженного файла (например, «Открывать JPG автоматически»).
|
Настроить показ всплывающих окон
|
DefaultPopupsSetting
|
Политика разрешает или запрещает всплывающие окна на всех сайтах.
Если политика находится в состоянии Отключено или Не сконфигурировано, всплывающие окна блокируются на всех сайтах. Пользователи могут разрешать или блокировать всплывающие окна в настройках браузера.
Если политика находится в состоянии Включено, администратор может определить режим применения политики:
|
Разрешить полноэкранный режим
|
FullscreenAllowed
|
Политика разрешает или запрещает активацию полноэкранного режима. В этом режиме все элементы интерфейса «Яндекс.Браузера» скрыты, и на экране отображается только содержимое сайта.
Если политика находится в состоянии Включено или Не сконфигурировано, пользователи могут активировать полноэкранный режим, нажав F11. Полноэкранный режим может быть активирован приложениями и расширениями, если у них есть на это разрешения.
Если политика находится в состоянии Отключено, полноэкранный режим отключен для всех пользователей, приложений и расширений.
|
Задать URL домашней страницы
|
HomepageLocation
|
Политика задает URL домашней страницы. Если в качестве домашней страницы задана страница быстрого доступа, политика не будет работать.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователи могут сами установить URL домашней страницы в настройках браузера.
Если политика находится в состоянии Включено, можно установить домашнюю страницу по умолчанию. URL должен иметь стандартный вид (например,
https://altlinux.org ).
Домашняя страница откроется, если в последний раз браузер был закрыт без вкладок или сочетанием клавиш Alt+Home. Пользователи не могут менять домашнюю страницу в браузере.
|
Отключить контекстное меню для выделенного текста
|
InstaserpDisabled
|
Политика позволяет отключить контекстное меню, всплывающее при выделении текста на странице.
Если политика находится в состоянии Включено, контекстное меню не показывается, пользователи не могут включить его в настройках (опция При выделении текста показывать кнопки «Найти» и «Копировать» неактивна).
Если политика находится в состоянии Отключено, контекстное меню показывается, пользователи не могут отключить его в настройках.
Если политика находится в состоянии Не сконфигурировано, контекстное меню показывается, пользователи могут отключить его в настройках.
|
Отображать боковую панель
|
SidePanelMode
|
Политика позволяет настроить режим отображения боковой панели и запретить пользователям его менять.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователи могут самостоятельно настроить режим отображения боковой панели.
Если политика находится в состоянии Включено, администратор может выбрать режим отображения боковой панели:
|
Включить автозаполнение адресов
|
AutofillAddressEnabled
|
Политика разрешает пользователям автозаполнение адресов.
Если политика находится в состоянии Включено или Не сконфигурировано, автозаполнение адресов включено.
Если политика находится в состоянии Отключено, автозаполнение адресов отключено, введенные адреса не сохраняются.
|
Настроить режим Инкогнито
|
IncognitoModeAvailability
|
Политика определяет, могут ли пользователи включать режим «Инкогнито».
Если политика находится в состоянии Не сконфигурировано, пользователи могут открывать страницы в режиме Инкогнито.
Если политика находится в состоянии Включено, администратор может определить режим применения политики:
Если политика находится в состоянии Отключено, пользователи могут просматривать страницы только в обычном режиме.
|
Запретить использовать мастер-пароль
|
MasterPasswordDisabled
|
Политика запрещает пользователям использовать мастер-пароль.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователь может использовать мастер-пароль.
Если политика находится в состоянии Включено, мастер-пароль в браузере отключен.
|
Разрешить сохранять пароли
|
PasswordManagerEnabled
|
Политика разрешает сохранять пароли в браузере и автоматически подставлять их при авторизации на сайтах.
Если политика находится в состоянии Не сконфигурировано, сохранение паролей в браузере включено. Пользователи могут включать и отключать сохранение паролей.
Если политика находится в состоянии Включено, сохранение паролей включено. Пользователи не могут включать и отключать сохранение паролей.
Если политика находится в состоянии Отключено, сохранение новых паролей отключено. Пользователи могут использовать уже сохраненные пароли. Пользователи не могут включать и отключать сохранение паролей.
|
Запретить сохранять историю просмотров
|
SavingBrowserHistoryDisabled
|
Политика запрещает сохранять историю просмотров и синхронизировать открытые вкладки. При синхронизации информация передается на сервер Яндекса по защищенному каналу.
Если политика находится в состоянии Отключено или Не сконфигурировано, история посещенных страниц сохраняется в журнале браузера. Вкладки и Табло синхронизируются с сервером Яндекса. Пользователи могут импортировать историю из других браузеров.
Если политика находится в состоянии Включено, история посещенных страниц не сохраняется в журнале браузера. Пользователи не могут включить сохранение истории посещенных страниц. Только Табло синхронизируются с сервером Яндекса. Возможность переноса истории вручную отключена.
|
Выбрать папку кеша на диске
|
DiskCacheDir
|
Политика определяет место хранения данных кеша. Чтобы не потерять данные, не следует указывать в политике корневую папку или папку, которая используется в других целях.
Если политика находится в состоянии Отключено или Не сконфигурировано, браузер использует папку по умолчанию, однако пользователи могут ее изменить с помощью параметра
disk-cache-dir .
Если политика находится в состоянии Включено, браузер хранит кеш на диске в заданной администратором папке. Пользователи не могут ее изменить с помощью параметра
disk-cache-dir .
|
Задать объём кеша в байтах
|
DiskCacheSize
|
Политика позволяет задать объем кеша в байтах. Значение используется различными подсистемами в браузере как справочное. Поэтому фактический объем используемого дискового пространства может превышать указанное значение, но будет иметь такой же порядок.
Если политика находится в состоянии Не сконфигурировано, браузер использует объем кеша по умолчанию.
Если политика находится в состоянии Включено, браузер использует заданный размер кеша независимо от параметра
--disk-cache-size . Указывается максимальный размер кеша в байтах. Например, 104857600 — это 100 МБ.
Если политика находится в состоянии Отключено, браузер использует объем кеша по умолчанию, но пользователи могут менять размер кеша с помощью параметра
--disk-cache-size .
|
Блокировать внешние расширения
|
BlockExternalExtensions
|
Политика позволяет запретить установку внешних расширений.
Если политика находится в состоянии Отключено или Не сконфигурировано, установка внешних расширений разрешена.
Если политика находится в состоянии Включено, установка внешних расширений запрещена.
|
Блокировать URL'ы из заданного списка
|
URLBlocklist
|
Политика блокирует доступ к URL и локальным файлам, которые внесены в черный список.
Если политика находится в состоянии Отключено или Не сконфигурировано, браузер не блокирует URL.
Если политика находится в состоянии Включено, страницы запрещенных URL не загружаются. В политике можно перечислить шаблоны запрещенных URL. Политика не действует на URL со встроенным кодом JavaScript и динамически загружаемые данные.
Общий формат шаблона URL: scheme://host:port/path, где:
Общий формат шаблона локального файла file://path, где:
|
Задать исключения для политики URLBlocklist (Разрешить доступ к списку URL)
|
URLAllowlist
|
Политика позволяет внести в белый список URL или локальный файл. Белый список разрешает доступ к явно перечисленным в нем URL и файлам, даже если они попадают под действие шаблонов из черного списка (см. описание политики Блокировать URL'ы из заданного списка).
Если политика находится в состоянии Отключено или Не сконфигурировано, исключений из правила URLBlocklist нет.
Если политика находится в состоянии Включено, указанные URL становятся доступны пользователям и считаются исключениями из правила URLBlocklist. Политика позволяет настроить исключения для определенных протоколов, субдоменов, отдельных доменов, портов или путей. Политика URLAllowlist имеет приоритет над правилом URLBlocklist. В этом правиле можно указать не более 1000 URL.
Форматы шаблонов см. в описании политики Блокировать URL'ы из заданного списка.
|
Разрешить вызывать окно выбора файлов
|
AllowFileSelectionDialogs
|
Политика разрешает или запрещает отображать окно выбора файлов и управляет настройками загрузки.
Если политика находится в состоянии Включено или Не сконфигурировано, пользователи могут открывать окна выбора файлов (импорт закладок или паролей, загрузка файлов, сохранение ссылок и т.д.). Пользователи также могут сохранить файл с помощью контекстного меню и изменять настройки в разделе Загруженные файлы ( → → ).
Если политика находится в состоянии Отключено и пользователь выполняет действия, для которых нужно открыть окно выбора файла (например, импорт закладок, загрузка файлов, сохранение ссылок и т.д.), вместо окна отображается сообщение и имитируется нажатие пользователем кнопки в окне выбора файлов. Пользователи также не смогут сохранить файл из контекстного меню и изменять настройки в разделе Загруженные файлы.
|
Ограничить инструменты разработчика
|
DeveloperToolsAvailability
|
Политика ограничивает использование инструментов разработчика.
Если политика находится в состоянии Отключено или Не сконфигурировано, инструменты разработчика и консоль JavaScript запрещены только для расширений, ограниченных корпоративной политикой.
Если политика находится в состоянии Включено можно установить ограничение на использование инструментов разработчика. Доступны следующие параметры:
|
Управлять настройками расширений
|
ExtensionSettings
|
Политика управляет настройками расширений в «Яндекс.Браузере». Заменяет любые другие политики по настройке расширений.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователи могут самостоятельно настраивать расширения.
Если политика находится в состоянии Включено, настройки расширений задает администратор с помощью кода, указанного в параметрах политики:
Пример значения:
{ "hdokiejnpimakedhajhdlcegeplioahd": { "installation_mode": "force_installed", "update_url": "https://clients2.google.com/service/update2/crx" }, "pioclpoplcdbaefihamjohnefbikjilc": { "installation_mode": "force_installed", "update_url": "https://clients2.google.com/service/update2/crx" } }
Параметры политики:
|
Примечание
gpupdate
, начиная с версии 0.12.0.
policies.json
и применяет параметры групповых политик. Для Thunderbird файл policies.json
расположен по адресу /etc/thunderbird/policies/
. Групповые политики на основе policies.json
предоставляют кроссплатформенную совместимость, что позволяет управлять почтовым клиентом в любом дистрибутиве «Альт» с установленным окружением рабочего стола.
Примечание
Примечание
{GUID GPT}/Machine/Registry.pol
. Пример файла Registry.pol
:
PReg [Software\Policies\Mozilla\Thunderbird;PrimaryPassword;;;] [Software\Policies\Mozilla\Thunderbird\Proxy;Mode;;;none] [Software\Policies\Mozilla\Thunderbird\Authentication;Locked;;;] [Software\Policies\Mozilla\Thunderbird;BlockAboutAddons;;;]
Таблица 28.41. Примеры политик управляющих настройками почтового клиента Thunderbird
Политика
|
Ключ
|
Описание
|
---|---|---|
Блокировка редактора настроек (about:config)
|
BlockAboutConfig
|
Блокирует доступ к странице about:config.
Если эта политика находится в состоянии Отключено или Не сконфигурировано, пользователь может получить доступ к about:config:
![]()
Если эта политика находится в состоянии Включено, пользователь не может получить доступ к редактору настроек about:config:
![]() |
Блокировка менеджера дополнений (about:addons)
|
BlockAboutAddons
|
Блокирует доступ к странице about:addons.
Если эта политика находится в состоянии Отключено или Не сконфигурировано, пользователь может получить доступ к менеджеру дополнений и к about:addons:
![]()
Если эта политика находится в состоянии Включено, пользователь не может получить доступ к менеджеру дополнений или к about:addons:
![]() |
Блокировка страницы управления профилями (about:profiles)
|
BlockAboutProfiles
|
Блокирует доступ к странице about:profiles.
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователь может получить доступ к about:profiles:
![]()
Если политика находится в состоянии Включено, пользователь не может получить доступ к about:profiles.
|
Отключить инструменты разработчика
|
DisableDeveloperTools
|
Блокирует доступ к инструментам разработчика.
Если политика находится в состоянии Включено, инструменты веб-разработчика недоступны в Thunderbird.
Если политика находится в состоянии Отключено или Не сконфигурировано, инструменты веб-разработчика доступны в Thunderbird.
|
Каталог загрузки по умолчанию
|
DefaultDownloadDirectory
|
Устанавливает каталог для загрузок по умолчанию (переменную ${home} можно использовать для указания домашнего каталога пользователя).
Если политика находится в состоянии Включено, можно установить каталог по умолчанию для загрузок:
![]()
Если политика находится в состоянии Отключено или Не сконфигурировано, используется каталог загрузки Thunderbird по умолчанию:
![]() |
Каталог загрузки
|
DownloadDirectory
|
Устанавливает и фиксирует каталог для загрузок (переменную ${home} можно использовать для указания домашнего каталога пользователя).
Если политика находится в состоянии Включено, можно установить и заблокировать каталог для загрузок:
![]()
Если политика находится в состоянии Отключено или Не сконфигурировано, используется каталог загрузки Thunderbird по умолчанию, и пользователь может его изменить:
![]() |
Запрос места загрузки
|
PromptForDownloadLocation
|
Позволяет указать должен ли пользователь выбирать каталог для загружаемых файлов.
Если политика находится в состоянии Отключено, файлы будут сохраняться в каталог, указанный в настройках (пользователю не предлагается указать место для загрузки файла):
![]()
Если политика находится в состоянии Включено, пользователю будет всегда выдаваться запрос на сохранение файла:
![]()
Если политика находится в состоянии Не сконфигурировано, пользователю будет выдаваться запрос на сохранение файла, но он может изменить значение по умолчанию.
|
Основной (главный) пароль
|
PrimaryPassword
|
Позволяет установить следует ли требовать или не давать использовать мастер-пароль.
Если политика находится в состоянии Включено, требуется основной пароль.
Если политика находится в состоянии Отключено пользователи не могут создать основной пароль.
Если политика находится в состоянии Не сконфигурировано, пользователи могут создать основной пароль.
|
Отключить создание мастер-пароля
|
DisableMasterPasswordCreation
|
Позволяет отключить возможность установить мастер-пароль (основной пароль).
Если эта политика находится в состоянии Включено, пользователи не могут создать мастер-пароль:
![]()
Если политика находится в состоянии Отключено или Не сконфигурировано, пользователи могут создать мастер-пароль.
Если используются и политика «Отключить создание мастер-пароля», и «Основной (главный) пароль», то политика Отключить создание мастер-пароля имеет приоритет.
|
Менеджер паролей
|
PasswordManagerEnabled
|
Позволяет запретить доступ к менеджеру паролей через настройки и блокировать about:logins.
Если политика находится в состоянии Отключено, менеджер паролей недоступен в настройках:
![]()
Если политика находится в состоянии Включено или Не сконфигурировано, менеджер паролей доступен в настройках.
|
Отключить встроенную программу просмотра PDF (PDF.js)
|
DisableBuiltinPDFViewer
|
Отключает PDF.js, встроенный просмотрщик PDF в Thunderbird.
Если политика находится в состоянии Включено, файлы PDF не просматриваются в Thunderbird. Встроенный просмотрщик PDF отключается, PDF-файлы загружаются и отправляются во внешнюю среду.
Если политика находится в состоянии Отключено или Не сконфигурировано, файлы PDF просматриваются в Thunderbird:
![]() |
Настройка параметров прокси-сервера
|
||
Connection Type (Тип подключения)
|
Proxy/Mode
|
Позволяет указать тип подключения.
Если политика находится в состоянии Отключено или Не сконфигурировано, Thunderbird по умолчанию использует системный прокси-сервер.
Если политика находится в состоянии Включено, можно задать тип подключения:
|
HTTP Proxy
|
Proxy/HTTPProxy
|
Позволяет указать настройки HTTP Proxy.
Если политика находится в состоянии Включено, можно задать HTTP-прокси, используемый при указании ручной конфигурации прокси.
Если политика находится в состоянии Отключено или Не сконфигурировано, Thunderbird не использует HTTP-прокси.
|
HTTPS Proxy
|
Proxy/HTTPSProxy
|
Позволяет указать настройки HTTPS Proxy.
Если политика находится в состоянии Включено, можно задать HTTPS-прокси, используемый при указании ручной конфигурации прокси.
Если политика находится в состоянии Отключено или Не сконфигурировано, Thunderbird не использует HTTPS-прокси.
|
Do not allow proxy settings to be changed (Не разрешать изменять настройки прокси-сервера)
|
Proxy/Locked
|
Позволяет заблокировать настройки прокси-сервера.
Если политика находится в состоянии Включено, настройки прокси-сервера не могут быть изменены пользователем:
![]()
Если политика находится в состоянии Отключено или Не сконфигурировано, настройки прокси-сервера могут быть изменены пользователем.
|
Use HTTP proxy for HTTPS (Использовать HTTP-прокси для HTTPS)
|
Proxy/UseHTTPProxyForAllProtocols
|
Позволяет указать, что для HTTPS следует использовать настройки HTTP-прокси.
Если политика находится в состоянии Включено, HTTP-прокси используется для HTTPS, когда указана ручная настройка прокси.
Если политика находится в состоянии Отключено или Не сконфигурировано, Thunderbird не использует HTTPS-прокси, если не указано иное.
|
Do not prompt for authentication if password is saved (Не запрашивать аутентификацию, если пароль сохранен)
|
Proxy/AutoLogin
|
Позволяет указать не запрашивать аутентификацию, если пароль сохранен.
Если политика находится в состоянии Включено, Thunderbird не будет запрашивать аутентификацию прокси при сохранении пароля.
Если политика находится в состоянии Отключено или Не сконфигурировано, Thunderbird всегда будет запрашивать аутентификацию прокси.
|
Proxy Passthrough
|
Proxy/Passthrough
|
Позволяет указать исключения (адреса, для которых не используется прокси).
Если политика находится в состоянии Включено, для указанных адресов настройки прокси-сервера не используются.
Если политика находится в состоянии Отключено или Не сконфигурировано, исключения не используются.
|
Примечание
Примечание
Ярлыки
в Program Files
, необходимо ввести %ProgramFilesDir%\Ярлыки\Почта). Чтобы разместить ярлык в подпапке для выбранного размещения из списка, следует указать <название подпапки>\<имя ярлыка> в поле Название, например, чтобы разместить ярлык с именем Почта в подпапке Ярлыки
в размещении Рабочий стол
, необходимо ввести Ярлыки/Почта в поле Название и выбрать Рабочий стол в поле Место нахождения:
Предупреждение
{GUID GPT}/Machine/Preferences/Shortcuts/Shortcuts.xml
{GUID GPT}/User/Preferences/Shortcuts/Shortcuts.xml
Shortcuts.xml
:
<?xml version="1.0" encoding="utf-8"?> <Shortcuts clsid="{872ECB34-B2EC-401b-A585-D32574AA90EE}"> <Shortcut bypassErrors="0" changed="2022-11-17 11:07:40" clsid="{4F2F7C55-2790-433e-8127-0739D1CFA327}" desc="" image="0" name="Почта" removePolicy="0" status="" uid="{dfd45a36-4634-47d9-8a22-5f702fba21bc}" userContext="0"> <Properties action="U" arguments="" comment="" iconPath="/usr/lib64/thunderbird/chrome/icons/default/default32.png" pidl="" shortcutPath="%DesktopDir%\Почта" startIn="" targetPath="/usr/bin/thunderbird" targetType="FILESYSTEM" window=""/> </Shortcut> </Shortcuts>
Примечание
/etc/skel
;
/
);
/usr/share/applications
;
get_homedir(username)
);
get_desktop(username, variables['HOME'])
).
Примечание
{GUID GPT}/Machine/Preferences/Folders/Folders.xml
{GUID GPT}/User/Preferences/Folders/Folders.xml
Folders.xml
:
<?xml version="1.0" encoding="utf-8" standalone="no" ?> <Folders clsid="{77CC39E7-3D16-4f8f-AF86-EC0BBEE2C861}"> <Folder clsid="{07DA02F5-F9CD-4397-A550-4AE21B6B4BD3}" name="MyDir" status="MyDir" image="2" bypassErrors="1" changed="2020-10-27 11:49:19" uid="{57F41C87-4A65-4561-BFFF-4219149DCBF7}"> <Properties action="U" path="%DesktopDir%\MyDir" readOnly="0" archive="1" hidden="0"/> </Folder> </Folders>
[sectionA] var01=value01 [sectionB] var01=value01 var02=value02
{GUID GPT}/Machine/Preferences/Inifiles/Inifiles.xml
{GUID GPT}/User/Preferences/Inifiles/Inifiles.xml
Inifiles.xml
:
<?xml version="1.0" encoding="utf-8" standalone="no" ?> <IniFiles clsid="{694C651A-08F2-47fa-A427-34C4F62BA207}"> <Ini changed="2022-11-21 09:13:44" clsid="{EEFACE84-D3D8-4680-8D4B-BF103E759448}" image="3" name="version.ini" status="version.ini" uid="{ADAA9BCF-C2EA-4004-980F-CEDA823E3B91}" bypassErrors="1"> <Properties path="C:\tmp\version.ini" section="" value="" property="BP" action="D"/> </Ini> </IniFiles>
{GUID GPT}/Machine/Preferences/EnvironmentVariables/EnvironmentVariables.xml
{GUID GPT}/User/Preferences/EnvironmentVariables/EnvironmentVariables.xml
EnvironmentVariables.xml
:
<?xml version="1.0" encoding="utf-8" standalone="no" ?> <EnvironmentVariables clsid="{BF141A63-327B-438a-B9BF-2C188F13B7AD}"> <EnvironmentVariable clsid="{78570023-8373-4a19-BA80-2F150738EA19}" name="VAR" status="VAR = value_1" image="0" changed="2020-06-05 12:16:20" uid="{6738058D-5455-4D9A-9B84-78E87DDD18D7}" desc="environment variable example" bypassErrors="1"> <Properties action="C" name="VAR" value="value_1" user="1" partial="0"/> </EnvironmentVariable> <EnvironmentVariable clsid="{78570023-8373-4a19-BA80-2F150738EA19}" name="PATH" status="PATH = value_2" image="2" changed="2020-06-05 12:16:48" uid="{15E854D6-C338-4AD2-BF8D-72292B364BA3}"> <Properties action="U" name="PATH" value="value_2" user="0" partial="1"/> </EnvironmentVariable> </EnvironmentVariables>
Примечание
$ env |grep имя_переменной
/etc/gpupdate/environment
:
TEMP DEFAULT="C:\tmp" Var DEFAULT="Value1" HTTPS_PROXY DEFAULT="https://10.0.66.52:3128"
Примечание
Примечание
/etc/skel
;
/
);
/usr/share/applications
;
get_homedir(username)
);
get_desktop(username, variables['HOME'])
).
Примечание
Примечание
Примечание
chmod +x
).
{GUID GPT}/Machine/Preferences/Files/Files.xml
{GUID GPT}/User/Preferences/Files/Files.xml
Files.xml
:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <Files clsid="{215B2E53-57CE-475c-80FE-9EEC14635851}"> <File bypassErrors="0" changed="2023-08-20 13:18:25" clsid="{50BE44C8-567A-4ed1-B1D0-9234FE1F38AF}" desc="Файл с сервера" image="0" name="Задание.txt" removePolicy="0" status="" uid="{cd0d3cba-8698-4612-9c76-5e21da62cc48}" userContext="0"> <Properties action="C" archive="0" executable="0" fromPath="\\TEST.ALT\sysvol\test.alt\newfile" hidden="0" readOnly="0" suppress="0" targetPath="%DesktopDir%\New\Задание.txt"/> </File> </Files>
Примечание
Примечание
control smb-conf-usershares
установлен в enabled;
/etc/samba/smb.conf
в секции [global] подключен файл /etc/samba/usershares.conf
(include = /etc/samba/usershares.conf).
Примечание
{GUID GPT}/Machine/Preferences/NetworkShares/NetworkShares.xml
{GUID GPT}/User/Preferences/NetworkShares/NetworkShares.xml
NetworkShares.xml
:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <NetworkShareSettings clsid="{520870D8-A6E7-47e8-A8D8-E6A4E76EAEC2}"> <NetShare changed="2022-11-21 13:03:10" clsid="{2888C5E7-94FC-4739-90AA-2C1536D68BC0}" image="0" name="share2" status="" uid="{cd0d3cba-8698-4612-9c76-5e21da62cc48}" userContext="0" removePolicy="0"> <Properties action="C" name="share2" path="/var/share2" comment="" limitUsers="NO_CHANGE" abe="NO_CHANGE"/> </NetShare> </NetworkShareSettings>
/media/gpupdate/drives.system
— для системных ресурсов;
/media/gpupdate/.drives.system
— для скрытых системных ресурсов;
/run/media/USERNAME/drives
— для общих ресурсов пользователя;
/run/media/USERNAME/.drives
— для скрытых общих ресурсов пользователя.
Примечание
/etc/auto.master.gpupdate.d/<имя>.autofs
и /etc/auto.master.gpupdate.d/<имя>.conf
— для отображаемых ресурсов;
/etc/auto.master.gpupdate.d/<имя>_hide.autofs
и /etc/auto.master.gpupdate.d/<имя>_hide.conf
— для скрытых ресурсов.
\\server\sharename
, \\server\hiddenshare$
или \\server\sharename\foldername
). Это поле может содержать переменные. Чтобы изменить существующий сетевой диск (определяемый по букве диска), следует оставить это поле пустым;
Примечание
/etc/skel
;
/
);
/usr/share/applications
;
get_homedir(username)
);
get_desktop(username, variables['HOME'])
).
Примечание
Примечание
Примечание
/etc/auto.master.gpupdate.d/<имя>.autofs
) добавляется опция --browse
. В этом случае для данной точки монтирования будет создан пустой каталог, независимо от того, смонтирована ли какая-либо файловая система в него или нет.
~/net.drives.system
— ссылка на /media/gpupdate/drives.system
;
~/.net.drives.system
— ссылка на /media/gpupdate/.drives.system
;
~/net.drives
— ссылка на /run/media/USERNAME/drives
;
~/.net.drives
— ссылка на /run/media/USERNAME/.drives
;
~/net.drives
— ссылка на /run/media/USERNAME/drives
для общих ресурсов пользователя;
~/.net.drives
— ссылка на /run/media/USERNAME/.drives
для скрытых общих ресурсов пользователя.
~/drives
— ссылка на /run/media/USERNAME/drives
для общих ресурсов пользователя;
~/.drives
— ссылка на /run/media/USERNAME/.drives
для скрытых общих ресурсов пользователя.
/media/gpupdate/drives.system
— для системных сетевых дисков;
/media/gpupdate/.drives.system
— для скрытых системных сетевых дисков;
~/net.drives.system
— для системных сетевых дисков (при включенной политике Отображение сетевых дисков машины в домашнем каталоге);
~/.net.drives.system
— для скрытых системных сетевых дисков (при включенной политике Отображение сетевых дисков машины в домашнем каталоге).
/media/gpupdate/<имя>.system
— для системных сетевых дисков;
/media/gpupdate/.<имя>.system
— для скрытых системных сетевых дисков;
~/net.<имя>.system
— для системных сетевых дисков (при включенной политике Отображение сетевых дисков машины в домашнем каталоге);
~/.net.<имя>.system
— для скрытых системных сетевых дисков (при включенной политике Отображение сетевых дисков машины в домашнем каталоге);
~/<имя>.system
— для системных сетевых дисков (при включенных политиках Отображение сетевых дисков машины в домашнем каталоге и Префикс имени каталога монтирования сетевых дисков);
~/.<имя>.system
— для скрытых системных сетевых дисков (при включенных политиках Отображение сетевых дисков машины в домашнем каталоге и Префикс имени каталога монтирования сетевых дисков).
/run/media/USERNAME/drives
— для общих ресурсов пользователя;
/run/media/USERNAME/.drives
— для скрытых общих ресурсов пользователя;
~/net.drives
— для общих ресурсов пользователя (при включенной политике Отображение сетевых дисков машины в домашнем каталоге);
~/.net.drives
— для скрытых общих ресурсов пользователя (при включенной политике Отображение сетевых дисков машины в домашнем каталоге).
/run/media/USERNAME/<имя>
— для общих ресурсов пользователя;
/run/media/USERNAME/.<имя>
— для скрытых общих ресурсов пользователя;
~/net.<имя>
— для общих ресурсов пользователя (при включенной политике Отображение сетевых дисков пользователя в домашнем каталоге);
~/.net.<имя>
— для скрытых общих ресурсов пользователя (при включенной политике Отображение сетевых дисков пользователя в домашнем каталоге);
~/<имя>
— для общих ресурсов пользователя (при включенных политиках Отображение сетевых дисков пользователя в домашнем каталоге и Префикс имени каталога монтирования сетевых дисков);
~/.<имя>
— для скрытых общих ресурсов пользователя (при включенных политиках Отображение сетевых дисков пользователя в домашнем каталоге и Префикс имени каталога монтирования сетевых дисков).
~/net.drives.system
— ссылка на /media/gpupdate/drives.system
;
~/.net.drives.system
— ссылка на /media/gpupdate/.drives.system
;
~/net.drives
— ссылка на /run/media/USERNAME/drives
;
~/.net.drives
— ссылка на /run/media/USERNAME/.drives
;
Примечание
net.my_share -> /media/gpupdate/my_share share -> /run/media/<пользователь>/share
{GUID GPT}/Machine/Preferences/Drives/Drives.xml
{GUID GPT}/User/Preferences/Drives/Drives.xml
Drives.xml
с двумя сетевыми дисками:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <Drives clsid="{8FDDCC1A-0C3C-43cd-A6B4-71A6DF20DA8C}"> <Drive bypassErrors="0" changed="2022-11-29 16:28:32" clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" desc="" image="2" name="\\dc\Free" removePolicy="0" status="O:" uid="{D070D4D6-DEB5-4DDE-9A53-6AB33C90352A}" userContext="0"> <Properties action="U" allDrives="SHOW" cpassword="" label="" letter="O" path="\\dc\Free" persistent="1" thisDrive="SHOW" useLetter="1" userName=""/> </Drive> <Drive bypassErrors="0" changed="2022-11-29 14:34:53" clsid="{935D1B74-9CB8-4e3c-9914-7DD559B7A417}" desc="" image="2" name="I:" status="I:" uid="{4BDA1724-4BBF-4B4D-B299-E81080D9A4B5}" userContext="0"> <Properties action="U" allDrives="SHOW" cpassword="" label="" letter="I" path="\\dc1.test.alt\sysvol" persistent="1" thisDrive="SHOW" useLetter="0" userName=""/> </Drive> </Drives>
{GUID GPT}/Machine/Preferences/Registry/Registry.xml
{GUID GPT}/User/Preferences/Registry/Registry.xml
Registry.xml
:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <RegistrySettings clsid="{A3CCFC41-DFDB-43a5-8D26-0FE8B954DA51}"> <Registry changed="2022-11-21 18:36:20" clsid="{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}" image="12" name="failed_count" status="failed_count" uid="{D5855321-D2BA-4595-BD28-4DF452BFF65F}" bypassErrors="1"> <Properties action="U" displayDecimal="0" hive="HKEY_CURRENT_USER" key="Software\Google\Chrome\BLBeacon" name="failed_count" type="REG_DWORD" value="00000001"> <SubProp id="" mask="0" value="0"/"> </Properties> </Registry> </RegistrySettings>
Примечание
/etc/sysconfig/network
удалить строки:
HTTP_PROXY= HTTPS_PROXY= FTP_PROXY= NO_PROXY=
http://username:password@address:port
$ gpupdate
$ env |grep PROXY
HTTP_PROXY=http://10.0.66.52:3128
HTTPS_PROXY=http://10.0.66.52:3128
FTP_PROXY=http://10.0.66.52:3128
/etc/systemd/user/gpupdate-user.timer.d/override.conf
— изменение пользовательского таймера;
/etc/systemd/system/gpupdate.timer.d/override.conf
— изменение системного таймера.
[Timer] OnUnitActiveSec = 10minгде 10min — периодичность запроса конфигураций.
/etc/systemd/system/gpupdate.timer.d
(или /etc/systemd/system/gpupdate-user.timer.d
для пользовательского таймера).
/etc/systemd/system/gpupdate.timer.d/override.conf
(или /etc/systemd/system/gpupdate-user.timer.d/override.conf
для пользовательского таймера);
Timer
;
OnUnitActiveSec
;
10min
.
$ gpupdate
# systemctl daemon-reload
$cat /etc/systemd/system/gpupdate.timer.d/override.conf
[Timer] OnUnitActiveSec = 10min $systemctl status gpupdate.timer
… Active: active (waiting) since Mon 2024-06-10 16:29:23 EET; 44s ago Trigger: Mon 2024-06-10 16:39:25 EET; 9min left
Примечание
$ systemctl --user daemon-reload
Примечание
override.conf
подменяет настройки системной библиотеки в файле /lib/systemd/system/gpupdate.timer
только если значение секции Timer
в файле override.conf
меньше, чем значение аналогичной секции в gpupdate.timer
.
Примечание
Примечание
User\Scripts\Logon
(например, \\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\User\Scripts\Logon
) или User\Scripts\Logoff
соответствующей политики.
Примечание
gpupdate
версии 0.9.11. В версиях ниже скрипты для ОС «Альт» должны находиться в GPT настраиваемого объекта групповой политики.
*.ps1
.
Machine\Scripts\Startup
(например, \\test.alt\sysvol\test.alt\Policies\{20DDB816-421B-4861-8AC5-007E56CB67D0}\Machine\Scripts\Startup
) или Machine\Scripts\Shutdown
соответствующей политики.
Примечание
*.ps1
.
{GUID GPT}/User/Scripts/Logon
и {GUID GPT}/User/Scripts/Logoff
. Настройки политики для сценариев входа и выхода пользователя хранятся в файле {GUID GPT}/User/Scripts/scripts.ini
. В файле scripts.ini
перечисляются все скрипты, выполняемые в сценариях входа и выхода пользователя из системы. Сценарии входа начинаются с преамбулы [Logon]
, сценарии выхода начинаются с преамбулы [Logoff]
.
scripts.ini
:
[Logon] 0CmdLine=date.sh 0Parameters=test 1CmdLine=test.sh 1Parameters=new [Logoff] 0CmdLine=touch.sh 0Parameters= 1CmdLine=Logoff.bat 1Parameters=1.txt 2CmdLine=C:\share\Logon.bat 2Parameters=
{GUID GPT}/Machine/Scripts/Shutdown
и {GUID GPT}/Machine/Scripts/Startup
. Настройки политики для сценариев запуска и завершения работы компьютера хранятся в файле {GUID GPT}/Machine/Scripts/scripts.ini
. В файле scripts.ini
перечисляются все скрипты, выполняемые в сценариях запуска и завершения работы компьютера. Сценарии запуска компьютера начинаются с преамбулы [Startup]
, сценарии завершения работы начинаются с преамбулы [Shutdown]
.
scripts.ini
:
[Startup] 0CmdLine=hello.bat 0Parameters= 1CmdLine=notescript.vbs 1Parameters= 2CmdLine=notescript2.vbs 2Parameters= 3CmdLine=touch.bat 3Parameters= [Shutdown] 0CmdLine=touch.bat 0Parameters=
scripts.ini
закодирован в формате UTF-16LE (little-endian).
Примечание
{GUID GPT}/User/Scripts/pgscripts.ini
(для сценариев входа и выхода пользователя) и {GUID GPT}/Machine/Scripts/pgscripts.ini
(для запуска и завершения работы компьютера).
<?xml version="<версия>" encoding="<кодировка"?>где:
Примечание
<policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="<MajorVerison.MinorVersion>" schemaVersion="<MajorVerison.MinorVersion>" xmlns=" http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" > <policyNamespaces> … </policyNamespaces> <supersededAdm> … </supersededAdm> <resources> … </resources> <supportedOn> … </supportedOn> <categories> … </categories> <policies> … </policies> </policyDefinitions>
Таблица 29.1. Атрибуты элемента policyDefinitions
Атрибут
|
Обязательный
|
Описание
|
---|---|---|
xmlns:xsd
|
Нет
|
Обозначение элементов и типов данных, используемых в схеме пространства имен
|
xmlns:xsi
|
Нет
|
Обозначение пространства имён экземпляра XML-схемы, предоставленной в самом пространстве
|
revision
|
Да
|
Версия ADMX-файла, которая в большинстве случаев предназначена для отслеживания внесенных изменений.
Синтаксис:
revision="<MajorVerison.MinorVersion>"где MajorVersion и MinorVersion являются номерами версии, например, revision="1.0" |
schemaVersion
|
Да
|
Указывает версию схемы, используемую средствами работы с ГП для определения того, поддерживается ли ими формат конкретных ADMX-файлов. Синтаксис этой команды идентичен синтаксису revision
|
xmlns
|
Нет
|
Пространство имен схемы ГП
|
Примечание
Таблица 29.2. Дочерние элементы policyDefinitions
Элемент
|
Обязательный
|
Описание
|
---|---|---|
policyNamespaces
|
Да
|
Определяет уникальное имя пространства имен политики в файле ADMX, а также любых пространств имен, на которые оно ссылается в других файлах ADMX.
Синтаксис:
<policyNamespaces> <target> … </target> <using> … </using> </policyNamespaces>где:
|
supersededAdm
|
Нет
|
Данный элемент ссылается на имя ADM-файла, заменяемого ADMX-файлом
|
resources
|
Да
|
Определяет требования для ресурсов определенного языка и минимальную необходимую версию связанного ADML-файла.
Синтаксис:
<resources minRequiredRevision="<MajorVerison.MinorVersion>" fallbackCulture="<language name>"/>где:
|
supportedOn
|
Нет
|
Определяет сопоставление ссылки на локализированные строки текста с ОС или приложениями, на которые влияют конкретные параметры политики.
Синтаксис:
<supportedOn> <definitions> … </definitions> </supportedOn>Элементы definitions содержат информацию о поддерживаемой версии. |
categories
|
Нет
|
Содержит список категорий, в которых параметр политики текущего ADMX-файла будет отображаться в редакторе управления групповыми политиками.
Синтаксис:
<categories> <category> … </category> </categories>Элемент category указывает имя уникальной категории, которая будет отображаться в редакторе объектов групповой политики. |
policies
|
Нет
|
Содержит список определений параметров политики.
Синтаксис:
<policies> <policy> … </policy> </policies>Дочерний элемент policy соответствует одному параметру ГП, отображаемому в редакторе объектов групповой политики. Элемент policy описывает всю информацию о параметре политики, но включает ссылку на определение параметра. |
<category name="<logical or friendly name>" displayName="$(string.<category text>)" explainText="$(string.<help text>)"> <parentCategory> … </parentCategory> <seeAlso> … </seeAlso> <keywords> … </keywords> </category>
Таблица 29.3. Атрибуты элемента category
Атрибут
|
Обязательный
|
Описание
|
---|---|---|
name
|
Да
|
Имя, которое будет использоваться для конкретного поддерживаемого приложения и версии
|
displayName
|
Да
|
Ссылка на текстовую строку категории, расположенную в таблице строк ADML-файла
|
explainText
|
Нет
|
Текст объяснения или справки, связанный с конкретной категорией
|
Таблица 29.4. Дочерние элементы category
Элемент
|
Обязательный
|
Описание
|
---|---|---|
parentCategory
|
Да
|
Ссылка на родительскую категорию
|
seeAlso
|
Нет
|
Ссылка на другой элемент, который может быть связан с этим. Этот элемент не поддерживается и будет игнорироваться текущей ГП
|
keywords
|
Нет
|
Содержит индексные слова, которые можно использовать для поиска элементов. Этот элемент не поддерживается и будет игнорироваться текущей ГП
|
<policy name="<logical or friendly name>" class="Machine|User|Both" displayName="$(string.<category text>)" explainText="$(string.<help text>)" presentation="$(presentation.<parameter>)" key="<registry key>" valueName="<registry valuename>"> <parentCategory> … </parentCategory> <supportedOn> … </supportedOn> <enabledValue> … </enabledValue> <disabledValue> … </disabledValue> <enabledList> … </enabledList> <disabledList> … </disabledList> <elements> … </elements> </policy>
Таблица 29.5. Атрибуты элемента policy
Атрибут
|
Обязательный
|
Описание
|
---|---|---|
name
|
Да
|
Уникальное имя элемента политики (строка, желательно без пробелов и специальных символов)
|
class
|
Да
|
Определяет, где в каком разделе редактора ГП будет размещён элемент политики: компьютере, пользователе или в обоих узлах. Может принимать значения: «User», «Machine» или «Both»
|
displayName
|
Да
|
Имя, отображаемое в GPUI или оснастке консоли управления ГП. Ссылка на строку, расположенную в ADML-файле
|
explainText
|
Нет
|
Текст объяснения или справки, связанный с элементом политики. Ссылка на строку, расположенную в ADML-файле
|
presentation
|
Нет
|
Подписи параметров политики. Ссылка на строки, расположенные в ADML-файле
|
key
|
Да
|
Местоположение ключа реестра, в котором будет создан параметр реестра
|
valueName
|
Нет
|
Значение реестра, которое будет настроено для этого конкретного элемента политики
|
Таблица 29.6. Дочерние элементы policy
Элемент
|
Обязательный
|
Описание
|
---|---|---|
parentCategory
|
Да
|
Ссылка на родительскую категорию (раздел, в котором будет отображаться политика)
|
supportedOn
|
Нет
|
Логическое имя supportOn, определенное в элементе supportOn для этого файла (ссылка на поддерживаемые продукты)
|
enabledValue
|
Нет
|
Значение, которое раздел реестра примет, если политика включена.
Синтаксис:
<enabledValue> <delete /> | <decimal> … </decimal> | <string> … </string> </enabledValue>где:
|
disabledValue
|
Нет
|
Значение, которое раздел реестра примет, если политика отключена. См. описание enabledValue.
|
enabledList
|
Нет
|
Набор значений и ключей реестра, представляющих включенное состояние элемента политики
Синтаксис:
<enabledList defaultKey="<registry subkey>"> <item> … </item> </enabledList>где:
|
disabledList
|
Нет
|
Набор значений и ключей реестра, представляющих отключенное состояние элемента политики. См. описание enabledList
|
elements
|
Нет
|
Один из пяти типов параметров (см.ниже), которые можно задать в настройке политики
|
<elements> <boolean> … </boolean> <decimal> … </decimal> <text> … </text> <enum> … </enum> <list> … </list> </elements>
Таблица 29.7. Дочерние элементы elements
Элемент
|
Обязательный
|
Описание
|
---|---|---|
boolean
|
Нет
|
Представляет логический элемент в политике.
Синтаксис:
<boolean id="<ID>" clientExtension="<GUID>" key="<RegKey>" valueName="<Name>"> <trueValue> … </trueValue> <falseValue> … </falseValue> <trueList> … </trueList> <falseList> … </falseList> </boolean>где:
<boolean id="OrgXfceThunar_blocker" key="Software\BaseALT\Policies\PolkitLocks" valueName="org.xfce.thunar"> <trueValue> <decimal value="1" /> </trueValue> <falseValue> <decimal value="0" /> </falseValue> </boolean>
Для элемента boolean в ADMX-файле требуется элемент checkBox с соответствующим идентификатором в ADML-файле.
|
decimal
|
Нет
|
Представляет числовой/десятичный элемент в политике. Число может быть определено для хранения в виде числового или строкового репрезентативного значения
Синтаксис:
<decimal id="<ID>" clientExtension="<GUID>" key="<RegKey>" valueName="<Name>" required="true|false" minValue="<MinValue>" maxValue="<MaxValue>" storeAsText="true|false" soft="true|false" />где:
<decimal id="OrgMateSessionIdleDelay_setter" valueName="org.mate.session.idle-delay" minValue="1" maxValue="2147483647" />
Для элемента decimal требуется элемент decimalTextBox с соответствующим идентификатором в ADML-файле.
|
text
|
Нет
|
Представляет текстовый элемент в политике.
Синтаксис:
<text id="<ID>" clientExtension="<GUID>" key="<RegKey>" valueName="<Name>" required="true|false" maxLength="<maxLength>" expandable="true|false" soft="true|false" />где:
<text id="OrgMateBackgroundSecondaryColor_setter" valueName="org.mate.background.secondary-color" />
Элемент text допускает строковые значения длиной до 1023 символов.
|
enum
|
Нет
|
Представляет элемент перечисления.
Синтаксис:
<enum id="<ID>" clientExtension="<GUID>" key="<RegKey>" valueName="<Name>" required="true|false"> <item> … </item> </enum>где:
<enum id="OrgMateColorShadingType_setter" required="true" valueName="org.mate.background.color-shading-type"> <item displayName="$(string.org-mate-background-color-shading-type-horizontal-gradient)"> <value> <string>horizontal-gradient</string> </value> </item> <item displayName="$(string.org-mate-background-color-shading-type-vertical-gradient)"> <value> <string>vertical-gradient</string> </value> </item> <item displayName="$(string.org-mate-background-color-shading-type-solid)"> <value> <string>solid</string> </value> </item> </enum>
Элемент enum обычно связан с элементом раскрывающегося списка в редакторе объектов групповой политики.
Для элемента enum требуется элемент dropdownList с соответствующим идентификатором в ADML-файле.
|
list
|
Нет
|
Представляет элемент списка в политике.
Синтаксис:
<list id="<ID>" clientExtension="<GUID>" key="<RegKey>" valuePrefix="<Name>"> additive="true|false" expandable="true|false" explicitValue="true|false" > </ list>где:
Пример:
<list id="InstallPackagesList" key="Software\BaseALT\Policies\Packages\Install" additive="true"/>
Для элемента list требуется элемент listBox с соответствующим идентификатором в ADML-файле.
|
Примечание
<policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="<MajorVerison.MinorVersion>" schemaVersion="<MajorVerison.MinorVersion>" xmlns=" http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" > <displayName> … </displayName> <description> … </description> <annotation> … </annotation> <resources> … </resources> </policyDefinitionResources>
Таблица 29.8. Атрибуты элемента policyDefinitionResources
Атрибут
|
Обязательный
|
Описание
|
---|---|---|
xmlns:xsd
|
Нет
|
Обозначение элементов и типов данных, используемых в схеме пространства имен
|
xmlns:xsi
|
Нет
|
Обозначение пространства имён экземпляра XML-схемы, предоставленной в самом пространстве
|
revision
|
Да
|
Версия ADMX-файла.
Синтаксис:
revision="<MajorVerison.MinorVersion>"где MajorVersion и MinorVersion являются номерами версии, например, revision="1.0" |
schemaVersion
|
Да
|
Указывает версию схемы, используемую средствами работы с ГП. Синтаксис этой команды идентичен синтаксису revision
|
xmlns
|
Нет
|
Пространство имен схемы ГП
|
Таблица 29.9. Дочерние элементы policyDefinitionResources
Элемент
|
Обязательный
|
Описание
|
---|---|---|
displayName
|
Да
|
Локализованное название политики, содержащееся в ADML-файле
|
description
|
Нет
|
Описание параметров политики, содержащееся в ADML-файле
|
annotation
|
Да
|
Локализованный комментарий
|
resources
|
Нет
|
Содержит элементы stringTable и presentationTable для указанного языка.
Синтаксис:
<resources> <stringTable> … </stringTable> <presentationTable> … </presentationTable> </resources> |
Таблица 29.10. Дочерние элементы resources
Элемент
|
Обязательный
|
Описание
|
---|---|---|
stringTable
|
Нет
|
Содержит отображаемые строки для следующих видов информации:
Синтаксис:
<stringTable> <string> … </string> </stringTable>
Элемент stringTable нельзя объявлять более одного раза.
|
presentationTable
|
Нет
|
Таблица элементов представления, представляющая структуру элементов управления параметрами для отдельных параметров групповой политики. Расположение элементов управления параметрами включает в себя: тип элемента ввода параметров (поле редактирования, ползунок, выпадающий список, флажки, переключатели); подписи и текст подсказки для ввода параметров; а также значения по умолчанию и диапазон возможных значений для каждого параметра.
Синтаксис:
<presentationTable> <presentation> … </presentation> </presentationTable>
Если в ADML-файле нет элементов представления, элемент PresentationTable можно опустить. Если элемент PresentationTable включен в ADML-файл, необходимо определить хотя бы один элемент представления. Элемент PresentationTable определяется в ADML-файле не более одного раза.
|
<presentation id="<logical or friendly name>"> <text> … </text> <decimalTextBox> … </decimalTextBox> <textBox> … </textBox> <checkBox> … </checkBox> <comboBox> … </comboBox> <dropdownList> … </dropdownList> <listBox> … </listBox> </presentation>
Таблица 29.11. Атрибуты элемента presentation
Атрибут
|
Обязательный
|
Описание
|
---|---|---|
id
|
Да
|
Указывает логическое имя при ссылке на информацию о представлении для определенного параметра политики
|
Таблица 29.12. Дочерние элементы presentation
Элемент
|
Обязательный
|
Описание
|
---|---|---|
text
|
Да
|
Локализованная строка. Используется для определения текста, расположенного выше и ниже поля ввода параметра.
Синтаксис:
<text>Локализованная строка</text> |
decimalTextBox
|
Нет
|
Текстовое поле с элементом управления прокруткой или без него для ввода десятичных чисел в качестве параметра настройки политики. Должен быть связан с элементом decimal, определенным в элементе elements.
Синтаксис:
<decimalTextBox refId="Sample_NumericTextLabel">Метка:</decimalTextBox>где:
Пример:
<decimalTextBox refId="OrgMateScreensaverLockDelay_setter" defaultValue="3"> Скорость повтора </decimalTextBox> ![]() |
textBox
|
Нет
|
Синтаксис:
<textBox refId="<ID>"> <label> … </label> <defaultValue> … </defaultValue> </textBox>где:
Пример:
<textBox refId="OrgMateFilename_setter"> <label>Файл:</label> </textBox> ![]() |
checkBox
|
Нет
|
Синтаксис:
<checkBox refId="<ID> defaultChecked="true|false"> Placeholder label: </checkBox>где:
Пример:
<checkBox refId="OrgXfceThunar_blocker"> Блокировать </checkBox> ![]() |
comboBox
|
Нет
|
Поле со списком со значениями по умолчанию или предлагаемыми записями. Должно быть связано с элементом text, определенным в элементе elements.
Синтаксис:
<comboBox refId="<ID> noSort="true|false"> <label> … </label> <default> … </default> <suggestion> … </suggestion> </comboBox>где:
Пример:
<comboBox refId="OrgMateFilename_setter"> <label>Файл</label> <default>None</default> <suggestion>testA</suggestion> <suggestion>testB</suggestion> <suggestion>testC</suggestion> </comboBox> ![]() |
dropdownList
|
Нет
|
Раскрывающийся список, с помощью которого пользователь может выбрать одну из отображаемых записей. Должен быть связан с элементом enum, определенным в элементе elements.
Синтаксис:
<dropdownList refId="<ID>" noSort="true|false"> defaultItem="<NumericValue>"> Placeholder label: </dropdownList>где:
Пример:
<dropdownList noSort="true" defaultItem="0" refId="OrgMateColorShadingType_setter"> Тип градиента: </dropdownList> ![]() |
listBox
|
Нет
|
Представляет параметр списка с кнопками «Добавить» и «Удалить». Это единственный параметр, который можно использовать для управления несколькими значениями под одним ключом. Должен быть связан с элементом list, определенным в элементе elements.
Синтаксис:
<listBox refId="ID">Описание:</listBox>где:
Пример:
<listBox refId="InstallPackagesList"> Список пакетов для установки </listBox> ![]() |
Примечание
example.admx
с элементом policy, который содержит два элемента флажка (checkbox):
<policy name="Sample_Checkbox" class="User" displayName="$(string.Sample_Checkbox)" explainText="$(string.Sample_Checkbox_Help)" presentation="$(presentation.Sample_Checkbox)" key="Software\BaseALT\Policies\gsettings"> <parentCategory ref="system:ALT_Background_Mate" /> <supportedOn ref="system:SUPPORTED_AltP9" /> <elements> <boolean id="Checkbox_1" valueName="ExampleCheckbox1"> <trueValue> <decimal value="1" /> </trueValue> <falseValue> <decimal value="0" /> </falseValue> </boolean> <boolean id="Checkbox_2" valueName="ExampleCheckbox2"> <trueValue> <decimal value="0" /> </trueValue> <falseValue> <decimal value="1" /> </falseValue> </boolean> </elements> </policy>
example.admx
с элементом policy, который содержит два элемента флажка (checkbox):
<presentation id="Sample_Checkbox"> <checkBox refId="Checkbox_1">Первый параметр</checkBox> <checkBox refId="Checkbox_2" defaultChecked="true">Второй параметр — отмечен по умолчанию</checkBox> </presentation>
Примечание
<elements> <boolean id="Checkbox_1" valueName="ExampleCheckbox1"> … </boolean> <boolean id="Checkbox_2" valueName="ExampleCheckbox2"> … </boolean> </elements>Элемент presentation содержит два элемента checkBox:
<presentation id="Sample_Checkbox"> <checkBox refId="Checkbox_1">…</checkBox> <checkBox refId="Checkbox_2" defaultChecked="true">…</checkBox> </presentation>Атрибут id элемента boolean используется для соответствия связанному элементу checkBox, на который ссылается атрибут refId.
Таблица 29.13. Сопоставление
Тип данных в ADMX-файле
|
Определение параметра в ADML-файле
|
---|---|
boolean
|
checkBox
|
text
|
textBox
|
decimal
|
decimalTextBox
|
text
|
comboBox
|
enum или item
|
dropdownList
|
list
|
listBox
|
MyCompany.admx
с определением категории MyCompany:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"> <policyNamespaces> <target prefix="mycompany" namespace="MyCompany.Policies.MyCompany" /> </policyNamespaces> <resources minRequiredRevision="1.0" /> <categories> <category name="MyCompany" displayName="$(string.MyCompany)" explainText="$(string.MyCompany_Help)" /> </categories> </policyDefinitions>
ru-RU/MyCompany.adml
, который будет содержать локализованное название категории:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"> <displayName>Определение базовой категории</displayName> <description>Этот файл содержит определение базовой категории организации. </description> <resources> <stringTable> <string id="MyCompany">Моя организация</string> <string id="MyCompany_Help">Содержит параметры конфигурации, специфичные для организации.</string> </stringTable> </resources> </policyDefinitionResources>
using
в элемент policyNamespaces
. Атрибут пространства имен должен соответствовать пространству имен, определенному в пользовательском базовом файле (в примере MyCompany.Policies.MyCompany
). Атрибутом префикса может быть любое имя, уникальное для ADMX-файла. Рекомендуется по возможности использовать строку атрибута префикса из пользовательского базового файла, чтобы избежать путаницы. Например, следующий фрагмент файла example.admx
определяет пространство имен и ссылается на базовый файл MyCompany в элементе policyNamespaces
:
<policyNamespaces> <target prefix="example" namespace="MyCompany.Policies.Example" /> <using prefix="mycompany" namespace="MyCompany.Policies.MyCompany" /> </policyNamespaces>
Примечание
Примечание
$ systemctl list-units --type service --all
Получить список всех установленных файлов модулей можно, выполнив команду:
$ systemctl list-unit-files
MySystemd.admx
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"> <policyNamespaces> <target prefix="systemdunits" namespace="BaseALT.Policies.MySystemdUnits" /> <using prefix="system" namespace="BaseALT.Policies.System" /> </policyNamespaces> <resources minRequiredRevision="1.0" /> <policies> <policy class="Machine" displayName="$(string.httpd2_service)" explainText="$(string.httpd2_service_help)" key="Software\BaseALT\Policies\SystemdUnits" valueName="httpd2.service" name="httpd2.service"> <parentCategory ref="system:ALT_Systemd"/> <supportedOn ref="system:SUPPORTED_AltP9"/> <enabledValue> <decimal value="1"/> </enabledValue> <disabledValue> <decimal value="0"/> </disabledValue> </policy> </policies> </policyDefinitions>
ru-RU/MySystemd.adml
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" revision="1.0" schemaVersion="1.0"> <displayName>Определения служб</displayName> <description>Этот файл содержит дополнительные определения systemd-служб</description> <resources> <stringTable> <string id="httpd2_service">Веб-сервер Apache</string> <string id="httpd2_service_help">Эта политика определяет, включен ли systemd юнит веб-сервера Apache. </string> </stringTable> </resources> </policyDefinitionResources>
en-US/MySystemd.adml
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" revision="1.0" schemaVersion="1.0"> <displayName>Services definitions</displayName> <description>This file contains the systemd services definitions</description> <resources> <stringTable> <string id="httpd2_service">Apache Web Server</string> <string id="httpd2_service_help">This policy determines whether the systemd unit of Apache Web Server is enabled. </string> </stringTable> </resources> </policyDefinitionResources>
MySystemd.admx
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions
ru-RU/MySystemd.adml
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions\ru-RU
en-US/MySystemd.adml
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions\en-US
MySystemd.admx
в каталог /usr/share/PolicyDefinitions
ru-RU/MySystemd.adml
в каталог /usr/share/PolicyDefinitions/ru-RU
en-US/MySystemd.adml
в каталог /usr/share/PolicyDefinitions/en-US
/var/lib/samba/sysvol/<DOMAIN>/Policies/
).
Примечание
# control
Примечание
# control osec-send help
mail: Mail root
journal: Write to systemd journal
MyControl.admx
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"> <policyNamespaces> <target prefix="control" namespace="BaseALT.Policies.MyControl" /> <using prefix="system" namespace="BaseALT.Policies.System" /> </policyNamespaces> <resources minRequiredRevision="1.0" /> <policies> <policy class="Machine" displayName="$(string.osec-send)" explainText="$(string.osec-send_help)" key="Software\BaseALT\Policies\Control" name="osec-send" presentation="$(presentation.osec-send)"> <parentCategory ref="system:ALT_Services"/> <supportedOn ref="system:SUPPORTED_AltP9"/> <elements> <enum id="osec-send_setter" required="true" valueName="osec-send"> <item displayName="$(string.osec-send_mail)"> <value> <string>mail</string> </value> </item> <item displayName="$(string.osec-send_journal)"> <value> <string>journal</string> </value> </item> </enum> </elements> </policy> </policies> </policyDefinitions>
ru-RU/MyControl.adml
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" revision="1.0" schemaVersion="1.0"> <displayName>Определения политик управления системными компонентами</displayName> <description>Этот файл содержит определения политик управления системными компонентами.</description> <resources> <stringTable> <string id="osec-send">Отчет подсистемы osec</string> <string id="osec-send_help">Политика позволяет определить куда отправлять ежедневный отчёт: Почта — отправлять отчёт на почтовый ящик пользователя root Журнал — записывать отчёт в системный журнал </string> <string id="osec-send_mail">Почта</string> <string id="osec-send_journal">Журнал</string> </stringTable> <presentationTable> <presentation id="osec-send"> <dropdownList noSort="true" defaultItem="0" refId="osec-send_setter">Куда отправлять отчёт: </dropdownList> </presentation> </presentationTable> </resources> </policyDefinitionResources>
en-US/MyControl.adml
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" revision="1.0" schemaVersion="1.0"> <displayName>Control installed facilities definitions</displayName> <description>This file contains the control installed facilities definitions.</description> <resources> <stringTable> <string id="osec-send">Osec Subsystem Report</string> <string id="osec-send_help">The policy allows you to determine where to send the daily report: Mail — Mail root Journal — Write to systemd journal </string> <string id="osec-send_mail">Mail</string> <string id="osec-send_journal">Journal</string> </stringTable> <presentationTable> <presentation id="osec-send"> <dropdownList noSort="true" defaultItem="0" refId="osec-send_setter">Where to send the report: </dropdownList> </presentation> </presentationTable> </resources> </policyDefinitionResources>
MyControl.admx
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions
ru-RU/MyControl.adml
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions\ru-RU
en-US/MyControl.adml
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions\en-US
MyControl.admx
в каталог /usr/share/PolicyDefinitions
ru-RU/MyControl.adml
в каталог /usr/share/PolicyDefinitions/ru-RU
en-US/MyControl.adml
в каталог /usr/share/PolicyDefinitions/en-US
/var/lib/samba/sysvol/<DOMAIN>/Policies/
).
Примечание
$ gsettings list-schemas
Посмотреть все ключи Gsettings можно, выполнив команду:
$ gsettings list-recursively
Примечание
$Ключ idle-delay позволяет управлять настройкой «Считать компьютер простаивающим через».gsettings list-keys org.mate.session
gnome-compat-startup show-hidden-apps idle-delay required-components-list default-session auto-save-session logout-prompt logout-timeout session-start $gsettings get org.mate.session idle-delay
5
MyGsettings.admx
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"> <policyNamespaces> <target prefix="gsettings" namespace="BaseALT.Policies.MyGsettings" /> <using prefix="system" namespace="BaseALT.Policies.System" /> </policyNamespaces> <resources minRequiredRevision="1.0" /> <policies> <policy name="OrgMateSessionIdleDelayUser" class="User" displayName="$(string.org-mate-session-idle-delay)" explainText="$(string.org-mate-session-idle-delay_help)" key="Software\BaseALT\Policies\gsettings" presentation="$(presentation.OrgMateSessionIdleDelayUser-pr)"> <parentCategory ref="system:ALT_Screensaver_Mate" /> <supportedOn ref="system:SUPPORTED_AltP9" /> <elements> <decimal id="OrgMateSessionIdleDelay_setter" valueName="org.mate.session.idle-delay" minValue="1" maxValue="2147483647" /> </elements> </policy> <policy name="OrgMateSessionIdleDelayMachine" class="Machine" displayName="$(string.org-mate-session-idle-delay)" explainText="$(string.org-mate-session-idle-delay_help)" key="Software\BaseALT\Policies\gsettings" presentation="$(presentation.OrgMateSessionIdleDelayMachine-pr)"> <parentCategory ref="system:ALT_Screensaver_Mate" /> <supportedOn ref="system:SUPPORTED_AltP9" /> <elements> <decimal id="OrgMateSessionIdleDelay_setter" valueName="org.mate.session.idle-delay" minValue="1" maxValue="2147483647" /> <boolean id="OrgMateSessionIdleDelay_setter_blocker" key="Software\BaseALT\Policies\GSettingsLocks" valueName="org.mate.session.idle-delay"> <trueValue> <decimal value="1" /> </trueValue> <falseValue> <decimal value="0" /> </falseValue> </boolean> </elements> </policy> </policies> </policyDefinitions>
ru-RU/MyGsettings.adml
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" revision="1.0" schemaVersion="1.0"> <displayName>Определения списка настроек рабочего окружения MATE</displayName> <description>Этот файл содержит определения настроек рабочего окружения MATE.</description> <resources> <stringTable> <string id="org-mate-session-idle-delay">Считать компьютер простаивающим через</string> <string id="org-mate-session-idle-delay_help">Устанавливает количество минут, по истечении которых компьютер будет считаться простаивающим. Опция «Блокировать» — (доступна только для машинной политики) запрещает изменение данной настройки пользователем. Блокировка политики делает её приоритетнее аналогичной политики для пользователя. </string> </stringTable> <presentationTable> <presentation id="OrgMateSessionIdleDelayUser-pr"> <text>Количество минут, по истечении которого компьютер будет считаться простаивающим</text> <decimalTextBox refId="OrgMateSessionIdleDelay_setter" defaultValue="1">Время в минутах</decimalTextBox> </presentation> <presentation id="OrgMateSessionIdleDelayMachine-pr"> <text>Количество минут, по истечении которого компьютер будет считаться простаивающим</text> <decimalTextBox refId="OrgMateSessionIdleDelay_setter" defaultValue="1">Время в минутах:</decimalTextBox> <checkBox refId="OrgMateSessionIdleDelay_setter_blocker">Блокировать</checkBox> </presentation> </presentationTable> </resources> </policyDefinitionResources>
en-US/MyGsettings.adml
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" revision="1.0" schemaVersion="1.0"> <displayName>MATE desktop configurations definitions</displayName> <description>This file contains the desktop MATE configurations definitions.</description> <resources> <stringTable> <string id="org-mate-session-idle-delay">Consider the computer idle after</string> <string id="org-mate-session-idle-delay_help">Sets the number of minutes after which the computer will be considered idle. The "Block" option — (available only for machine policy) prevents the user from changing this setting. Blocking a policy makes it a priority over a similar policy for the user. </string> </stringTable> <presentationTable> <presentation id="OrgMateSessionIdleDelayUser-pr"> <text>Number of minutes after which the computer will be considered idle</text> <decimalTextBox refId="OrgMateSessionIdleDelay_setter" defaultValue="1">Time in minutes</decimalTextBox> </presentation> <presentation id="OrgMateSessionIdleDelayMachine-pr"> <text>Number of minutes after which the computer will be considered idle</text> <decimalTextBox refId="OrgMateSessionIdleDelay_setter" defaultValue="1">Time in minutes:</decimalTextBox> <checkBox refId="OrgMateSessionIdleDelay_setter_blocker">Блокировать</checkBox> </presentation> </presentationTable> </resources> </policyDefinitionResources>
MyGsettings.admx
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions
ru-RU/MyGsettings.adml
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions\ru-RU
en-US/MyGsettings.adml
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions\en-US
MyGsettings.admx
в каталог /usr/share/PolicyDefinitions
ru-RU/MyGsettings.adml
в каталог /usr/share/PolicyDefinitions/ru-RU
en-US/MyGsettings.adml
в каталог /usr/share/PolicyDefinitions/en-US
/var/lib/samba/sysvol/<DOMAIN>/Policies/
).
Примечание
/usr/share/polkit-1/actions/
в формате *.policy Каждая политика представляет собой xml-файл, в котором описываются запросы к polkit.
/usr/share/polkit-1/actions/
можно, выполнив команду
$ pkaction
MyPolkit.admx
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"revision="1.0" schemaVersion="1.0" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions"> <policyNamespaces> <target prefix="xfce" namespace="BaseALT.Policies.MyPolkit" /> <using prefix="system" namespace="BaseALT.Policies.System" /> </policyNamespaces> <resources minRequiredRevision="1.0" /> <policies> <policy class="Machine" displayName="$(string.org-xfce-thunar)" explainText="$(string.org-xfce-thunar_help)" key="Software\BaseALT\Policies\Polkit" name="org.xfce.thunar" valuename="org.xfce.thunar" presentation="$(presentation.OrgXfceThunar-pr)"> <parentCategory ref="system:ALT_Polkit" /> <supportedOn ref="system:SUPPORTED_AltP10" /> <elements> <enum id="OrgXfceThunar_setter" valueName="org.xfce.thunar" required="true"> <item displayName="$(string.org-xfce-thunar-No)"> <value> <string>No</string> </value> </item> <item displayName="$(string.org-xfce-thunar-Yes)"> <value> <string>Yes</string> </value> </item> <item displayName="$(string.org-xfce-thunar-Auth-self)"> <value> <string>Auth_self</string> </value> </item> <item displayName="$(string.org-xfce-thunar-Auth-admin)"> <value> <string>Auth_admin</string> </value> </item> <item displayName="$(string.org-xfce-thunar-Auth-self-keep)"> <value> <string>Auth_self_keep</string> </value> </item> <item displayName="$(string.org-xfce-thunar-Auth-admin-keep)"> <value> <string>Auth_admin_keep</string> </value> </item> </enum> <boolean id="OrgXfceThunar_blocker" key="Software\BaseALT\Policies\PolkitLocks" valueName="org.xfce.thunar"> <trueValue> <decimal value="1" /> </trueValue> <falseValue> <decimal value="0" /> </falseValue> </boolean> </elements> </policy> </policies> </policyDefinitions>
ru-RU/MyPolkit.adml
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" revision="1.0" schemaVersion="1.0"> <displayName>Определения политик Xfce</displayName> <description>Этот файл содержит определения политик для управления Xfce.</description> <resources> <stringTable> <string id="org-xfce-thunar">Ограничение возможности запуска Thunar от суперпользователя</string> <string id="org-xfce-thunar_help">Политика управляет ограничением возможности запуска Thunar от суперпользователя Отключено/Не сконфигурировано — ограничения определяются системными параметрами. Включено — ограничение с установленными правами; Возможные значения: «No» — установить ограничение с запретом действия (пользователю не разрешено выполнять действие); «Yes» — снять ограничение (пользователь может выполнять действие без какой-либо аутентификации); «Auth_self» — пользователь должен ввести свой пароль для аутентификации. Обратите внимание, этого уровня ограничения недостаточно для большинства применений в многопользовательских системах, обычно рекомендуется «Auth_admin»; «Auth_admin» — пользователь должен ввести пароль администратора при каждом запросе. Требуется аутентификация пользователя с правами администратора; «Auth_self_keep» — подобно «Auth_self», но авторизация сохраняется в течение короткого периода времени (например, пять минут). Обратите внимание, этого уровня ограничения недостаточно для большинства применений в многопользовательских системах, обычно рекомендуется «Auth_admin_keep»; «Auth_admin_keep» — аналогично «Auth_admin», но авторизация сохраняется в течение короткого периода времени (например, пять минут); Примечание: обладание административными правами в контексте PolicyKit определяются его правилами. По умолчанию в Альт запрашивается пароль пользователя, находящегося в группе «wheel». Опция «Блокировать» — запрещает изменение данной настройки пользователем. Блокировка политики делает её приоритетнее аналогичной политики для пользователя. </string> <string id="org-xfce-thunar-No">No</string> <string id="org-xfce-thunar-Yes">Yes</string> <string id="org-xfce-thunar-Auth-self">Auth_self</string> <string id="org-xfce-thunar-Auth-admin">Auth_admin</string> <string id="org-xfce-thunar-Auth-self-keep">Auth_self_keep</string> <string id="org-xfce-thunar-Auth-admin-keep">Auth_admin_keep</string> </stringTable> <presentationTable> <presentation id="OrgXfceThunar-pr"> <dropdownList noSort="true" defaultItem="1" refId="OrgXfceThunar_setter">Варианты ограничений на запуск Thunar от суперпользователя:</dropdownList> <checkBox refId="OrgXfceThunar_blocker">Блокировать настройку ограничений</checkBox> </presentation> </presentationTable> </resources> </policyDefinitionResources>
en-US/MyPolkit.adml
:
<?xml version="1.0" encoding="utf-8"?> <policyDefinitionResources xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" revision="1.0" schemaVersion="1.0"> <displayName>ALT Xfce policies definitions</displayName> <description>This file contains the Xfce service policies definitions used by ALT operating system.</description> <resources> <stringTable> <string id="org-xfce-thunar">Run Thunar as root</string> <string id="org-xfce-thunar_help">This policy grants or restricts permissions to run Thunar as root Disabled/Not configured — Permissions are determined by system settings. Default is «Auth_admin» Enabled — permission to mount with set rights; Possible values: "No" — block permissions (the user is not allowed to perform the action); "Yes" — grant permissions (the user can perform the action without any authentication); "Auth_self" — The user must enter their password to authenticate. Note that this permission is not sufficient for most uses on multi-user systems, the "Auth_admin" permission is generally recommended; "Auth_admin" — The user must enter an administrator password on each request. Requires user authentication with administrator rights; "Auth_self_keep" — Similar to "Auth_self", but the authorization is kept for a short period of time (for example, five minutes). Note that this permission is not sufficient for most uses on multi-user systems, the "Auth_admin_keep" permission is generally recommended; "Auth_admin_keep" — similar to "Auth_admin", but the authorization is kept for a short period of time (for example, five minutes); Note: the possession of administrative rights in the context of PolicyKit is determined by its rules. By default, Alt asks for the password of the user in the "wheel" group. The "Block" option prevents the user from changing this setting. Blocking a policy makes it a priority over a similar policy for the user. </string> <string id="org-xfce-thunar-No">No</string> <string id="org-xfce-thunar-Yes">Yes</string> <string id="org-xfce-thunar-Auth-self">Auth_self</string> <string id="org-xfce-thunar-Auth-admin">Auth_admin</string> <string id="org-xfce-thunar-Auth-self-keep">Auth_self_keep</string> <string id="org-xfce-thunar-Auth-admin-keep">Auth_admin_keep</string> </stringTable> <presentationTable> <presentation id="OrgXfceThunar-pr"> <dropdownList noSort="true" defaultItem="1" refId="OrgXfceThunar_setter">Restriction options:</dropdownList> <checkBox refId="OrgXfceThunar_blocker">Block</checkBox> </presentation> </presentationTable> </resources> </policyDefinitionResources>
MyPolkit.admx
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions
ru-RU/MyPolkit.adml
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions\ru-RU
en-US/MyPolkit.adml
в каталог \\test.alt\sysvol\test.alt\Policies\PolicyDefinitions\en-US
MyPolkit.admx
в каталог /usr/share/PolicyDefinitions
ru-RU/MyPolkit.adml
в каталог /usr/share/PolicyDefinitions/ru-RU
en-US/MyPolkit.adml
в каталог /usr/share/PolicyDefinitions/en-US
/var/lib/samba/sysvol/<DOMAIN>/Policies/
).
Примечание
flags
: объект GPO включён (значение 0, все настройки политики применяются к целевым объектам домена), отключён раздел Конфигурация пользователя (значение 1, не применяются настройки пользовательских политик), отключён раздел Конфигурация компьютера (значение 2, не применяются настройки из параметров GPO компьютера), объект GPO полностью отключён (значение 3, все настройки политики не применяются).
gpresult
(на машинах Windows).
$ gpresult -v
# gpoa --loglevel 0
# gpoa --loglevel 0 <имя_пользователя>
Таблица 30.1. Коды ошибок
Код
|
Описание
|
Решение
|
---|---|---|
E00001
|
Недостаточно прав для запуска программы
gpupdate
|
Необходимо повысить уровень привилегий. Может помочь запуск программы от имени администратора
|
E00002
|
Программа
gpupdate не будет запущена из-за предыдущих ошибок
|
|
E00003
|
Ошибка работы бэкэнда, которая привела к досрочному прекращению обработки групповых политик. Этот код характеризует серьёзные ошибки, которые обрабатываются на самом высоком уровне
|
Возможно, это ошибка в коде и необходимо создать отчет об ошибке, чтобы разработчики узнали о ней
|
E00004
|
Ошибка во время работы фронтенда
|
Высокоуровневая ошибка при инициализации фронтенда или во время работы appliers. С большой вероятностью может оказаться ошибкой в коде
|
E00005
|
Не получилось запустить appliers политик для обновления групповых политик компьютера
|
Необходимо проверить, что машина всё ещё в домене, демон oddjobd доступен через D-Bus и у пользователя достаточно прав для запуска ПО
|
E00006
|
Показать список доступных бэкэндов
|
Необходимо проверить, что машина всё ещё в домене, демон oddjobd доступен через D-Bus и у пользователя достаточно прав для запуска ПО
|
E00007
|
Невозможно инициализировать бэкэнд Samba в силу неполадок компонентов, связанных с Samba
|
Необходимо проверить инсталляцию Samba на машине, убедиться, что машина введена в домен и домен доступен
|
E00008
|
Невозможно инициализировать бэкэнд no-domain для выполнения процедуры бутстрапа групповых политик
|
Возможно, было произведено вмешательство в локальную политику или произошёл misconfiguration. Необходимо проверить целостность пакета local-policy и настройки домена в Alterator
|
E00009
|
Произошла ошибка при попытке запуска
adp
|
Необходимо обратиться к руководству по устранению неполадок проекта ADP
|
E00010
|
Произошёл сбой при попытке получить имя домена Active Directory
|
Необходимо проверить работу доменной службы имён (DNS), а также доступность доменного LDAP. Для доступа к LDAP необходим работоспособный Kerberos, так что стоит проверить и его конфигурацию
|
E00011
|
Во время работы applier с пониженным уровнем привилегий произошла неполадка
|
Возможно, что в используемой групповой политике заданы параметры, для установки которых требуются права администратора. Это необходимо проверить и исправить объект групповой политики соответственно
|
E00012
|
Высокоуровневая ошибка инициализации бэкэнда
|
Необходимо проверить наличие условий для запуска бэкэнда. В случае с Samba — удостовериться, что машина введена в домен
|
E00013
|
У пользователя, запустившего программу, недостаточно прав для обновления настроек машины
|
Необходимо запустить программу с правами администратора
|
E00014
|
Не прошла проверка наличия билета Kerberos. Билет Kerberos нужен для доступа к сервисам домена
|
Необходимо проверить конфигурацию Kerberos в файле
/etc/krb5.conf . Попытаться получить билет Kerberos вручную
|
E00015
|
Запрос на получение имени домена Active Directory через LDAP не прошёл
|
Необходимо проверить возможность получения Kerberos ticket для машины. Проверить работу DNS и возможность обратиться к доменному LDAP
|
E00016
|
Утилита
wbinfo не отдаёт SID для пользователя, для которого выполняется обновление групповых политик
|
Необходимо проверить целостность программы
wbinfo . Проверить, что машина введена в домен
|
E00017
|
Невозможно получить список групповых политик для репликации на используемое имя пользователя
|
Следует удостовериться, что пользователь для которого происходит попытка получить список групповых политик, существует в домене. Необходимо также удостовериться, что проблема не вызвана misconfiguration домена
|
E00018
|
Не получилось прочитать содержимое настройки XDG_DESKTOP_DIR
|
Необходимо удостовериться, что XDG в системе сконфигурирован корректно и пользователь, для которого вычитывается настройка, существует
|
E00019
|
Произошла ошибка во время работы applier для пользователя
|
Необходимо удостовериться, что это не misconfiguration в используемой GPO. Возможно это ошибка. В таком случае необходимо создать отчет об ошибке, чтобы разработчики узнали о ней
|
E00020
|
Произошла ошибка во время работы applier для пользователя с пониженными привилегиями
|
Необходимо удостовериться, что это не misconfiguration в используемой GPO. Возможно это ошибка. В таком случае необходимо создать отчет об ошибке, чтобы разработчики узнали о ней
|
E00021
|
Не был получен ответ от D-Bus при попытке запустить
gpoa для текущего пользователя
|
Следует удостовериться, что D-Bus работает корректно и демон oddjobd запущен. Необходимо удостовериться, что у текущего пользователя достаточно прав для обращения к D-Bus
|
E00022
|
Не был получен ответ от D-Bus при попытке запустить
gpoa для машины
|
Необходимо удостовериться, что D-Bus работает корректно и демон oddjobd запущен
|
E00023
|
Не был получен ответ от D-Bus при попытке запустить
gpoa для пользователя
|
Следует удостовериться, что D-Bus работает корректно и демон oddjobd запущен. Необходимо удостовериться, что у текущего пользователя достаточно прав для обращения к D-Bus
|
E00024
|
Ошибка во время работы машинного applier
|
Необходимо проверить настройки applier вручную, чтобы убедиться, что соответствующая часть ОС не поломана
|
E00025
|
Ошибка во время инициализации пользовательского applier
|
Необходимо проверить, что машина является частью домена и контроллер домена доступен. Следует удостовериться, что пользователь существует и что соответствующая часть ОС не поломана
|
E00026
|
Ошибка слияния машинной групповой политики
|
Необходимо очистить кеш gpupdate
|
E00027
|
Ошибка слияния пользовательской групповой политики
|
Необходимо очистить кеш gpupdate
|
E00028
|
Ошибка слияния машинной части групповой политики
|
Необходимо очистить кеш gpupdate
|
E00029
|
Ошибка слияния пользовательской части групповой политики
|
Необходимо очистить кеш gpupdate
|
E00030
|
Ошибка при запуске процесса с пониженным уровнем привилегий в контексте пользователя
|
Необходимо проверить наличие домашнего каталога пользователя, для которого выполняется
gpupdate
|
E00042
|
Не входит в возможные значения для control
|
Ошибка возникает в случае некорректного целочисленного типа данных, прописанного в шаблонах групповых политик (ADMX-файлах)
|
E00055
|
Ошибка при запуске
pkcon_runner синхронно для компьютера
|
Необходимо проверить наличие в системе и корректность файла
pkcon_runner
|
E00056
|
Ошибка запуска
apt-get update
|
Необходимо проверить подключение к сети и корректность репозиториев, отсутствие подключённых дополнительных репозиториев
|
E00057
|
Ошибка установки пакета
|
Необходимо проверить наличие пакета в репозиториях, правильность имени пакета, наличие подключения к сети и наличие в системе пакета packagekit
|
E00058
|
Ошибка удаления пакета
|
Вероятно, пакет не установлен в систему или в системе отсутствует пакет packagekit
|
E00059
|
Не входит в возможные значения для control
|
Ошибка возникает в случае некорректного строкового типа данных, прописанного в шаблонах групповых политик (ADMX-файлах)
|
E00060
|
Ошибка при запуске
pkcon_runner синхронно для пользователя
|
Необходимо проверить наличие в системе и корректность файла
pkcon_runner
|
E00061
|
Ошибка при запуске
pkcon_runner асинхронно для компьютера
|
Необходимо проверить наличие в системе и корректность файла
pkcon_runner
|
E00062
|
Ошибка при запуске
pkcon_runner асинхронно для пользователя
|
Необходимо проверить наличие в системе и корректность файла
pkcon_runner
|
E00067
|
Ошибка создания переменных среды
|
Необходимо убедиться в наличии переменных окружения: XDG_DATA_DIRS, XDG_RUNTIME_DIR, DBUS_SESSION_BUS_ADDRESS, PATH
|
E00068
|
Ошибка выполнения команды
kwriteconfig5
|
Необходимо убедиться, что установлен пакет kf5-kconfig
|
# gpupdate-setup status
# systemctl status gpupdate-scripts-run.service
# ls -Rl /var/cache/gpupdate_scripts_cache/
$ systemctl --user status gpupdate-scripts-run-user.service
# gpoa --loglevel 0
foreignSecurityPrincipal
для всех добавленных пользователей и групп из доверенного домена. Таким образом Microsoft показывает, что пользователь или группа являются частью доверенного домена;
[global]
в файла smb.conf
на Linux-клиентах, подключенных через Winbind, добавить опцию:
winbind scan trusted domains = yesи перезапустить сервис winbind:
# systemctl restart winbind.service
samba-tool domain trust validate
) и не выполняется вход на пользователями из доверенного домена на машинах с winbind.
Примечание
samba-tool
.
Таблица 31.1. Команды управления доверием
Команда
|
Описание
|
Примечание
|
---|---|---|
domain trust create <домен>
|
Создать доверие домена или леса
|
Можно использовать следующие опции:
|
domain trust modify <домен>
|
Изменить доверие домена или леса
|
|
domain trust delete <домен>
|
Удалить доверие домена или леса
|
Можно использовать следующие опции:
|
domain trust list
|
Вывести список доверительных отношений домена
|
|
domain trust show <домен>
|
Показать сведения о доверенном домене
|
|
domain trust validate <домен>
|
Проверить доверие к домену
|
Можно использовать следующие опции:
|
Примечание
/etc/bind/options.conf
:
options { forwarders { 8.8.8.8; }; };
/etc/bind/options.conf
:
zone "trust.dom" in { type forward; forwarders { 10.64.224.10; }; };
Таблица 32.1. Исходные данные
|
Имя домена
|
Контроллер домена
|
IP-адрес
|
ОС контроллера домена
|
Версия Samba
|
---|---|---|---|---|---|
Домен Linux
|
TEST.ALT
|
dc1.test.alt
|
192.168.0.132
|
ALT Server 10.2
|
4.19.9
|
Домен Linux
|
EXAMPLE.ALT
|
s1.example.alt
|
192.168.0.172
|
ALT Server 10.2
|
4.19.9
|
Выделенный DNS-сервер
|
|
|
192.168.0.150
|
ALT Server 10.2
|
|
/etc/bind/options.conf
:
zone "example.alt" { type forward; forwarders { 192.168.0.172; }; };
zone "test.alt" { type forward; forwarders { 192.168.0.132; }; };
# systemctl restart bind.service
Примечание
/etc/bind/options.conf
в секцию options
добавить параметр:
dnssec-validation no;И перезапустить службу DNS:
# systemctl restart bind.service
/etc/samba/smb.conf
(в параметре dns forwarder
). Например:
dns forwarder = 192.168.0.150 8.8.8.8
# systemctl restart samba
/etc/bind/options.conf
:
options
добавить параметр:
dnssec-validation no;
/etc/bind/options.conf
(или /etc/bind/ddns.conf
) добавить информацию о зонах:
zone "example.alt" { type forward; forwarders { 192.168.0.172; }; }; zone "test.alt" { type forward; forwarders { 192.168.0.132; }; };
# systemctl restart bind.service
#host -t srv _kerberos._tcp.example.alt
_kerberos._tcp.example.alt has SRV record 0 100 88 s1.example.alt. #host -t srv _kerberos._tcp.test.alt
_kerberos._tcp.test.alt has SRV record 0 100 88 dc1.test.alt.
#host -t srv _kerberos._tcp.example.alt
_kerberos._tcp.example.alt has SRV record 0 100 88 s1.example.alt. #host -t srv _kerberos._tcp.test.alt
_kerberos._tcp.test.alt has SRV record 0 100 88 dc1.test.alt.
#kinit administrator@EXAMPLE.ALT
Password for administrator@EXAMPLE.ALT: #klist
Ticket cache: KEYRING:persistent:0:krb_ccache_eFyZ8Tr Default principal: administrator@EXAMPLE.ALT Valid starting Expires Service principal 27.03.2024 14:14:36 28.03.2024 00:14:36 krbtgt/TEST.ALT@TEST.ALT renew until 28.03.2024 14:14:32
#kinit administrator@TEST.ALT
Password for administrator@TEST.ALT: #klist
Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@TEST.ALT Valid starting Expires Service principal 27.03.2024 15:17:50 28.03.2024 01:17:50 krbtgt/TEST.ALT@TEST.ALT renew until 28.03.2024 15:17:46
Важно
Таблица 32.2. Исходные данные
|
Имя домена
|
Контроллер домена
|
IP-адрес
|
ОС
|
Уровень работы домена
|
Версия Samba
|
---|---|---|---|---|---|---|
Домен Linux
|
TEST.ALT
|
dc1.test.alt
|
192.168.0.132
|
ALT Server 10.2
|
2012_R2
|
4.19.9
|
Домен Windows
|
WIN.ALT
|
DC1.win.alt
|
192.168.0.190
|
Windows Server 2012
|
2012R2
|
|
Выделенный DNS-сервер
|
|
|
192.168.0.150
|
ALT Server 10.2
|
|
|
C:\> dnscmd 127.0.0.1 /ZoneAdd test.alt /Forwarder 192.168.0.132
DNS Server 127.0.0.1 created zone test.alt:
Command completed successfully
Или выполнить следующую команду в сеансе PowerShell для настройки пересылки DNS:
PS C:\Windows\system32> Add-DnsServerConditionalForwarderZone -Name test.alt -MasterServers 192.168.0.132 -ReplicationScope Forest
/etc/bind/options.conf
(или /etc/bind/ddns.conf
) строки:
zone "win.alt" { type forward; forwarders { 192.168.0.190; }; };И перезапустить службу DNS:
# systemctl restart bind.service
Примечание
/etc/bind/options.conf
в секцию options
добавить параметр:
dnssec-validation no;И перезапустить службу DNS:
# systemctl restart bind.service
/etc/samba/smb.conf
(в параметре dns forwarder
), например:
dns forwarder = 192.168.0.150 8.8.8.8
# systemctl restart samba
/etc/bind/options.conf
:
options
добавить параметр:
dnssec-validation no;
zone "win.alt" { type forward; forwarders { 192.168.0.190; }; };
# systemctl restart bind.service
#dig +short -t SRV _kerberos._udp.test.alt
0 100 88 dc1.test.alt. #dig +short -t SRV _ldap._tcp.test.alt
0 100 389 dc1.test.alt.
#dig +short -t SRV _kerberos._tcp.dc._msdcs.win.alt
0 100 88 dc1.win.alt. #dig +short -t SRV _ldap._tcp.dc._msdcs.win.alt
0 100 389 dc1.win.alt.
#kinit administrator@WIN.ALT
Password for administrator@WIN.ALT: #klist
Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@WIN.ALT Valid starting Expires Service principal 27.04.2023 17:42:28 28.04.2023 03:42:28 krbtgt/WIN.ALT@WIN.ALT renew until 28.04.2023 17:42:25
C:\>nslookup.exe
>set type=SRV
>_kerberos._udp.test.alt
_kerberos._udp.test.alt SRV service location: priority = 0 weight = 100 port = 88 svr hostname = dc1.test.alt … test.alt primary name server = dc1.test.alt responsible mail addr = hostmaster.test.alt serial = 7 refresh = 900 (15 mins) retry = 600 (10 mins) expire = 86400 (1 days) default TTL = 3600 (1 hours) >_ldap._tcp.test.alt
_ldap._tcp.test.alt SRV service location: priority = 0 weight = 100 port = 389 svr hostname = dc1.test.alt …
# samba-tool domain trust create
<домен> --type=<тип доверия>
--direction=<направление> --create-location=<место создания> -U <пользователь>
Где:
<домен>
— имя удалённого домена, с которым создаётся доверие;
<тип доверия>
— определяет тип доверия:
external
— используется для внешнего доверия между доменами, не находящимися в одном лесу. Рекомендуется, если для Linux-клиентов используется SSSD;
forest
— используется для создания доверия между лесами доменов, включая все их дочерние домены. Рекомендуется, если для Linux-клиентов используется Winbind;
--direction=<направление>
— определяет направление доверия:
incoming
— доверие только со стороны удалённого домена к текущему;
outgoing
— доверие только от текущего домена к удалённому;
both
— двустороннее доверие;
--create-location=<место создания>
— указывает место создания доверительного отношения:
local
— объект доверенного домена будет создан только в локальном домене, доверительные отношения будут зарегистрированы и настроены только со стороны текущего домена, без внесения изменений в конфигурацию удаленного домена;
both
— объект доверенного домена будет создан в обоих доменах;
-U <пользователь>
— имя пользователя с правами администратора для удалённого домена.
# samba-tool domain trust create
EXAMPLE.ALT --type=forest \
--direction=both --create-location=both -U administrator@EXAMPLE.ALT
LocalDomain Netbios[TEST] DNS[test.alt] SID[S-1-5-21-1455776928-3410124986-2843404052]
RemoteDC Netbios[S1] DNS[s1.example.alt] ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,CLOSEST,WRITABLE,GOOD_TIMESERV,FULL_SECRET_DOMAIN_6]
Password for [administrator@EXAMPLE.ALT]:
RemoteDomain Netbios[EXAMPLE] DNS[example.alt] SID[S-1-5-21-3274802069-598906262-3677769431]
Creating remote TDO.
Remote TDO created.
Setting supported encryption types on remote TDO.
Creating local TDO.
Local TDO created
Setting supported encryption types on local TDO.
Setup local forest trust information...
Namespaces[2] TDO[example.alt]:
TLN: Status[Enabled] DNS[*.example.alt]
DOM: Status[Enabled] DNS[example.alt] Netbios[EXAMPLE] SID[S-1-5-21-3274802069-598906262-3677769431]
Setup remote forest trust information...
Namespaces[2] TDO[test.alt]:
TLN: Status[Enabled] DNS[*.test.alt]
DOM: Status[Enabled] DNS[test.alt] Netbios[TEST] SID[S-1-5-21-1455776928-3410124986-2843404052]
Validating outgoing trust...
OK: LocalValidation: DC[\\s1.example.alt] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
Validating incoming trust...
OK: RemoteValidation: DC[\\dc1.test.alt] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
Success
Важно
external
, а не forest
.
[root@dc1 ~]# samba-tool domain trust show EXAMPLE.ALT
LocalDomain Netbios[TEST] DNS[test.alt] SID[S-1-5-21-1455776928-3410124986-2843404052]
TrustedDomain:
NetbiosName: EXAMPLE
DnsName: example.alt
SID: S-1-5-21-3274802069-598906262-3677769431
Type: 0x2 (UPLEVEL)
Direction: 0x3 (BOTH)
Attributes: 0x8 (FOREST_TRANSITIVE)
PosixOffset: 0x00000000 (0)
kerb_EncTypes: 0x18 (AES128_CTS_HMAC_SHA1_96,AES256_CTS_HMAC_SHA1_96)
Namespaces[2] TDO[example.alt]:
TLN: Status[Enabled] DNS[*.example.alt]
DOM: Status[Enabled] DNS[example.alt] Netbios[EXAMPLE] SID[S-1-5-21-3274802069-598906262-3677769431]
[root@s1 ~]# samba-tool domain trust show TEST.ALT
LocalDomain Netbios[EXAMPLE] DNS[example.alt] SID[S-1-5-21-3274802069-598906262-3677769431]
TrustedDomain:
NetbiosName: TEST
DnsName: test.alt
SID: S-1-5-21-1455776928-3410124986-2843404052
Type: 0x2 (UPLEVEL)
Direction: 0x3 (BOTH)
Attributes: 0x8 (FOREST_TRANSITIVE)
PosixOffset: 0x00000000 (0)
kerb_EncTypes: 0x18 (AES128_CTS_HMAC_SHA1_96,AES256_CTS_HMAC_SHA1_96)
Namespaces[2] TDO[test.alt]:
TLN: Status[Enabled] DNS[*.test.alt]
DOM: Status[Enabled] DNS[test.alt] Netbios[TEST] SID[S-1-5-21-1455776928-3410124986-2843404052]
[root@dc1 ~]# samba-tool domain trust list
Type[Forest] Transitive[Yes] Direction[BOTH] Name[example.alt]
[root@dc1 ~]# samba-tool domain trust validate EXAMPLE.ALT -Uadministrator@EXAMPLE.ALT
LocalDomain Netbios[TEST] DNS[test.alt] SID[S-1-5-21-1455776928-3410124986-2843404052]
LocalTDO Netbios[EXAMPLE] DNS[example.alt] SID[S-1-5-21-3274802069-598906262-3677769431]
OK: LocalValidation: DC[\\s1.example.alt] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
OK: LocalRediscover: DC[\\s1.example.alt] CONNECTION[WERR_OK]
RemoteDC Netbios[S1] DNS[s1.example.alt] ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,CLOSEST,WRITABLE,GOOD_TIMESERV,FULL_SECRET_DOMAIN_6]
Password for [administrator@EXAMPLE.ALT]:
OK: RemoteValidation: DC[\\dc1.test.alt] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
OK: RemoteRediscover: DC[\\dc1.test.alt] CONNECTION[WERR_OK]
Примечание
# samba-tool domain trust create
win.alt --type=forest \
--direction=both --create-location=both -Uadministrator@WIN
При появлении запроса необходимо ввести пароль администратора.
Важно
external
, а не forest
.
LocalDomain Netbios[TEST] DNS[test.alt] SID[S-1-5-21-3848605173-1839566900-710408900] RemoteDC Netbios[DC1] DNS[DC1.win.alt] ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,CLOSEST,WRITABLE,GOOD_TIMESERV,FULL_SECRET_DOMAIN_6,ADS_WEB_SERVICE,DS_8,__unknown_00008000__] Password for [administrator@WIN]: RemoteDomain Netbios[WIN] DNS[win.alt] SID[S-1-5-21-212759798-1661061060-862600140] Creating local TDO. Local TDO created Setting supported encryption types on local TDO. Setup local forest trust information... Namespaces[2] TDO[win.alt]: TLN: Status[Enabled] DNS[*.win.alt] DOM: Status[Enabled] DNS[win.alt] Netbios[WIN] SID[S-1-5-21-212759798-1661061060-862600140] Validating outgoing trust... OK: LocalValidation: DC[\\DC1.win.alt] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED Validating incoming trust… OK: RemoteValidation: DC[\\dc1.test.alt] CONNECTION[WERR_OK] TRUST[WEER_OK] VERIFY_STATUS_RETURNED Success.
--create-location
нужно заменить опцию both
на local
. Samba DC прежде чем создать доверительные отношения сначала запросит Trust Key (Incoming Trust Password/Outgoing Trust Password), созданный ранее при настройке в Windows:
# samba-tool domain trust create
win.alt --type=forest \
--direction=both --create-location=local -Uadministrator@WIN
New Incoming Trust Password:
Retype Incoming Trust Password:
New Outgoing Trust Password:
Retype Outgoing Trust Password:
LocalDomain Netbios[TEST] DNS[test.alt] SID[S-1-5-21-3848605173-1839566900-710408900]
RemoteDC Netbios[DC1] DNS[DC1.win.alt] ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,…]
Password for [administrator@WIN]:
…
# samba-tool domain trust show WIN.ALT
LocalDomain Netbios[TEST] DNS[test.alt] SID[S-1-5-21-3848605173-1839566900-710408900]
TrustedDomain:
NetbiosName: WIN
DnsName: win.alt
SID: S-1-5-21-212759798-1661061060-862600140
Type: 0x2 (UPLEVEL)
Direction: 0x3 (BOTH)
Attributes: 0x8 (FOREST_TRANSITIVE)
PosixOffset: 0x00000000 (0)
kerb_EncTypes: 0x18 (AES128_CTS_HMAC_SHA1_96,AES256_CTS_HMAC_SHA1_96)
Namespaces[2] TDO[win.alt]:
TLN: Status[Enabled] DNS[*.win.alt]
DOM: Status[Enabled] DNS[win.alt] Netbios[WIN] SID[S-1-5-21-212759798-1661061060-862600140]
# samba-tool domain trust list
Type[Forest] Transitive[Yes] Direction[BOTH] Name[win.alt]
# samba-tool domain trust validate win.alt -Uadministrator@WIN
LocalDomain Netbios[TEST] DNS[test.alt] SID[S-1-5-21-3848605173-1839566900-710408900]
LocalTDO Netbios[WIN] DNS[win.alt] SID[S-1-5-21-212759798-1661061060-862600140]
OK: LocalValidation: DC[\\DC1.win.alt] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
OK: LocalRediscover: DC[\\DC1.win.alt] CONNECTION[WERR_OK]
RemoteDC Netbios[DC1] DNS[DC1.win.alt] ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,CLOSEST,WRITABLE,GOOD_TIMESERV,FULL_SECRET_DOMAIN_6,ADS_WEB_SERVICE,DS_8,__unknown_00008000__]
Password for [administrator@WIN]:
OK: RemoteValidation: DC[\\dc2.test.alt] CONNECTION[WERR_OK] TRUST[WERR_OK] VERIFY_STATUS_RETURNED
OK: RemoteRediscover: DC[\\dc2.test.alt] CONNECTION[WERR_OK]
Примечание
wbinfo
нельзя получить список пользователей и групп из доверяющего домена, можно получить список пользователей и групп только из своего домена. Пример получения списка пользователей:
#wbinfo -u --domain=EXAMPLE.ALT
#wbinfo -u --domain=TEST.ALT
TEST\administrator TEST\guest TEST\krbtgt TEST\dns-dc1 TEST\ivanov
#wbinfo -u --domain=EXAMPLE.ALT
EXAMPLE\administrator EXAMPLE\guest EXAMPLE\krbtgt EXAMPLE\dns-s1 EXAMPLE\kim #wbinfo -u --domain=TEST.ALT
samba-tool
. Пример получения списка пользователей из обоих доменов на контроллере домена dc1.test.alt:
#samba-tool user list -H ldap://s1 -Uadministrator@EXAMPLE.ALT
Password for [administrator@EXAMPLE.ALT]: dns-s1 krbtgt Administrator Guest kim #samba-tool user list -H ldap://dc1 -Uadministrator@TEST.ALT
Password for [administrator@TEST.ALT]: dns-dc1 krbtgt Guest Administrator ivanov
# wbinfo --all-domains
BUILTIN
TEST
EXAMPLE
# wbinfo --own-domain
TEST
# wbinfo --trusted-domains
BUILTIN
TEST
EXAMPLE
# wbinfo --online-status
BUILTIN : active connection
TEST : active connection
EXAMPLE : active connection
#wbinfo -n TEST\\ivanov
S-1-5-21-1455776928-3410124986-2843404052-1105 SID_USER (1) #wbinfo -n EXAMPLE\\kim
S-1-5-21-3274802069-598906262-3677769431-1104 SID_USER (1) #wbinfo -n TEST\\office
S-1-5-21-1455776928-3410124986-2843404052-1107 SID_DOM_GROUP (2) #wbinfo -n EXAMPLE\\office2
S-1-5-21-3274802069-598906262-3677769431-1107 SID_DOM_GROUP (2) #wbinfo -i TEST\\ivanov
TEST.ALT\ivanov:*:3000022:100::/home/TEST.ALT/ivanov:/bin/false #wbinfo -i EXAMPLE\\kim
EXAMPLE\kim:*:3000020:3000021::/home/EXAMPLE/kim:/bin/false
wbinfo
можно протестировать процесс аутентификации разных пользователей из обоих доменов.
wbinfo
попытается авторизовать пользователя. Первой проверкой будет аутентификация по паролю с открытым текстом. Этот тип аутентификации применяется, когда пользователь входит в систему локально (plaintext не означает, что пароль будет отправлен без шифрования, это просто название процесса входа в систему). Вторая проверка — аутентификация по паролю запрос/ответ. Этот тип аутентификации использует NTLM или Kerberos.
#wbinfo -a TEST\\ivanov
Enter TEST\ivanov's password: plaintext password authentication succeeded Enter TEST\ivanov's password: challenge/response password authentication succeeded #wbinfo -a EXAMPLE\\kim
Enter EXAMPLE\kim's password: plaintext password authentication succeeded Enter EXAMPLE\kim's password: challenge/response password authentication succeeded
#wbinfo --ping-dc
checking the NETLOGON for domain[TEST] dc connection to "dc1.test.alt" succeeded #wbinfo --ping-dc --domain=EXAMPLE.ALT
checking the NETLOGON for domain[EXAMPLE.ALT] dc connection to "s1.example.alt" succeeded
#wbinfo -n EXAMPLE\\kim
S-1-5-21-3274802069-598906262-3677769431-1104 SID_USER (1) #samba-tool group addmembers office S-1-5-21-3274802069-598906262-3677769431-1104
Added members to group office #wbinfo -n EXAMPLE\\office2
S-1-5-21-3274802069-598906262-3677769431-1107 SID_DOM_GROUP (2) #samba-tool group addmembers office S-1-5-21-3274802069-598906262-3677769431-1107
Added members to group office #samba-tool group listmembers office
S-1-5-21-3274802069-598906262-3677769431-1104 ivanov S-1-5-21-3274802069-598906262-3677769431-1107
Лес
), то рабочую станцию с ОС Альт следует вводить в домен через Winbind (см. Подключение к домену с использованием Winbind).
smb.conf
установить ID-маппинг для обоих доменов (backend = rid/tdb).
smb.conf
на машине введённой в домен example.alt:
[global] security = ads realm = EXAMPLE.ALT workgroup = EXAMPLE netbios name = WORK1 template shell = /bin/bash kerberos method = system keytab wins support = no winbind use default domain = yes winbind enum users = no winbind enum groups = no template homedir = /home/EXAMPLE.ALT/%U winbind refresh tickets = yes winbind offline logon = yes idmap config * : range = 3000-7999 idmap config * : backend = tdb idmap config EXAMPLE : backend = rid idmap config EXAMPLE : range = 10000-999999 idmap config TEST : backend = rid idmap config TEST : range = 1000000-9999999
smbd
и winbind
можно проверить, есть ли возможность просматривать пользователей из обоих доменов:
# net rpc trustdom list -Uadministrator
Password for [EXAMPLE\administrator]:
Trusted domains list:
TEST S-1-5-21-1455776928-3410124986-2843404052
Trusting domains list:
TEST S-1-5-21-1455776928-3410124986-2843404052
winbind
можно получить информацию о пользователях из обоих доменов и проверить доступность доменов:
#wbinfo -n TEST\\ivanov
S-1-5-21-1455776928-3410124986-2843404052-1105 SID_USER (1) #wbinfo -n EXAMPLE\\kim
S-1-5-21-3274802069-598906262-3677769431-1104 SID_USER (1)
getent
:
#getent group TEST\\office
TEST\office:*:1001106: #getent group EXAMPLE\\office2
office2:*:11107: #getent passwd TEST\\ivanov
TEST\ivanov:*:1001105:1000513::/home/EXAMPLE.ALT/ivanov:/bin/bash #getent passwd EXAMPLE\\kim
kim:*:11125:10001:Олег Ким:/home/EXAMPLE.ALT/kim:/bin/bash
Примечание
$ssh TEST\\ivanov@192.168.0.126
TEST\ivanov@192.168.0.126's password: [TEST\ivanov@work1 ~]$ exit выход Connection to 192.168.0.126 closed. $ssh EXAMPLE\\kim@192.168.0.126
EXAMPLE\kim@192.168.0.126's password: [kim@work1 ~]$ exit выход Connection to 192.168.0.126 closed.
/etc/sssd/sssd.conf
;
ldap_idmap_range_min
— нижняя (включительно) граница диапазона идентификаторов;
ldap_idmap_range_max
— верхняя (не включительно) граница диапазона идентификаторов;
ldap_idmap_range_size
— количество идентификаторов, доступных для каждого среза. Значение должно быть не меньше значения максимального RID пользователя, запланированного для использования на сервере AD.
/etc/sssd/sssd.conf
добавить доверенный домен:
[domain/EXAMPLE.ALT/TEST.ALT] use_fully_qualified_names = falseи перезапустить sssd:
# systemctl restart sssd
sssd
можно проверить, есть ли возможность просматривать пользователей из обоих доменов:
#getent passwd ivanov
ivanov:*:1855401105:1855400513:Иван Иванов:/home/TEST.ALT/ivanov:/bin/bash #getent passwd kim
sssctl
можно вывести все домены, с которыми готова взаимодействовать клиентская машина, а также их статусы:
#sssctl domain-list
EXAMPLE.ALT TEST.ALT #sssctl domain-status EXAMPLE.ALT
Online status: Online Active servers: AD Global Catalog: s1.example.alt AD Domain Controller: s1.example.alt Discovered AD Global Catalog servers: - s1.example.alt Discovered AD Domain Controller servers: - s1.example.alt
/etc/sssd/sssd.conf
в секцию основного домена можно вписать:
krb5_validate = false
# samba-tool domain trust delete EXAMPLE.ALT -U administrator@EXAMPLE.ALT
LocalDomain Netbios[TEST] DNS[test.alt] SID[S-1-5-21-1455776928-3410124986-2843404052]
RemoteDC Netbios[S1] DNS[s1.example.alt] ServerType[PDC,GC,LDAP,DS,KDC,TIMESERV,CLOSEST,WRITABLE,GOOD_TIMESERV,FULL_SECRET_DOMAIN_6]
Password for [administrator@EXAMPLE.ALT]:
RemoteDomain Netbios[EXAMPLE] DNS[example.alt] SID[S-1-5-21-3274802069-598906262-3677769431]
RemoteTDO deleted.
# samba-tool domain trust list
Содержание
user
и group
утилиты samba-tool
.
Примечание
-H
или --URL=
с указанием URI LDAP-сервера. Например:
# samba-tool user add domainuser Qwerty1 -H ldap://<DC> -Uadministrator
По умолчанию в качестве значения опции -H
передается текущий узел в формате ldap://<имя узла>.
Таблица 37.1. Команды samba-tool для управления пользователями домена
Команда
|
Описание
|
Примечание
|
---|---|---|
user add <имя пользователя> [<пароль>] [опции]
|
Создать нового пользователя
|
Переданное в команде значение <имя пользователя> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Оно должно быть уникальным.
Некоторые опции:
|
user create <имя пользователя> [<пароль>] [опции]
|
Создать нового пользователя
|
Команда доступна только в целях совместимости. Вместо этой команды рекомендуется использовать команду
samba-tool user add
|
user delete <имя пользователя> [опции]
|
Удалить существующего пользователя
|
При удалении учетной записи также удаляются все связанные с нею разрешения, права и членства в группах
|
user disable (<имя пользователя>| --filter <фильтр>) [опции]
|
Отключить пользовательский аккаунт
|
Параметры вызова:
|
user edit <имя пользователя> [опции]
|
Редактировать объект пользовательского аккаунта
|
В опции
--editor=<редактор> можно указать редактор (по умолчанию vi)
|
user enable (<имя пользователя>| --filter <фильтр>) [опции]
|
Включить пользовательский аккаунт
|
Параметры вызова:
|
user list [опции]
|
Вывести список пользователей
|
По умолчанию выводятся sAMAccountNames пользователей.
Можно использовать следующие опции:
|
user setprimarygroup <имя пользователя> <имя группы> [опции]
|
Установить основную группу для учётной записи пользователя
|
|
user getgroups <имя пользователя> [опции]
|
Вывести список групп, в которые входит учётная запись пользователя напрямую
|
Можно использовать следующие опции:
|
user show <имя пользователя> [опции]
|
Вывести атрибуты учетной записи
|
В опции
--attributes=USER_ATTRS можно указать разделённый запятыми список атрибутов, значения которых требуется отобразить. Для вывода скрытых атрибутов, их необходимо явно указать в параметре --attributes >
|
user move <имя пользователя> <контейнер> [опции]
|
Переместить учётную запись пользователя в указанную организационную единицу или контейнер
|
Имя пользователя указывается в команде в формате sAMAccountName.
Имя организационной единицы или контейнера можно указать как полное DN, так и без компонента domainDN
|
user password [опции]
|
Изменить пароль текущей учетной записи (пользователя, прошедшего аутентификацию)
|
Если пароль не передается в открытом виде в значении параметра
--newpassword , пользователь получит запрос на ввод пароля в командной строке
|
user rename <имя пользователя> [опции]
|
Переименовать пользователя и изменить его атрибуты
|
По умолчанию выводятся sAMAccountNames пользователей.
Для удаления атрибута следует использовать пустое значение атрибута.
Имя пользователя указывается в команде в формате sAMAccountName.
Некоторые опции:
|
user setexpiry (<имя пользователя>| --filter <фильтр>) [опции]
|
Установить срок действия для учётной записи пользователя
|
По истечении заданного периода учетная запись отключается; пользователь не может получать доступ к ресурсам домена. При этом сохраняются связанные с учетной записью разрешения, права и членства.
Параметры вызова:
|
user setpassword (<имя пользователя>| --filter <фильтр>) [опции]
|
Установить или сбросить пароль учетной записи пользователя
|
Если пароль не передается в открытом виде в значении параметра
--newpassword , пользователь получит запрос на ввод пароля в командной строке.
Параметры вызова:
|
user unlock (<имя пользователя>| --filter <фильтр>) [опции]
|
Разблокировать учётную запись пользователя в домене
|
Параметры вызова:
|
user getpassword (<имя пользователя>| --filter <фильтр>) [опции]
|
Получить атрибуты пароля учётной записи пользователя
|
Параметры вызова:
|
user syncpasswords [--cache-ldb-initialize] [опции]
|
Синхронизировать пароли всех учётных записей пользователей с помощью дополнительного сценария
|
Эта команда должна выполняться только на одном контроллере домена (обычно на PDC).
В первый раз команда должна выполняться с параметром, обеспечивающим инициализацию кеша:
--cache-ldb-initialize . Для корректной инициализации кеша требуется передать список атрибутов в параметре --attributes
|
Примечание
# samba-tool user add --help
# samba-tool user add
ivanov --given-name='Иван' \
--surname='Иванов' --mail-address='ivanov@test.alt' \
--userou='OU=KDE' --must-change-at-next-login
New Password:
Retype Password:
User 'ivanov' added successfully
# samba-tool user add
kim --given-name='Виталий' \
--surname='Ким' --mail-address='kim@test.alt' \
--must-change-at-next-login --random-password \
-H ldap://dc2.test.alt -U administrator
Password for [TEST\administrator]:
User 'kim' added successfully
# samba-tool user setexpiry
ivanov --noexpiry
Expiry for user 'ivanov' disabled.
# samba-tool user setexpiry
kim --days=20
Expiry for user 'kim' set to 20 days.
# samba-tool user list
Guest
ivanov
Administrator
krbtgt
kim
# samba-tool user disable
ivanov
# samba-tool user enable
--filter=mail=k*
Enabled user 'mail=k*'
# samba-tool user setpassword
ivanov
New Password:
Retype Password:
Changed password OK
# samba-tool user move
kim 'OU=KDE'
Moved user "kim" into "OU=KDE,DC=test,DC=alt"
# samba-tool user getpassword
ivanov \
--attributes=pwdLastSet,virtualClearTextUTF8
dn: CN=Иван Иванов,OU=TEST,DC=test,DC=alt
pwdLastSet: 133628348830281440
Got password OK
# samba-tool user delete
ivanov
Deleted user ivanov
Предупреждение
pdbedit -x -m имя
Примечание
Таблица 37.2. Команды samba-tool для управления группами
Команда
|
Описание
|
Примечание
|
---|---|---|
group add <имя группы> [опции]
|
Создать новую группу
|
Переданное в команде значение <имя группы> интерпретируется как имя учетной записи SAM (значение атрибута sAMaccountName). Оно должно быть уникальным.
Некоторые опции:
|
group create <имя группы> [опции]
|
Создать новую группу
|
Доступна только в целях совместимости. Рекомендуется вместо этой команды использовать команду
samba-tool group add
|
group addmembers <имя группы> (<список участников>|--member-dn=<member-dn>) [опции]
|
Добавить участников в группу
|
Команда позволяет добавить в группу одного или нескольких участников (указанных через запятую). В качестве участника группы может выступать учетная запись пользователя, учетная запись компьютера или другая группа, существующая в домене.
Некоторые опции:
|
group delete <имя группы> [опции]
|
Удалить группу
|
Операция удаления является необратимой.
При удалении группы также удаляются все связанные с нею разрешения и права, а также унаследованные от нее разрешения и права участников.
|
group edit <имя группы> [опции]
|
Редактировать объект группы
|
В опции
--editor=<редактор> можно указать редактор (по умолчанию vi)
|
group addunixattrs <имя группы> <gidnumber> [опции]
|
Добавить атрибуты Unix/RFC 2307 для группы
|
Для использования этих атрибутов для сопоставления UID/GID в конфигурации (
smb.conf ) должен быть задан параметр idmap_ldp:use rfc2307 = Yes
|
group list [опции]
|
Вывести список групп
|
По умолчанию выводится список имен учетных записей SAM (sAMAccountName).
Можно использовать следующие опции:
|
group listmembers <имя группы> [опции]
|
Вывести список участников данной группы
|
По умолчанию выводятся sAMAccountNames участников. Если sAMAccountName недоступен, будет использоваться CN.
Можно использовать следующие опции:
|
group move <имя группы> <контейнер> [опции]
|
Переместить группу в указанную организационную единицу или контейнер
|
Имя группы указывается в команде в формате sAMAccountName.
Имя организационной единицы или контейнера можно указать как полное DN или без компонента domainDN
|
group removemembers <имя группы> (<список участников>|--member-dn=<member-dn>) [опции]
|
Удалить участников из группы
|
Команда позволяет удалить из группы одного или нескольких участников (указанных через запятую).
При удалении из группы участник теряет все унаследованные от нее разрешения и права.
Некоторые опции:
|
group show <имя группы> [опции]
|
Вывести группу и её атрибуты
|
В опции
--attributes=USER_ATTRS можно указать список атрибутов (через запятую)
|
group stats [опции]
|
Показать статистику для общих групп и членства в группах
|
В результате выполнения команды выводятся следующие сведения:
|
group rename <имя группы> [опции]
|
Переименовать группу и изменить её атрибуты
|
Для удаления атрибута следует использовать пустое значение атрибута.
Имя группы указывается в команде в формате sAMAccountName.
Можно использовать следующие опции:
|
Примечание
# samba-tool group add --help
--group-type=Distribution
.
# samba-tool group add
office --description='Simple group'
Added group office
# samba-tool group add
manager --group-type=Distribution \
-H ldap://dc2.test.alt -U administrator
Added group manager
# samba-tool group add
mygroup --nis-domain=samdom --gid-number=12345
Added group mygroup
# samba-tool group delete office
Deleted group office
# samba-tool group addmembers "Domain Users" ivanov
# samba-tool group addmembers mygroup manager,kim,ivanov
# samba-tool group removemembers "Domain Users" ivanov
# samba-tool group move manager 'OU=OU'
Moved group "manager" into "OU=OU,DC=test,DC=alt"
# samba-tool group listmembers "Domain Users"
# samba-tool group show manager --attributes=member,objectGUID
dn: CN=test2,CN=Users,DC=test,DC=alt
objectGUID: 2f708ea2-f42c-4344-af22-bc243301c777
member: CN=Иван Иванов,OU=KDE,DC=test,DC=alt
# samba-tool group stats
Group membership statistics*
-------------------------------------------------
Total groups: 48
Total memberships: 32
Average members per group: 0.67
Max members: 8 (Denied RODC Password Replication Group)
Median members per group: 0.0
Members Number of Groups
-------------------------------------------------
0-1 42
2-4 5
5-9 1
* Note this does not include nested group membership
Примечание
--special
:
# samba-tool group add 'Protected Users' --special
work.test.alt. IN A 192.168.0.55Эта запись будет храниться в DNS-зоне прямого просмотра домена и использоваться для разрешения имени work.test.alt в IP-адрес 192.168.0.55.
$ samba-tool dns add dc1.test.alt 0.168.192.in-addr.arpa 55 PTR work.test.alt -U administrator
Password for [TEST\administrator]:
Record added successfully
При этом будет создана DNS-запись:
55.0.168.192.in-addr.arpa. 3600 IN PTR work.test.alt.Проверить наличие записи можно, выполнив команду:
$ host -t PTR 192.168.0.55 dc1.test.alt
Using domain server:
Name: dc1.test.alt
Address: 192.168.0.132#53
Aliases:
55.0.168.192.in-addr.arpa domain name pointer work.test.alt.
Примечание
$ samba-tool dns zonecreate dc1.test.alt 0.168.192.in-addr.arpa -U administrator
Password for [TEST\administrator]:
Zone 0.168.192.in-addr.arpa created successfully
samba-tool
.
Примечание
-H
или --URL=
с указанием URI LDAP-сервера. Например:
$ samba-tool dns add 192.168.0.132 test.alt DC2 A 192.168.0.133 -H ldap://<DC> -Uadministrator
По умолчанию в качестве значения опции -H
передается текущий узел в формате ldap://<имя узла>.
Таблица 38.1. Команды управления DNS-записями samba-tool
Команда
|
Описание
|
Примечание
|
---|---|---|
dns add <сервер> <зона> <имя> <A|AAAA|PTR|CNAME|NS|MX|SRV|TXT> <данные>
|
Добавить новую запись
|
Параметры вызова:
|
dns delete <сервер> <зона> <имя> <A|AAAA|PTR|CNAME|NS|MX|SRV|TXT> <данные>
|
Удалить DNS-запись
|
|
dns edit <сервер> <зона> <имя> <A|AAAA|PTR|CNAME|NS|MX|SOA|SRV|TXT> <текущие данные> <новые данные>
|
Изменить DNS-запись
|
Дополнительно для изменения доступен тип записи SOA (Start of Authority), являющейся начальной записью зоны, со следующими данными (порядок пунктов в списке ниже соответствует порядку следования параметров в строке):
|
dns cleanup <сервер> <имя узла> [опции]
|
Очистить DNS-записи указанного DNS-узла
|
Во многих случаях данная подкоманда только устанавливает значение true в атрибуте dNSTombstoned DNS-записей. После этого при запросе таких записей информация о них возвращаться не будет, но в базе данных могут оставаться соответствующие им записи-заполнители
|
dns query <сервер> <зона> <имя> <A|AAAA|PTR|CNAME|NS|MX|SOA|SRV|TXT|ALL> [опции]
|
Вывести информацию о DNS-записях
|
Можно использовать следующие опции:
|
Примечание
$ samba-tool dns add --help
Примечание
samba-tool dns
указание аутентифицирующей информации (имени пользователя и пароля) обязательно!
$ samba-tool dns add
192.168.0.132 test.alt \
DC2 A 192.168.0.133 -Uadministrator
Password for [TEST\administrator]:
Record added successfully
$ samba-tool dns add
dc1.test.alt 0.168.192.in-addr.arpa \
55 PTR demo.test.alt -U administrator
Password for [TEST\administrator]:
Record added successfully
$ samba-tool dns delete
dc1.test.alt test.alt \
DC2 A 192.168.0.133 -U administrator
Password for [TEST\administrator]:
Record deleted successfully
$ samba-tool dns update
dc1.test.alt test.alt DC2 \
A 192.168.0.133 192.168.0.149 -U administrator
Password for [TEST\administrator]:
Record updated succefully
$ samba-tool dns update
dc1.test.alt test.alt @ SOA \
"dc1.test.alt admin.test.alt 63 900 600 86400 3600" \
"dc1.test.alt new.test.alt 64 900 600 86400 3600" \
-U administrator
Password for [TEST\administrator]:
Record updated succefully
$ samba-tool dns query
dc1.test.alt 0.168.192.in-addr.arpa \
@ ALL -U administrator
Таблица 38.2. Команды samba-tool для управления зонами DNS
Команда
|
Описание
|
Примечание
|
---|---|---|
dns zonecreate <сервер> <зона> [опции]
|
Создать зону DNS
|
Дополнительно с помощью параметра
--client-version можно указать версию DNS-клиента. Возможные значения: w2k, dotnet, longhorn (по умолчанию)
|
dns zonedelete <сервер> <зона> [опции]
|
Удалить зону DNS
|
|
dns zoneinfo <сервер> <зона> [опции]
|
Вывести информацию о зоне DNS
|
|
dns zonelist <сервер> [опции]
|
Вывести список зон DNS
|
Можно использовать следующие опции:
|
dns zoneoptions <сервер> <зона> [опции]
|
Изменить настройки очистки от устаревших записей для зоны DNS
|
Можно использовать следующие опции:
|
Примечание
$ samba-tool dns zoneoptions --help
Примечание
samba-tool dns
указание аутентифицирующей информации (имени пользователя и пароля) обязательно!
$ samba-tool dns zonecreate
192.168.0.132 \
0.168.192.in-addr.arpa -U administrator
$ samba-tool dns zoneinfo
dc1.test.alt \
0.168.192.in-addr.arpa -U administrator
$ samba-tool dns zoneoptions
dc1.test.alt \
test.alt --aging=1 --refreshinterval=306600
Примечание
smb.conf
хотя бы на одном контроллере домена должен быть задан параметр dns zone scavenging = yes
.
Таблица 38.3. Команды samba-tool для получения информации о DNS-серверах
Команда
|
Описание
|
Примечание
|
---|---|---|
dns serverinfo <сервер> [опции]
|
Вывести информацию о DNS-сервере
|
Дополнительно с помощью параметра
--client-version можно указать версию DNS-клиента. Возможные значения: w2k, dotnet, longhorn (по умолчанию)
|
dns roothints <сервер> [<имя>] [опции]
|
Вывести информацию о корневых серверах DNS
|
|
Примечание
$ samba-tool dns roothints --help
$ samba-tool dns serverinfo
dc1.test.alt -U administrator
$ samba-tool dns zoneinfo
dc1.test.alt \
0.168.192.in-addr.arpa -U administrator
Данная команда возвращает структуру DNS_RPC_SERVER_INFO, содержащую информацию о состоянии и конфигурации DNS-сервера, в формате, соответствующем версии DNS-клиента.
$ samba-tool dns roothints
dc1.test.alt -U administrator
nsupdate
используется для отправки запросов на обновление динамического DNS серверу имен в соответствии со стандартом RFC 2136. С ее помощью можно добавлять или удалять записи ресурсов из зоны без необходимости правки зонного файла вручную. Один запрос на обновление может содержать запросы на добавление или удаление нескольких записей ресурсов.
nsupdate
:
nsupdate [-dDi] [-L level] [-l][-g | -o | -y keyname:secret | -k keyfile] [-v] [-V] [-P] [-T] [-4 | -6] [filename]
Таблица 38.4. Опции команды nsupdate
Ключ
|
Описание
|
---|---|
-4
|
Использовать только IPv4
|
-6
|
Использовать только IPv6
|
-d
|
Включить режим отладки
|
-D
|
Включить дополнительный режим отладки
|
-i
|
Принудительно включить интерактивный режим, даже если стандартный ввод не является терминалом
|
-k keyfile
|
Позволяет указать файл, содержащий ключ аутентификации TSIG. Файлы могут быть в двух форматах: один файл, содержащий оператор ключа named.conf-format, который может быть автоматически сгенерирован ddns-confgen; или пара файлов, имена которых имеют формат K{name}.+157.+{random}.key и K{name}.+157.+{random}.private, которые могут быть сгенерированы dnssec-keygen. Параметр
-k также может использоваться для указания ключа SIG(0), используемого для аутентификации запросов на обновление Dynamic DNS. В этом случае указанный ключ не является ключом HMAC-MD5
|
-l
|
Установить режим локального хоста. Адрес сервера будет установлен на на localhost (отключая сервер, чтобы адрес сервера не мог быть переопределен). Подключения к локальному серверу используют ключ TSIG, найденный в
/var/run/named/session.key , который автоматически генерируется named, если какая-либо локальная первичная зона установила update-policy на local. Расположение этого файла ключа можно переопределить с помощью опции -k
|
-L level
|
Установить уровень отладки ведения журнала. Если 0, ведение журнала отключено
|
-p port
|
Установить порт для подключения к серверу имен. Значение по умолчанию — 53
|
-P
|
Вывести список частных типов записей ресурсов BIND, формат которых понимает nsupdate
|
-r udpretries
|
Установить количество повторных попыток UDP. Значение по умолчанию — 3. Если 0, выполняется только один запрос на обновление
|
-t timeout
|
Установить максимальное время, которое может занять запрос на обновление, прежде чем он будет прерван. Значение по умолчанию — 300 секунд. Если 0, тайм-аут отключен
|
-T
|
Вывести список стандартных типов записей ресурсов IANA, формат которых понимает nsupdate. nsupdate завершает работу после вывода списков. Параметр
-T можно комбинировать с параметром -P .
Другие типы можно ввести с помощью TYPEXXXXX, где XXXXX — это десятичное значение типа без начальных нулей. Rdata, если они присутствуют, анализируются с использованием формата UNKNOWN rdata (<обратная косая черта> <хеш> <пробел> <длина> <пробел> <шестнадцатеричная строка>)
|
-u udptimeout
|
Задать интервал повтора UDP. Значение по умолчанию — 3 секунды. Если равно 0, интервал вычисляется из интервала тайм-аута и количества повторов UDP
|
-v
|
Указывает, что TCP следует использовать даже для небольших запросов на обновление. По умолчанию nsupdate использует UDP для отправки запросов на обновление на сервер имен, если только они не слишком велики для того, чтобы поместиться в запрос UDP, в этом случае используется TCP. TCP может быть предпочтительнее, когда выполняется пакет запросов на обновление
|
-V
|
Вывести номер версии
|
-y [hmac:]keyname:secret
|
Задает буквальный ключ аутентификации TSIG. keyname — имя ключа, а secret — общий секрет в кодировке base64. hmac — имя алгоритма ключа; допустимые варианты: hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384 или hmac-sha512. Если hmac не указан, по умолчанию используется hmac-md5 или, если MD5 отключен, hmac-sha256.
Примечание
Использование опции -y не рекомендуется, поскольку общий секрет предоставляется как аргумент командной строки в виде открытого текста.
|
nsupdate
считывает входные данные из filename
или стандартного ввода. Каждая команда предоставляется ровно в одной строке ввода. Некоторые команды предназначены для административных целей; другие — это либо инструкции по обновлению, либо проверки предварительных условий содержимого зоны. Эти проверки устанавливают условия, что некоторое имя или набор записей ресурсов (RRset) либо существует, либо отсутствует в зоне. Эти условия должны быть выполнены, чтобы весь запрос на обновление был успешным. Обновления отклоняются, если тесты на предварительные условия не пройдены.
send
) приводит к отправке накопленных команд как одного запроса на обновление Dynamic DNS на сервер имен.
Таблица 38.5. Форматы команд и их значения
Команда
|
Описание
|
---|---|
server servername port
|
Отправить все динамические запросы на обновление на сервер имен servername. Если не указано ни одного оператора сервера, nsupdate отправляет обновления на основной сервер правильной зоны. Поле MNAME записи SOA этой зоны определяет основной сервер для этой зоны. port — это номер порта на servername, куда отправляются динамические запросы на обновление. Если номер порта не указан, используется номер порта DNS по умолчанию 53.
Примечание
Эта команда не действует, если используется GSS-TSIG
|
local address port
|
Отправить все динамические запросы на обновление, используя локальный адрес. Если локальный оператор не указан,
nsupdate отправляет обновления, используя адрес и порт, выбранные системой. port также может использоваться для принудительного поступления запросов с определенного порта. Если номер порта не указан, система назначает его
|
zone zonename
|
Указывает, что все обновления должны быть сделаны в зоне zonename. Если оператор zone не указан,
nsupdate пытается определить правильную зону для обновления на основе остальной части ввода
|
class classname
|
Указывает класс по умолчанию. Если класс не указан, класс по умолчанию — IN
|
ttl seconds
|
Указывает время жизни по умолчанию в секундах для добавляемых записей. Значение none очищает TTL по умолчанию
|
key hmac:keyname secret
|
Указывает, что все обновления должны быть подписаны TSIG с использованием пары keyname-secret. Если указан hmac, он устанавливает используемый алгоритм подписи. Значение по умолчанию — hmac-md5; если MD5 отключен, то по умолчанию используется hmac-sha256. Команда key переопределяет любой ключ, указанный в командной строке с помощью
-y или -k
|
gsstsig
|
Эта команда использует GSS-TSIG для подписи обновлений. Это эквивалентно указанию
-g в командной строке
|
oldgsstsig
|
Эта команда использует версию GSS-TSIG для Windows 2000 для подписи обновлений. Это эквивалентно указанию
-o в командной строке
|
realm [realm_name]
|
При использовании GSS-TSIG эта команда указывает использование realm_name вместо realm по умолчанию в krb5.conf. Если realm не указан, сохраненная realm очищается
|
check-names [yes_or_no]
|
Включить или выключить обработку check-names для добавляемых записей. Check-names не влияет на предварительные условия или удаляемые записи. По умолчанию обработка check-names включена. Если обработка check-names завершается неудачей, запись не добавляется в сообщение UPDATE
|
prereq nxdomain domain-name
|
Эта команда требует, чтобы не существовало ни одной записи ресурса любого типа с именем domain-name
|
prereq yxdomain domain-name
|
Эта команда требует, чтобы существовал domain-name (как минимум одна запись ресурса любого типа)
|
prereq nxrrset domain-name class type
|
Эта команда требует, чтобы не существовало ни одной записи ресурса указанного типа, класса и domain-name. Если class не указан, предполагается IN (Интернет)
|
prereq yxrrset domain-name class type
|
Для этой команды требуется, чтобы существовала запись ресурса указанного типа, класса и доменного имени. Если class не указан, предполагается IN (Интернет)
|
prereq yxrrset domain-name class type data
|
С помощью этой команды данные из каждого набора предварительных условий этой формы, имеющих общий тип, класс и доменное имя, объединяются для формирования набора RR. Этот набор RR должен точно соответствовать набору RR, существующих в зоне с указанным типом, классом и доменным именем. Данные записываются в стандартном текстовом представлении RDATA записи ресурса
|
update delete domain-name ttl class type data
|
Удалить все записи ресурсов с именем domain-name. Если указаны type и data, удаляются только соответствующие записи ресурсов. Если class не указан, предполагается класс Internet. TTL игнорируется и допускается только для совместимости
|
update add domain-name ttl class type data
|
Добавить новую запись ресурса с указанным ttl, class и data
|
show
|
Отобразить текущее сообщение, содержащее все предварительные условия и обновления, указанные с момента последней отправки
|
send
|
Отправить текущее сообщение (эквивалентно вводу пустой строки)
|
answer
|
Отобразить ответ
|
debug
|
Включить отладку
|
version
|
Вывести номер версии
|
help
|
Вывести список команд
|
Примечание
nsupdate
для динамического обновления DNS-записей в доменных средах AD, необходимо использовать механизм аутентификации GSS-TSIG, который использует Kerberos-билет для аутентификации машины в домене. Kerberos-билет используется при обновлении DNS-записей с помощью nsupdate
с флагом -g
.
nsupdate -g
необходимо получить Kerberos-билет для машинного аккаунта с помощью команды:
# kinit -k 'MACHINENAME$'
Примечание
hostname -s
. В команде kinit
имя машинного аккаунта нужно указывать в верхнем регистре со знаком $, например:
#hostname -s
comp01 #kinit -k 'COMP01$'
nsupdate
для добавления и удаления записей ресурсов из зоны test.alt.
# nsupdate -g
> update delete oldhost.test.alt A
> update add newhost.test.alt 86400 A 192.168.0.195
> send
Новая запись будет имеет TTL 1 день (86400 секунд).
# nsupdate -g
> prereq nxdomain nickname.test.alt
> update add nickname.test.alt 86400 CNAME somehost.test.alt
> send
Предварительное условие позволяет серверу имен проверить, нет ли записей о ресурсах любого типа для nickname.test.alt. Если в зоне есть записи ресурсов, запрос на обновление не выполняется. Если этого имени не существует, добавляется CNAME.
Примечание
smb.conf
, а не через оснастку MMC;
Примечание
/etc/sssd/sssd.conf
;
/etc/sssd/sssd.conf
) в секцию с параметрами домена можно добавить опции, приведенные в табл. Параметры настройки автоматического обновления DNS. Например:
[domain/TEST.ALT] ..... #Включить обновление прямых записей (A/AAAA записей) dyndns_update = true #Включить обновление обратных записей (PTR записей) dyndns_update_ptr = true #Задать интервал обновления в секундах. #По умолчанию — 86400 (24 часа), обновление выполняется раз в сутки. #Если интервал равен 0, то обновление выполняется только один раз при запуске службы SSSD. #Если интервал менее 60 секунд, то обновление выполняется раз в 60 секунд. #Если адрес после предыдущего обновления не изменялся — обновление не выполняется. dyndns_refresh_interval = 60
Примечание
# systemctl restart sssd
Таблица 38.6. Параметры настройки автоматического обновления DNS
Параметр
|
Описание
|
Значение по умолчанию
|
---|---|---|
dyndns_update
|
Позволяет включить или отключить автоматическое обновление DNS-записей (защищенных с помощью GSS-TSIG) IP-адресом клиента через SSSD. Соответственно, администратору AD требуется только разрешить защищённые обновления для зоны DNS. Для обновления будет использован IP-адрес LDAP-соединения AD, если с помощью параметра «dyndns_iface» не указано иное
|
true
|
dyndns_ttl
|
Значение TTL, которое применяется при обновлении DNS-записи клиента. Если
dyndns_update имеет значение false , этот параметр не имеет никакого эффекта. Если администратором установлено значение TTL на стороне сервера, оно будет переопределено этим параметром
|
3600 (секунд)
|
dyndns_iface
|
Позволяет указать интерфейс или список интерфейсов, IP-адреса которых должны использоваться для динамических обновлений DNS. Специальное значение «*» подразумевает, что следует использовать IP-адреса всех интерфейсов. Если
dyndns_update имеет значение false , этот параметр не имеет никакого эффекта
|
IP-адреса интерфейса, который используется для подключения LDAP AD
|
dyndns_refresh_interval
|
Определяет как часто внутреннему серверу следует выполнять периодическое обновление DNS в дополнение к автоматическому обновлению, выполняемому при переходе внутреннего сервера в сетевой режим. Этот параметр применим только в том случае, если для параметра
dyndns_update установлено значение true .
Следует обратить внимание, что наименьшее допустимое значение составляет 60 секунд: если будет указано меньшее значение, параметр примет наименьшее допустимое значение (60 секунд)
|
86400 (24 часа)
|
dyndns_update_ptr
|
Определяет будет ли обновляться клиентская PTR-запись (защищенная с помощью GSS-TSIG) при обновлении DNS-записей клиента. Применимо, только если параметр
dyndns_update имеет значение true .
Следует обратить внимание, что параметр
dyndns_update_per_family не применяется для обновлений записей PTR. Эти обновления всегда отправляются отдельно
|
true
|
dyndns_force_tcp
|
Должна ли утилита
nsupdate по умолчанию использовать TCP для обмена данными с сервером DNS
|
false (разрешить
nsupdate выбрать протокол)
|
dyndns_auth
|
Следует ли утилите
nsupdate использовать проверку подлинности GSS-TSIG для защищённых обновлений сервера DNS. Незащищённые отправления можно отправлять, установив этот параметр в значение none
|
GSS-TSIG
|
dyndns_auth_ptr
|
Следует ли утилите
nsupdate использовать проверку подлинности GSS-TSIG для защищённых обновлений PTR сервера DNS. Незащищённые отправления можно отправлять, установив этот параметр в значение none
|
То же, что и
dyndns_auth
|
dyndns_server
|
Сервер DNS, который следует использовать для выполнения обновления DNS. В большинстве конфигураций рекомендуется не устанавливать значение для этого параметра.
Установка этого параметра имеет смысл для сред, в которых сервер DNS отличается от сервера данных идентификации.
Следует обратить внимание, что этот параметр используется только для резервной попытки, которая выполняется если предыдущая попытка с использованием автоматически определённых параметров завершилась неудачей
|
none (разрешить
nsupdate выбрать сервер)
|
dyndns_update_per_family
|
По умолчанию обновление DNS выполняется за два шага: обновление IPv4, а затем обновление IPv6. В некоторых случаях может быть желательно выполнить обновление IPv4 и IPv6 за один шаг
|
true
|
# control | grep sssd-dyndns
sssd-dyndns-refresh-interval unknown (disabled INTERVAL)
sssd-dyndns-ttl unknown (disabled TTL)
sssd-dyndns-update unknown (disabled enabled default)
sssd-dyndns-update-ptr unknown (disabled enabled default)
Таблица 38.7. control для настройки автоматического обновления DNS для SSSD
control
|
Опция в файле
/etc/sssd/sssd.conf
|
Описание
|
---|---|---|
sssd-dyndns-refresh-interval
|
dyndns_refresh_interval
|
Определяет как часто серверная часть должна выполнять периодическое обновление DNS в дополнение к автоматическому обновлению, выполняемому при подключении серверной части к сети. Этот параметр применим только в том случае, если для параметра
dyndns_update установлено значение true .
Доступные режимы:
|
sssd-dyndns-ttl
|
dyndns_ttl
|
Срок жизни, применяемый к DNS-записи клиента при ее обновлении. Если
dyndns_update имеет значение false , этот параметр не имеет никакого эффекта.
Доступные режимы:
|
sssd-dyndns-update
|
dyndns_update
|
Позволяет включить или отключить автоматическое обновление DNS-записей (защищенных с помощью GSS-TSIG) с IP-адресом клиента через SSSD.
Доступные режимы:
|
sssd-dyndns-update-ptr
|
dyndns_update_ptr
|
Определяет будет ли обновляться клиентская PTR-запись (защищенная с помощью GSS-TSIG) при обновлении DNS-записей клиента. Применимо, только если параметр
dyndns_update имеет значение true .
Доступные режимы:
|
control sssd-dyndns-update
:
# control sssd-dyndns-update enabled
и перезапустить службу SSSD:
# systemctl restart sssd
Проверка:
# control sssd-dyndns-update
enabled
dyndns_update
и dyndns_update_ptr
. Подробнее см. Групповые политики control (раздел SSSD опции).
winbind-dnsupdate
.
# apt-get install samba-winbind-dnsupdate
И активировать и запустить таймер, который в свою очередь запускает сервис:
# systemctl enable --now winbind-dnsupdate.timer
winbind-dnsupdate
является обновление IPv4 (A), IPv6 (AAAA) и соответствующих PTR DNS-записей. Для обновления DNS-записей winbind-dnsupdate
использует файл /etc/resolv.conf
.
winbind-dnsupdate
:
winbind-dnsupdate [опции]При запуске без параметров скрипт обновляет A запись.
Таблица 38.8. Опции команды winbind-dnsupdate
Ключ
|
Описание
|
---|---|
-h, --help
|
Вывести справку о команде
|
-v, --version
|
Вывести версию
|
-a, --all
|
Включить обновление всех записей (IPv4, IPv6, PTR)
|
-6, --update-ipv6
|
Включить обновление IPv6 (AAAA) записей
|
-d, --daemon
|
Отправлять логи в journald
|
-t, --ttl <time>
|
Задать TTL («время жизни», указывает, как долго настройки DNS должны храниться в кеше, прежде чем они будут автоматически обновлены)
|
--allow-ipv4-ptr-update
|
Включить обновление обратной DNS-записи IPv4 (A) PTR
|
--allow-ipv6-ptr-update
|
Включить обновление обратной DNS-записи IPv6 (AAAA) PTR
|
--enable-dconf
|
Включить чтение параметров из dconf
|
winbind-dnsupdate
:
# winbind-dnsupdate -a
[INFO]: Hostname: comp01.test.alt.
[INFO]: Check winbind status.
[INFO]: Winbind is running. Continue.
[INFO]: Trying to get the site name.
[INFO]: Site: Default-First-Site-Name.
[INFO]: Get host credentials.
[INFO]: Retrieving host credentials successfully.
[INFO]: Trying to get a list of domain controllers in site.
[INFO]: Success.
[INFO]: Trying to find an available DNS server.
[INFO]: Checking the availability of DNS server on dc1.test.alt..
[INFO]: DNS server on dc1.test.alt. available.
[INFO]: Update IPv4.
[INFO]: Trying to get IPv4 address of a domain controller.
[INFO]: Successful. DC info:
[INFO]: Domain controller name: dc1.test.alt.
[INFO]: Domain controller IPv4: 192.168.0.132.
[INFO]: Trying parse connection interface name.
[INFO]: Successful. Intraface name: enp0s3.
[INFO]: Checking the existence of A record.
[INFO]: IPv4 record exists.
[INFO]: Checking whether the IPv4 records needs to be updated.
[INFO]: Current IPv4 address: 192.168.0.195.
[INFO]: IPv4 address in DNS server: 192.168.0.195.
[INFO]: The IPv4 address of interface enp0s3 has not been changed.
[INFO]: The update IPv4 was skipped.
[INFO]: IPv4 update was successful.
[INFO]: The update was successful.
[INFO]: Destroy host credential.
# systemctl cat winbind-dnsupdate.timer
# /lib/systemd/system/winbind-dnsupdate.timer
[Unit]
Description=Update dns record Daily and on boot
[Timer]
OnBootSec=5min
OnUnitActiveSec=60min
[Install]
WantedBy=timers.target
# systemctl edit winbind-dnsupdate.timer
Anything between here and the comment below will become the new contents of the file
:
[Timer] OnUnitActiveSec= OnUnitActiveSec=120min
OnUnitActiveSec=
очистит предыдущее определение (60min), а OnUnitActiveSec=120min
установит новое значение (120min).
# systemctl daemon-reload
Примечание
# systemctl edit winbind-dnsupdate.timer
открывает текстовый редактор с конфигурацией winbind-dnsupdate.timer, куда можно внести изменения. Этот подход позволяет создавать или изменять так называемые «дополнения» (overrides) для systemd сервиса, не изменяя оригинальный файл сервиса, который находится в /usr/lib/systemd/system/
. Это важно, потому что оригинальные файлы могут быть перезаписаны при обновлении пакетов.
/etc/systemd/system/winbind-dnsupdate.timer.d/
, в котором, после сохранения изменений, появляется файл override.conf
. В этом файле можно задать новые параметры или изменить существующие параметры сервиса.
winbind-dnsupdate
можно управлять с помощью групповых политик (см. Опции Winbind DNSupdate).
ipconfig /registerdns
. Для DHCP-клиентов DHCP-сервер может выполнять эти обновления от имени клиента, что снижает необходимость ручного администрирования.
samba-tool
(см. Утилита samba-tool);
nsupdate
(см. Утилита nsupdate);
system-auth
, которая в свою очередь использует команду net ads join
. В рамках данной команды выполняется присоединение к домену с использованием Kerberos-аутентификации и не производится обновление DNS. После успешного присоединения машина регистрирует свою DNS-запись с помощью команды net ads dns register
также используя Kerberos-аутентификацию.
system-auth
использует билет администратора, и в результате владельцем записи становится он, а не машина, что впоследствии не позволяет машине обновить свою DNS-запись.
Примечание
DC=host1,DC=test.alt,CN=MicrosoftDNS,DC=DomainDnsZones,DC=test,DC=alt
Примечание
# samba_allow_nsupdate --domain-dns="test.alt" --computers-base-dn="CN=Computers,DC=test,DC=alt"
Domain: test.alt
Domain DN: DC=test,DC=alt
Computers search base DN: CN=Computers,DC=test,DC=alt
Action: allow
Selected computers list:
DC1$
WS2$
WS$
WS3$
Allow self nsupdate for this computers list? (Y/n):
DC1$ S-1-5-21-3099202228-3607437695-3279060739-1000 DONE
WS2$ S-1-5-21-3099202228-3607437695-3279060739-1113 DONE
WS$ S-1-5-21-3099202228-3607437695-3279060739-1107 DONE
WS3$ S-1-5-21-3099202228-3607437695-3279060739-1127 DONE
# samba_allow_nsupdate --action=allow WS$ WS2$ --computers-base-dn="DC=test,DC=alt" --domain-dns="test.alt"
Domain: test.alt
Domain DN: DC=test,DC=alt
Computers search base DN: DC=test,DC=alt
Action: allow
Selected computers list:
WS$
WS2$
Allow self nsupdate for this computers list? (Y/n):
WS$ S-1-5-21-3099202228-3607437695-3279060739-1107 DONE
WS2$ S-1-5-21-3099202228-3607437695-3279060739-1113 DONE
samba-tool dsacl
.
samba-tool
.
Примечание
-H
или --URL=
с указанием URI LDAP-сервера. Например:
# samba-tool sites list -H ldap://<DC> -Uadministrator
По умолчанию в качестве значения опции -H
передается текущий узел в формате ldap://<имя узла>.
Таблица 39.1. Команды управления сайтами samba-tool
Команда
|
Описание
|
Примечание
|
---|---|---|
sites create <сайт> [опции]
|
Добавить новый сайт
|
В качестве аргумента (
сайт ) ожидается общее имя (CN) сайта.
После создания сайта в него могут быть добавлены контроллеры домена, например, путём передачи имени сайта в параметре
--site=SITE при выполнении операции присоединения (см. Присоединение к домену в роли контроллера домена)
|
sites list [опции]
|
Вывести список сайтов
|
Подкоманда поддерживает два формата представления информации о сайтах:
|
sites remove <сайт> [опции]
|
Удалить сайт
|
В качестве аргумента (
сайт ) ожидается общее имя (CN) сайта
|
sites subnet <подкоманда>
|
Подкоманды управления подсетью
|
|
sites view <сайт> [опции]
|
Вывести информацию об отдельном сайте
|
В качестве аргумента (
сайт ) ожидается общее имя (CN) сайта.
Подкоманда выводит тот же набор атрибутов сайта, что и подкоманда
samba-tool sites list --json
|
Таблица 39.2. Команды управления подсетями samba-tool
Команда
|
Описание
|
Примечание
|
---|---|---|
sites subnet create <подсеть> <сайт> [опции]
|
Создать новую подсеть
|
Параметры вызова:
|
sites subnet list <сайт> [опции]
|
Вывести список подсетей сайта
|
В качестве аргумента (
сайт ) ожидается общее имя (CN) сайта.
Подкоманда поддерживает два формата представления информации о подсетях:
|
sites subnet remove <подсеть> [опции]
|
Удалить подсеть
|
В качестве аргумента (
подсеть ) ожидается общее имя (CN) существующей подсети
|
sites subnet set-site <подсеть> <сайт> [опции]
|
Закрепить подсеть за сайтом
|
Параметры вызова:
|
sites subnet view <подсеть> [опции]
|
Просмотр сведений о подсети
|
В качестве аргумента (
подсеть ) ожидается общее имя (CN) существующей подсети.
Подкоманда выводит тот же набор атрибутов подсети, что и подкоманда
samba-tool subnet list --json
|
Примечание
$ samba-tool sites subnet view --help
# samba-tool sites list
--json
{
"Default-First-Site-Name": {
"cn": "Default-First-Site-Name",
"distinguishedName": "CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt",
"dn": "CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt",
"instanceType": 4,
"name": "Default-First-Site-Name",
"objectCategory": "CN=Site,CN=Schema,CN=Configuration,DC=test,DC=alt",
"objectClass": [
"top",
"site"
],
"objectGUID": "4dbdb4a9-ebe9-4ff8-a047-40da60136056",
"showInAdvancedViewOnly": true,
"systemFlags": 1107296256
}
}
# samba-tool sites view Default-First-Site-Name
# samba-tool sites create newSite
Site newSite created !
# samba-tool sites subnet create 192.168.10.0/24 newSite
Subnet 192.168.10.0/24 created !
# samba-tool sites subnet list newSite --json
{
"192.168.10.0/24": {
"cn": "192.168.10.0/24",
"distinguishedName": "CN=192.168.10.0/24,CN=Subnets,CN=Sites,CN=Configuration,DC=test,DC=alt",
"dn": "CN=192.168.10.0/24,CN=Subnets,CN=Sites,CN=Configuration,DC=test,DC=alt",
"instanceType": 4,
"name": "192.168.10.0/24",
"objectCategory": "CN=Subnet,CN=Schema,CN=Configuration,DC=test,DC=alt",
"objectClass": [
"top",
"subnet"
],
"objectGUID": "5ebde1f9-5369-4673-a10a-b9c10310d137",
"showInAdvancedViewOnly": true,
"siteObject": "CN=newSite,CN=Sites,CN=Configuration,DC=test,DC=alt",
"systemFlags": 1073741824
}
}
# samba-tool sites subnet set-site 192.168.10.0/24 newSite
Subnet 192.168.10.0/24 shifted to site newSite
# samba-tool sites subnet remove 192.168.10.0/24
passwordsettings
утилиты samba-tool
.
# samba-tool domain passwordsettings show
# samba-tool domain passwordsettings show
Password information for domain 'DC=test,DC=alt'
Password complexity: on
Store plaintext passwords: off
Password history length: 24
Minimum password length: 7
Minimum password age (days): 1
Maximum password age (days): 42
Account lockout duration (mins): 30
Account lockout threshold (attempts): 0
Reset account lockout after (mins): 30
# samba-tool domain passwordsettings set <параметр>
Возможные параметры:
--complexity=on|off|default
— должен ли пароль отвечать требованиям сложности (по умолчанию on
);
--store-plaintext=on|off|default
— хранить пароли используя обратимое шифрование (по умолчанию off
);
--history-length=целое число|default
— число хранимых предыдущих паролей пользователей (требование неповторяемости паролей) (по умолчанию 24
);
--min-pwd-length=целое число|default
— минимальное количество символов в пароле (по умолчанию 7
);
--min-pwd-age=целое число|default
— минимальный срок действия пароля (по умолчанию 1
);
--max-pwd-age=целое число|default
— максимальный срок действия пароля (по умолчанию 43
);
--account-lockout-duration=целое число|default
— интервал времени (в минутах), в течение которого возможность аутентификации для пользователя, превысившего количество попыток входа, будет заблокирована (по умолчанию 30
);
--account-lockout-threshold=целое число|default
— допустимое количество неудачных попыток ввода пароля перед блокировкой учетной записи (по умолчанию 0
— никогда не блокировать);
--reset-account-lockout=целое число|default
— интервал времени (в минутах), по истечении которого записанное количество попыток начинается заново (по умолчанию 30
).
# samba-tool domain passwordsettings set
\
--min-pwd-length=7 --account-lockout-threshold=3
Minimum password length changed!
Account lockout threshold changed!
All changes applied successfully!
Примечание
badPwdCount
достиг своего порога и для пользователя существует параметр lockoutTime
значит учётная запись была заблокирована после нескольких неудачных попыток входа в систему:
# samba-tool user show ivanov
…
badPwdCount: 3
badPasswordTime: 133560395216186060
lockoutTime: 133560395216186060
…
Чтобы разблокировать пользователя, необходимо отредактировать объект учётной записи пользователя, установив для атрибута lockoutTime
значение 0:
#Разблокировать пользователя также можно в модуле удалённого управления базой данных конфигурации (ADMC) (подробнее см. Модуль удаленного управления базой данных конфигурации (ADMC)):samba-tool user edit ivanov
Modified User 'ivanov' successfully #samba-tool user show ivanov
… badPasswordTime: 133560395216186060 lockoutTime: 0 …
CN=<имя парольной политики>,CN=Password Settings Container,CN=System,DC=<domain>.
Примечание
#Если объектов PSO вообще нет, производительность не снижается.samba-tool domain passwordsettings pso create PwPolicyAdmins 1 --min-pwd-length=16
#samba-tool domain passwordsettings pso apply PwPolicyAdmins "domain admins"
#samba-tool domain passwordsettings pso create PwPolicyUsers 3 --min-pwd-length=8
#samba-tool domain passwordsettings pso apply PwPolicyUsers "domain admins"
#samba-tool domain passwordsettings pso create PwPolicyService 2 --min-pwd-length=24
#samba-tool domain passwordsettings pso apply PwPolicyService "domain admins"
pso
утилиты samba-tool
.
# samba-tool domain passwordsettings pso <подкоманда>
apply
— применить политику паролей PSO к пользователю или группе;
create
— создать новый объект настроек пароля (PSO);
delete
— удалить объект настроек пароля (PSO);
list
— вывести список всех объектов настроек пароля (PSO);
set
— изменить объект настроек пароля (PSO);
show
— показать детали объекта настроек пароля;
show-user
— отобразить настройки пароля, которые применяются к пользователю;
unapply
— обновить PSO, чтобы он больше не применялся к пользователю или группе.
# samba-tool domain passwordsettings pso create <pso-name> <precedence> [options]
precedence
, тем выше приоритет.
Примечание
# samba-tool domain passwordsettings pso apply <pso-name> <user-or-group-name> [options]
Подкоманда обеспечивает применение атрибутов парольной политики (PSO) с указанным именем (<pso-name>) к указанному пользователю или группе пользователей (<user-or-group-name>).
# samba-tool domain passwordsettings pso create PwPolicyUser 1 --min-pwd-length=10
Not all password policy options have been specified.
For unspecified options, the current domain password settings will be used as the default values.
PSO successfully created: CN=PwPolicyUser,CN=Password Settings Container,CN=System,DC=test,DC=alt
Password information for PSO 'PwPolicyUser'
Precedence (lowest is best): 1
Password complexity: on
Store plaintext passwords: off
Password history length: 24
Minimum password length: 10
Minimum password age (days): 1
Maximum password age (days): 42
Account lockout duration (mins): 30
Account lockout threshold (attempts): 0
Reset account lockout after (mins): 30
# samba-tool domain passwordsettings pso apply PwPolicyUser ivanov
The following PSO settings apply to user 'ivanov'.
Password information for PSO 'PwPolicyUser'
Precedence (lowest is best): 1
Password complexity: on
Store plaintext passwords: off
Password history length: 24
Minimum password length: 10
Minimum password age (days): 1
Maximum password age (days): 42
Account lockout duration (mins): 30
Account lockout threshold (attempts): 0
Reset account lockout after (mins): 30
Note: PSO applies directly to user (any group PSOs are overridden)
samba-tool pso show-user
:
# samba-tool domain passwordsettings pso show-user kim
No PSO applies to user 'kim'. The default domain settings apply.
Refer to 'samba-tool domain passwordsettings show'.
# samba-tool domain passwordsettings pso list [options]
Эта подкоманда выводит список всех парольных политик (PSO), доступных в домене, в виде таблицы со столбцами Precedence и PSO name.
Примечание
samba-tool domain backup
. При этом будет создан файл резервной копии .tar.bz2
, который будет содержать полную резервную копию домена (на основе данного контроллера домена). Этот файл резервной копии можно использовать для восстановления домена с помощью команды samba-tool domain backup restore
.
Примечание
# samba-tool domain backup online
--targetdir=<output-dir> \
--server=<DC-server> -UAdministrator
--configfile
, чтобы в резервную копию были включены правильные настройки smb.conf
(т.к. локальный файл smb.conf
может не существовать или его настройки могут отличаться от настроек контроллера домена).
Примечание
samba-tool dbcheck
и исправить все ошибки, о которых она сообщает.
Примечание
#mkdir /var/samba-backup-online
#samba-tool domain backup online --targetdir=/var/samba-backup-online --server=dc1 -UAdministrator
Password for [TEST\Administrator]: workgroup is TEST realm is test.alt Looking up IPv4 addresses Looking up IPv6 addresses Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema A Kerberos configuration suitable for Samba AD has been generated at /var/samba-backup-online/tmpxqc6dwts/private/krb5.conf Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink! … Creating backup file /var/samba-backup-online/samba-backup-test.alt-2024-06-04T16-15-49.475857.tar.bz2...
Примечание
# samba-tool domain backup offline --targetdir=<output-dir>
Примечание
#mkdir /var/samba-backup-offline
#samba-tool domain backup offline --targetdir=/var/samba-backup-offline
running backup on dirs: /var/lib/samba/private /var/lib/samba /etc/samba Starting transaction on /var/lib/samba/private/secrets Starting transaction on /var/lib/samba/private/sam.ldb backing up /var/lib/samba/private/sam.ldb … adding misc file etc/lmhosts adding misc file etc/smb.conf Backup succeeded.
samba
) на всех контроллерах домена. Этот шаг можно пропустить если используется переименованная резервная копия.
samba-tool domain backup restore
, с требуемыми параметрами для восстановления базы данных домена на одном новом контроллере домена.
samba
на новом контроллере домена.
samba-tool domain join <dns-realm> DC --server=<restored-dc>
Примечание
samba-tool domain backup restore
выполняется только один раз, при этом домен воссоздается на одном контроллере домена. Затем все старые контроллеры домена должны быть повторно присоединены к восстановленному контроллеру домена.
# samba-tool domain backup restore
--backup-file=<tar-file> \
--newservername=<DC-name> --targetdir=<new-samba-dir>
где
/var/lib/samba
). Вместо этого рекомендуется восстановить базу данных домена в другой целевой каталог, а затем, при запуске samba, использовать параметр -s
(или --configfile
), например:
# samba -s <targetdir>/etc/smb.conf
Указание восстановленного smb.conf
гарантирует, что Samba будет использовать правильные файлы базы данных.
--site
.
smb.conf
.
#mkdir /var/lib/samba/new
#samba-tool domain backup restore
--backup-file=/home/user/samba-backup-test.alt-2024-06-04T16-15-49.475857.tar.bz2 --newservername=newdc --targetdir=/var/lib/samba/new Adding new DC to site 'Default-First-Site-Name' Updating basic smb.conf settings... … Backup file successfully restored to /var/lib/samba/new Please check the smb.conf settings are correct before starting samba.
Примечание
--keep-dns-realm
, пользователи могут использовать для входа в домен свои полные UPN-имена. В противном случае они могут использовать имена в формате user@new-realm (при условии, что конфигурация Kerberos корректно обрабатывает новую область);
Примечание
samba-tool domain backup rename
делает клон работающей базы данных DC, в процессе клонирования переименовывает домен и создаёт файл резервной копии;
samba-tool domain backup restore
из файла резервной копии формирует файлы, необходимые для запуска нового контроллера домена Samba.
# samba-tool domain backup rename
<new-domain-netbios> \
<newdomain-dns-realm> --server=<dc-to-backup> \
--targetdir=<output-dir> --no-secrets -UAdministrator
где
Предупреждение
--no-secrets
исключает из резервной копии конфиденциальную информацию о паролях (например, такие атрибуты, как unicodePwd
, lmPwdHistory
и т. д.) для всех пользователей в домене. При этом, файл резервной копии по-прежнему содержит конфиденциальную информацию, такую как имена учётных записей пользователей.
/var/samba-backup-rename/samba-backup-newtest.alt-<timestamp>.tar.bz2
.
smb.conf
, максимально соответствующий производственному контроллеру домена, и передать его команде резервного копирования (с помощью параметра --configfile=smb.conf
). Это гарантирует, что резервная копия будет содержать smb.conf
, точно соответствующий домену.
#mkdir /var/samba-backup-rename
#samba-tool domain backup rename
NEWTEST newtest.alt --server=dc1 \ --targetdir=/var/samba-backup-rename --no-secrets -UAdministrator New realm for backed up domain: newtest.alt New base DN for backed up domain: DC=newtest,DC=alt New domain NetBIOS name: NEWTEST Password for [TEST\Administrator]: Provisioning the new (renamed) domain... …
/var/samba-backup-rename/samba-backup-newtest.alt-<timestamp>.tar.bz2
может использоваться для восстановления клонированной и переименованной базы данных на диске. В восстановленном домене будет только один новый контроллер домена с именем, указанными с помощью опции --newservername
. В последующем к нему могут быть присоединены другие контроллеры домена. Для указания нового каталога для размещения всех файлов службы каталогов (smb.conf, sam.ldb и т. п.) может использоваться опция --targetdir
.
# samba-tool domain backup restore
--backup-file=<tar-file> \
--newservername=<DC-name> --targetdir=<new-samba-dir>
где
#mkdir /var/lib/samba/newtest
#samba-tool domain backup restore
--targetdir=/var/lib/samba/newtest \ --newservername=NEWDC1 --backup-file=/home/user/samba-backup-newtest.alt.alt-2024-04-17T20-09-56.883910.tar.bz2
Примечание
/var/lib/samba/
). Однако можно указать подкаталог (например, /var/lib/samba/newtest/
).
Примечание
# samba-tool user setpassword
Administrator \
--newpassword=<пароль> -H /var/lib/samba/newtest/private/sam.ldb
smb.conf
(например, /var/lib/samba/newtest/etc/smb.conf
) и в файле /etc/krb5.conf
, и при необходимости вручную внести в них изменения.
smb.conf
(это гарантирует, что Samba загрузит правильные файлы базы данных для нового домена). Например:
# samba -s /var/lib/samba/newtest/etc/smb.conf
samba_dnsupdate
запускается автоматически и добавляет записи DNS для нового домена.
samba
можно проверить правильность работы нового контроллера домена, например, выполнив команду:
# ldbsearch -H ldap://NEWDC1 -UAdministrator
samba-tool domain demote
).
Примечание
# apt-get install task-samba-dc
# for service in smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba/*
#rm -rf /var/cache/samba
# samba-tool domain backup restore --backup-file=/home/user/samba-backup-test.alt-2024-04-17T20-09-56.883910.tar.bz2 --newservername=newdc --targetdir=/var/lib/samba
Adding new DC to site 'Default-First-Site-Name'
Updating basic smb.conf settings...
…
Backup file successfully restored to /var/lib/samba
Please check the smb.conf settings are correct before starting samba.
smb.conf
из каталога /var/lib/samba/etc/
в /etc/samba/
:
# cp /var/lib/samba/etc/smb.conf /etc/samba/
# systemctl enable --now samba
/etc/krb5.conf
файлом из каталога /var/lib/samba/private/
:
# cp /var/lib/samba/private/krb5.conf /etc/krb5.conf
#samba-tool domain info 127.0.0.1
Forest : test.alt Domain : test.alt Netbios domain : TEST DC name : newdc.test.alt DC netbios name : NEWDC Server site : Default-First-Site-Name Client site : Default-First-Site-Name #smbclient -L localhost -Uadministrator
Password for [TEST\administrator]: Sharename Type Comment --------- ---- ------- sysvol Disk netlogon Disk share Disk Commonplace Free Disk IPC$ IPC IPC Service (Samba 4.19.9) SMB1 disabled -- no workgroup available #host -t SRV _kerberos._udp.test.alt.
_kerberos._udp.test.alt has SRV record 0 100 88 newdc.test.alt.
--targetdir
). Это может помочь понять, почему произошел сбой. Необходимо удалить этот каталог перед повторным запуском команды восстановления.
# ldbsearch -H ldap://<server> -UAdministrator
--debug=3
;
--newservername
, не должно существовать в исходном домене. В противном случае будет получена ошибка:
Adding CN=NEWDC,OU=Domain Controllers,DC=test,DC=alt ERROR(ldb): uncaught exception - Entry CN=NEWDC,OU=Domain Controllers,DC=test,DC=alt already exists File "/usr/lib64/samba-dc/python3.9/samba/netcmd/__init__.py", line 186, in _run return self.run(*args, **kwargs) File "/usr/lib64/samba-dc/python3.9/samba/netcmd/domain_backup.py", line 562, in run ctx.join_add_objects(specified_sid=dom_sid(str(sid))) File "/usr/lib64/samba-dc/python3.9/samba/join.py", line 674, in join_add_objects ctx.samdb.add(rec, controls=controls)
smb.conf
контроллера домена. Однако smb.conf
в файле резервной копии может содержать конфигурацию «интерфейсов», которая не соответствует IP-адресам на контроллере домена, на котором разворачиваются данные из резервной копии. Избежать этой проблемы можно, указав аргумент --host-ip
во время восстановления (это имеет значение только на переименованных резервных копий).
samba-tool domain join DC
локальная копия базы данных полностью перезаписывается актуальной копией распределенной базы данных (происходит процесс «повторного ввода» контроллера в домен).
# samba-tool domain demote --remove-other-dead-server=dc2 -UAdministrator
где dc2 — имя (hostname) не функционирующего контроллера домена.
/etc/krb5.conf
указать опции default_realm = TEST.ALT
и dns_lookup_realm = false
;
# for service in samba smb nmb krb5kdc slapd bind; do systemctl disable $service; systemctl stop $service; done
#rm -f /etc/samba/smb.conf
#rm -rf /var/lib/samba
#rm -rf /var/cache/samba
#mkdir -p /var/lib/samba/sysvol
# samba-tool domain join test.alt DC --dns-backend=SAMBA_INTERNAL -Uadministrator --realm=test.alt
#systemctl enable --now samba
#samba_dnsupdate --use-samba-tool --verbose
Важно
samba-tool drs showrepl
в секции неисправного DC некоторое время будет присутствовать сообщение WERR_GEN_FAILURE:
… DC=DomainDnsZones,DC=test,DC=alt Default-First-Site-Name\DC2 via RPC DSA object GUID: b78f2c9d-5c62-4497-a5e1-4fc85aedf1cb Last attempt @ Wed Apr 24 07:51:24 2024 MSK failed, result 31 (WERR_GEN_FAILURE) 28 consecutive failure(s). Last success @ NTTIME(0) DC=ForestDnsZones,DC=test,DC=alt Default-First-Site-Name\DC2 via RPC DSA object GUID: b78f2c9d-5c62-4497-a5e1-4fc85aedf1cb Last attempt @ Wed Apr 24 07:51:24 2024 MSK failed, result 31 (WERR_GEN_FAILURE) 28 consecutive failure(s). Last success @ NTTIME(0) …Это нормально, и через некоторое время после полной репликации оно исчезнет. Репликация может занять до нескольких часов.
host
:
# host -t SRV _ldap._tcp.pdc._msdcs.<домен>
Например:
# host -t SRV _ldap._tcp.pdc._msdcs.test.alt
_ldap._tcp.pdc._msdcs.test.alt has SRV record 0 100 389 dc1.test.alt.
samba-tool
или в модуле удалённого управления базой данных конфигурации (ADMC) (подробнее см. Модуль удаленного управления базой данных конфигурации (ADMC)).
# samba-tool fsmo show
SchemaMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
# samba-tool fsmo transfer --role=<роль>
# samba-tool fsmo transfer --role=infrastructure
FSMO transfer of 'infrastructure' role successful
Проверка:
# samba-tool fsmo show
SchemaMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
InfrastructureMasterRole owner: CN=NTDS Settings,CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
RidAllocationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
PdcEmulationMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
DomainNamingMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
DomainDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
ForestDnsZonesMasterRole owner: CN=NTDS Settings,CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=test,DC=alt
# samba-tool fsmo seize --role=<роль>
Важно
Примечание
Примечание
samba-tool
была ошибка, не позволявшая захватить роль naming:
# samba-tool fsmo seize --role=naming
ERROR (ldb): uncaught exception — Failed FSMO transfer: WERR_BADFILE
В этом случае необходимо использовать «ещё более принудительную передачу»:
# samba-tool fsmo seize --force --role=naming
[global]
файла smb.conf
:
bind interfaces only = yes interfaces = lo enp0s3и перезапустить службу Samba:
# systemctl restart samba.service
interfaces
вместо имён интерфейсов можно указывать IP-адреса.
Примечание
<service class>/<host>:<port>/<service name>
Примечание
Важно
samba-tool spn add
:
# samba-tool spn add host/fdqn@KerberosRealm <sAMAccount name>
После добавления SPN можно сгенерировать keytab, выполнив команду:
# samba-tool domain exportkeytab <имя>.keytab --principal=[<sAMAccount name> | <SPN>]
В результате выполнения этой команды будет создан keytab-файл <имя>.keytab
, содержащий UPN или SPN, в зависимости от того, что было указано в параметре --principal
.
man samba-tool
).
Примечание
# samba-tool spn add HTTP/test.alt webauth
# samba-tool domain exportkeytab /tmp/web.keytab --principal=HTTP/test.alt
Export one principal to /tmp/keytab
# klist -ke /tmp/web.keytab
Keytab name: FILE:/tmp/web.keytab
KVNO Principal
---- ------------------------------------------------------------------------
2 HTTP/test.alt@TEST.ALT (DEPRECATED:arcfour-hmac)
# kinit administrator@TEST.ALT
Password for administrator@TEST.ALT:
И выполнить команду:
# kinit -5 -V -k -t /tmp/web.keytab HTTP/test.alt
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/test.alt@TEST.ALT
Using keytab: /tmp/web.keytab
Authenticated to Kerberos v5
Примечание
kinit: Client not found in Kerberos database while getting initial credentialsНеобходимо в ADMC (см. Модуль удаленного управления базой данных конфигурации (ADMC)) изменить для пользователя webauth значение параметра
userPrincipalName
на значение servicePrincipalName + REALM
(в данном примере нужно поменять webauth на HTTP/test.alt@TEST.ALT):
# samba-tool spn list <user> [options]
В качестве аргумента передается имя учетной записи SAM (значение атрибута sAMaccountName).
# samba-tool spn delete <name> <user> [options]
В качестве аргументов передаются значение SPN (name) и имя учетной записи SAM (значение атрибута sAMaccountName).
# samba-tool user create
dhcpduser \
--description="Пользователь для обновления TSIG-GSSAPI DNS через DHCP-сервер" \
--random-password
User 'dhcpduser' added successfully
Установить срок действия пароля (бессрочный) для созданного пользователя и добавить его в группу DnsAdmins:
#samba-tool user setexpiry dhcpduser --noexpiry
Expiry for user 'dhcpduser' disabled. #samba-tool group addmembers DnsAdmins dhcpduser
Added members to group DnsAdmins
#samba-tool domain exportkeytab --principal=dhcpduser@TEST.ALT /etc/dhcp/dhcpduser.keytab
Export one principal to /etc/dhcp/dhcpduser.keytab #chown dhcpd:dhcp /etc/dhcp/dhcpduser.keytab
#chmod 400 /etc/dhcp/dhcpduser.keytab
Примечание
/usr/local/bin/dhcp-dyndns.sh
):
#!/bin/bash # # This script is for secure DDNS updates on Samba, # it can also add the 'macAddress' to the Computers object. # # Version: 0.9.6 # ########################################################################## # # # You can optionally add the 'macAddress' to the Computers object. # # Add 'dhcpduser' to the 'Domain Admins' group if used # # Change the next line to 'yes' to make this happen # Add_macAddress='no' # # ########################################################################## keytab=/etc/dhcp/dhcpduser.keytab usage() { cat >>-EOF USAGE: $(basename "$0") add ip-address dhcid|mac-address hostname $(basename "$0") delete ip-address dhcid|mac-address EOF } _KERBEROS() { # get current time as a number test=$(date +%d'-'%m'-'%y' '%H':'%M':'%S) # Note: there have been problems with this # check that 'date' returns something like # Check for valid kerberos ticket #logger "${test} [dyndns] : Running check for valid kerberos ticket" klist -c "${KRB5CCNAME}" -s ret="$?" if [ $ret -ne 0 ] then logger "${test} [dyndns] : Getting new ticket, old one has expired" kinit -F -k -t $keytab "${SETPRINCIPAL}" ret="$?" if [ $ret -ne 0 ] then logger "${test} [dyndns] : dhcpd kinit for dynamic DNS failed" exit 1 fi fi } rev_zone_info() { local RevZone="$1" local IP="$2" local rzoneip rzoneip="${RevZone%.in-addr.arpa}" local rzonenum rzonenum=$(echo "$rzoneip" | tr '.' '\n') declare -a words for n in $rzonenum do words+=("$n") done local numwords="${#words[@]}" unset ZoneIP unset RZIP unset IP2add case "$numwords" in 1) # single ip rev zone '192' ZoneIP=$(echo "${IP}" | awk -F '.' '{print $1}') RZIP="${rzoneip}" IP2add=$(echo "${IP}" | awk -F '.' '{print $4"."$3"."$2}') ;; 2) # double ip rev zone '168.192' ZoneIP=$(echo "${IP}" | awk -F '.' '{print $1"."$2}') RZIP=$(echo "${rzoneip}" | awk -F '.' '{print $2"."$1}') IP2add=$(echo "${IP}" | awk -F '.' '{print $4"."$3}') ;; 3) # triple ip rev zone '0.168.192' ZoneIP=$(echo "${IP}" | awk -F '.' '{print $1"."$2"."$3}') RZIP=$(echo "${rzoneip}" | awk -F '.' '{print $3"."$2"."$1}') IP2add=$(echo "${IP}" | awk -F '.' '{print $4}') ;; *) # should never happen exit 1 ;; esac } BINDIR=$(samba -b | grep 'BINDIR' | grep -v 'SBINDIR' | awk '{print $NF}') [[ -z $BINDIR ]] && printf "Cannot find the 'samba' binary, is it installed ?\\nOr is your path set correctly ?\\n" WBINFO="$BINDIR/wbinfo" SAMBATOOL=$(command -v samba-tool) [[ -z $SAMBATOOL ]] && printf "Cannot find the 'samba-tool' binary, is it installed ?\\nOr is your path set correctly ?\\n" MINVER=$($SAMBATOOL -V | grep -o '[0-9]*' | tr '\n' ' ' | awk '{print $2}') if [ "$MINVER" -gt '14' ] then KTYPE="--use-kerberos=required" else KTYPE="-k yes" fi # DHCP Server hostname Server=$(hostname -s) # DNS domain domain=$(hostname -d) if [ -z "${domain}" ] then logger "Cannot obtain domain name, is DNS set up correctly?" logger "Cannot continue... Exiting." exit 1 fi # Samba realm REALM="${domain^^}" # krbcc ticket cache export KRB5CCNAME="/tmp/dhcp-dyndns.cc" # Kerberos principal SETPRINCIPAL="dhcpduser@${REALM}" # Kerberos keytab as above # krbcc ticket cache : /tmp/dhcp-dyndns.cc TESTUSER="$($WBINFO -u | grep 'dhcpduser')" if [ -z "${TESTUSER}" ] then logger "No AD dhcp user exists, need to create it first.. exiting." logger "you can do this by typing the following commands" logger "kinit Administrator@${REALM}" logger "$SAMBATOOL user create dhcpduser --random-password --description='Unprivileged user for DNS updates via DHCP server'" logger "$SAMBATOOL user setexpiry dhcpduser --noexpiry" logger "$SAMBATOOL group addmembers DnsAdmins dhcpduser" exit 1 fi # Check for Kerberos keytab if [ ! -f "$keytab" ] then logger "Required keytab $keytab not found, it needs to be created." logger "Use the following commands as root" logger "$SAMBATOOL domain exportkeytab --principal=${SETPRINCIPAL} $keytab" logger "chown XXXX:XXXX $keytab" logger "Replace 'XXXX:XXXX' with the user & group that dhcpd runs as on your distro" logger "chmod 400 $keytab" exit 1 fi # Variables supplied by dhcpd.conf action="$1" ip="$2" DHCID="$3" name="${4%%.*}" # Exit if no ip address if [ -z "${ip}" ] then usage exit 1 fi # Exit if no computer name supplied, unless the action is 'delete' if [ -z "${name}" ] then if [ "${action}" = "delete" ] then name=$(host -t PTR "${ip}" | awk '{print $NF}' | awk -F '.' '{print $1}') else usage exit 1 fi fi # exit if name contains a space case ${name} in *\ * ) logger "Invalid hostname '${name}' ...Exiting" exit ;; esac # if you want computers with a hostname that starts with 'dhcp' in AD # comment the following block of code. if [[ $name == dhcp* ]] then logger "not updating DNS record in AD, invalid name" exit 0 fi ## update ## case "${action}" in add) _KERBEROS count=0 # does host have an existing 'A' record ? mapfile -t A_REC < <($SAMBATOOL dns query "${Server}" "${domain}" "${name}" A "$KTYPE" 2>/dev/null | grep 'A:' | awk '{print $2}') if [ "${#A_REC[@]}" -eq 0 ] then # no A record to delete result1=0 $SAMBATOOL dns add "${Server}" "${domain}" "${name}" A "${ip}" "$KTYPE" result2="$?" elif [ "${#A_REC[@]}" -gt 1 ] then for i in "${A_REC[@]}" do $SAMBATOOL dns delete "${Server}" "${domain}" "${name}" A "${i}" "$KTYPE" done # all A records deleted result1=0 $SAMBATOOL dns add "${Server}" "${domain}" "${name}" A "${ip}" "$KTYPE" result2="$?" elif [ "${#A_REC[@]}" -eq 1 ] then # turn array into a variable VAR_A_REC="${A_REC[*]}" if [ "$VAR_A_REC" = "${ip}" ] then # Correct A record exists, do nothing logger "Correct 'A' record exists, not updating." result1=0 result2=0 count=$((count+1)) elif [ "$VAR_A_REC" != "${ip}" ] then # Wrong A record exists logger "'A' record changed, updating record." $SAMBATOOL dns delete "${Server}" "${domain}" "${name}" A "${VAR_A_REC}" "$KTYPE" result1="$?" $SAMBATOOL dns add "${Server}" "${domain}" "${name}" A "${ip}" "$KTYPE" result2="$?" fi fi # get existing reverse zones (if any) ReverseZones=$($SAMBATOOL dns zonelist "${Server}" "$KTYPE" --reverse | grep 'pszZoneName' | awk '{print $NF}') if [ -z "$ReverseZones" ]; then logger "No reverse zone found, not updating" result3='0' result4='0' count=$((count+1)) else for revzone in $ReverseZones do rev_zone_info "$revzone" "${ip}" if [[ ${ip} = $ZoneIP* ]] && [ "$ZoneIP" = "$RZIP" ] then # does host have an existing 'PTR' record ? PTR_REC=$($SAMBATOOL dns query "${Server}" "${revzone}" "${IP2add}" PTR "$KTYPE" 2>/dev/null | grep 'PTR:' | awk '{print $2}' | awk -F '.' '{print $1}') if [[ -z $PTR_REC ]] then # no PTR record to delete result3=0 $SAMBATOOL dns add "${Server}" "${revzone}" "${IP2add}" PTR "${name}"."${domain}" "$KTYPE" result4="$?" break elif [ "$PTR_REC" = "${name}" ] then # Correct PTR record exists, do nothing logger "Correct 'PTR' record exists, not updating." result3=0 result4=0 count=$((count+1)) break elif [ "$PTR_REC" != "${name}" ] then # Wrong PTR record exists # points to wrong host logger "'PTR' record changed, updating record." $SAMBATOOL dns delete "${Server}" "${revzone}" "${IP2add}" PTR "${PTR_REC}"."${domain}" "$KTYPE" result3="$?" $SAMBATOOL dns add "${Server}" "${revzone}" "${IP2add}" PTR "${name}"."${domain}" "$KTYPE" result4="$?" break fi else continue fi done fi ;; delete) _KERBEROS count=0 $SAMBATOOL dns delete "${Server}" "${domain}" "${name}" A "${ip}" "$KTYPE" result1="$?" # get existing reverse zones (if any) ReverseZones=$($SAMBATOOL dns zonelist "${Server}" --reverse "$KTYPE" | grep 'pszZoneName' | awk '{print $NF}') if [ -z "$ReverseZones" ] then logger "No reverse zone found, not updating" result2='0' count=$((count+1)) else for revzone in $ReverseZones do rev_zone_info "$revzone" "${ip}" if [[ ${ip} = $ZoneIP* ]] && [ "$ZoneIP" = "$RZIP" ] then host -t PTR "${ip}" > /dev/null 2>&1 ret="$?" if [ $ret -eq 0 ] then $SAMBATOOL dns delete "${Server}" "${revzone}" "${IP2add}" PTR "${name}"."${domain}" "$KTYPE" result2="$?" else result2='0' count=$((count+1)) fi break else continue fi done fi result3='0' result4='0' ;; *) logger "Invalid action specified" exit 103 ;; esac result="${result1}:${result2}:${result3}:${result4}" if [ "$count" -eq 0 ] then if [ "${result}" != "0:0:0:0" ] then logger "DHCP-DNS $action failed: ${result}" exit 1 else logger "DHCP-DNS $action succeeded" fi fi if [ "$Add_macAddress" != 'no' ] then if [ -n "$DHCID" ] then Computer_Object=$(ldbsearch "$KTYPE" -H ldap://"$Server" "(&(objectclass=computer)(objectclass=ieee802Device)(cn=$name))" | grep -v '#' | grep -v 'ref:') if [ -z "$Computer_Object" ] then # Computer object not found with the 'ieee802Device' objectclass, does the computer actually exist, it should. Computer_Object=$(ldbsearch "$KTYPE" -H ldap://"$Server" "(&(objectclass=computer)(cn=$name))" | grep -v '#' | grep -v 'ref:') if [ -z "$Computer_Object" ] then logger "Computer '$name' not found. Exiting." exit 68 else DN=$(echo "$Computer_Object" | grep 'dn:') objldif="$DN changetype: modify add: objectclass objectclass: ieee802Device" attrldif="$DN changetype: modify add: macAddress macAddress: $DHCID" # add the ldif echo "$objldif" | ldbmodify "$KTYPE" -H ldap://"$Server" ret="$?" if [ $ret -ne 0 ] then logger "Error modifying Computer objectclass $name in AD." exit "${ret}" fi sleep 2 echo "$attrldif" | ldbmodify "$KTYPE" -H ldap://"$Server" ret="$?" if [ "$ret" -ne 0 ]; then logger "Error modifying Computer attribute $name in AD." exit "${ret}" fi unset objldif unset attrldif logger "Successfully modified Computer $name in AD" fi else DN=$(echo "$Computer_Object" | grep 'dn:') attrldif="$DN changetype: modify replace: macAddress macAddress: $DHCID" echo "$attrldif" | ldbmodify "$KTYPE" -H ldap://"$Server" ret="$?" if [ "$ret" -ne 0 ] then logger "Error modifying Computer attribute $name in AD." exit "${ret}" fi unset attrldif logger "Successfully modified Computer $name in AD" fi fi fi exit 0
Примечание
Add_macAddress='no'на:
Add_macAddress='yes'Следует обратить внимание, что необходимо предоставить права администратора домена пользователю обновления DNS.
# chmod 755 /usr/local/bin/dhcp-dyndns.sh
# cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
/etc/dhcp/dhcpd.conf
:
authoritative; ddns-update-style none; subnet 192.168.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option time-offset 0; option routers 192.168.0.1; option domain-name-servers 192.168.0.132, 192.168.0.133; option ntp-servers 192.168.0.132, 192.168.0.133; option domain-name "test.alt"; default-lease-time 3600; pool { max-lease-time 1800; #30 минут range 192.168.0.150 192.168.0.200; } } on commit { set noname = concat("dhcp-", binary-to-ascii(10, 8, "-", leased-address)); set ClientIP = binary-to-ascii(10, 8, ".", leased-address); set ClientDHCID = concat ( suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2) ); set ClientName = pick-first-value(option host-name, config-option host-name, client-name, noname); log(concat("Commit: IP: ", ClientIP, " DHCID: ", ClientDHCID, " Name: ", ClientName)); execute("/usr/local/bin/dhcp-dyndns.sh", "add", ClientIP, ClientDHCID, ClientName); } on release { set ClientIP = binary-to-ascii(10, 8, ".", leased-address); set ClientDHCID = concat ( suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,1,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,2,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,3,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,4,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,5,1))),2), ":", suffix (concat ("0", binary-to-ascii (16, 8, "", substring(hardware,6,1))),2) ); log(concat("Release: IP: ", ClientIP)); execute("/usr/local/bin/dhcp-dyndns.sh", "delete", ClientIP, ClientDHCID); } on expiry { set ClientIP = binary-to-ascii(10, 8, ".", leased-address); # cannot get a ClientMac here, apparently this only works when actually receiving a packet log(concat("Expired: IP: ", ClientIP)); # cannot get a ClientName here, for some reason that always fails # however the dhcp update script will obtain the short hostname. execute("/usr/local/bin/dhcp-dyndns.sh", "delete", ClientIP, "", "0"); }
# control dhcpd-chroot disabled
# systemctl restart dhcpd
dhcpd[7817]: DHCPDISCOVER from 08:00:27:99:a6:1f via enp0s3 dhcpd[7817]: DHCPOFFER on 192.168.0.150 to 08:00:27:99:a6:1f (host-199) via enp0s3 dhcpd[7817]: Commit: IP: 192.168.0.150 DHCID: 08:00:27:99:a6:1f Name: host-199 dhcpd[7817]: execute_statement argv[0] = /usr/local/bin/dhcp-dyndns.sh dhcpd[7817]: execute_statement argv[1] = add dhcpd[7817]: execute_statement argv[2] = 192.168.0.150 dhcpd[7817]: execute_statement argv[3] = 08:00:27:99:a6:1f dhcpd[7817]: execute_statement argv[4] = host-199 dhcpd[8228]: 17-07-24 08:55:31 [dyndns] : Getting new ticket, old one has expired dhcpd[8236]: 'A' record changed, updating record. dhcpd[8237]: Record deleted successfully dhcpd[8240]: Record added successfully dhcpd[8268]: Record added successfully dhcpd[8271]: DHCP-DNS add succeeded dhcpd[7817]: DHCPREQUEST for 192.168.0.125 (192.168.0.132) from 08:00:27:99:a6:1f (host-199) via enp0s3 dhcpd[7817]: DHCPACK on 192.168.0.150 to 08:00:27:99:a6:1f (host-199) via enp0s3
#host host-199
host-199.test.alt has address 192.168.0.150 host-199.test.alt has IPv6 address fd47:d11e:43c1:0:a00:27ff:fe99:a61f #host 192.168.0.150
150.0.168.192.in-addr.arpa domain name pointer host-199.test.alt.
# tsig-keygen -a hmac-md5 omapi_key
key "omapi_key" {
algorithm hmac-md5;
secret "KKkAspinSr/nXYXhAv7CTQ==";
};
Как на ведущем, так и на ведомом устройстве должен быть настроен специальный раздел, путём добавления следующих строк в файл /etc/dhcp/dhcpd.conf
:
omapi-port 7911; omapi-key omapi_key; key "omapi_key" { algorithm hmac-md5; secret "Секретный_ключ"; };«Секретный_ключ» следует заменить на ключ, полученный на предыдущем шаге.
/etc/dhcp/dhcpd.conf
перед разделом subnet следует добавить строки:
omapi-port 7911; omapi-key omapi_key; key "omapi_key" { algorithm hmac-md5; secret "KKkAspinSr/nXYXhAv7CTQ=="; }; failover peer "dhcp-failover" { primary; address dc1.test.alt; # Полное DNS-имя основного DHCP-сервера port 847; peer address dc2.test.alt; # Полное DNS-имя имя резервного DHCP-сервера peer port 647; max-response-delay 60; max-unacked-updates 10; mclt 3600; split 128; load balance max seconds 3; }И добавить ссылку на подсеть/пул, которые будут выполнять аварийное переключение в раздел pool:
pool { failover peer "dhcp-failover"; # Add for failover max-lease-time 1800; #30 минут range 192.168.0.150 192.168.0.200; }
#scp dc1:/usr/local/bin/dhcp-dyndns.sh /usr/local/bin/
#scp dc1:/etc/dhcp/dhcpduser.keytab /etc/dhcp/
#chown dhcpd:dhcp /etc/dhcp/dhcpduser.keytab
Примечание
#cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
#scp dc1:/etc/dhcp/dhcpd.conf /etc/dhcp/
/etc/dhcp/dhcpd.conf
внести изменения в раздел «failover peer "dhcp-failover"»:
failover peer "dhcp-failover" { secondary; address dc2.test.alt; # Полное DNS-имя имя резервного DHCP-сервера port 647; peer address dc1.test.alt; # Полное DNS-имя основного DHCP-сервера peer port 847; max-response-delay 60; max-unacked-updates 10; load balance max seconds 3; }
# control dhcpd-chroot disabled
Примечание
split
должен быть установлен только на ведущем DHCP-сервере. Этот параметр управляет балансировкой нагрузки двух серверов. Параметр может принимать значения от 0 до 255. Если установлено значение «255», основной сервер, если он не отключен (по какой-либо причине), будет отвечать на все запросы DHCP. Если установить значение «128», то оба DHCP-сервера будут использоваться одинаково. Подробности смотрите на man-странице dhcpd.conf.
# systemctl restart dhcpd
В системном журнале на обоих серверах должны появиться записи вида:
dhcpd[7879]: failover peer dhcp-failover: peer moves from recover-done to normal dhcpd[7879]: failover peer dhcp-failover: Both servers normal
-----BEGIN CERTIFICATE-----и
-----END CERTIFICATE-----
cert.pem
после сертификата сервера.
tls*
в файле smb.conf
(подробнее см. man smb.conf
).
tls*
задаются в разделе [global] файла smb.conf
. После внесения изменений в файл smb.conf
необходимо перезапустить Samba.
tls priority
позволяет задать строку приоритета шифра GnuTLS и, таким образом, отключить устаревшие шифры.
tls priority = NORMAL:-VERS-TLS1.0:-VERS-TLS1.1
/var/lib/samba/private/tls/ca.pem
/var/lib/samba/private/tls/cert.pem
/var/lib/samba/private/tls/key.pem
tls enabled = yes
), используются указанные выше файлы, которые соответствуют следующим параметрам smb.conf
:
tls enabled = yes tls keyfile = tls/key.pem tls certfile = tls/cert.pem tls cafile = tls/ca.pem
# cd /var/lib/samba/private/tls/
# openssl req -newkey rsa:2048 -keyout myKey.pem -nodes -x509 -days 365 -out myCert.pem
Generating a RSA private key
........................+++++
...........+++++
writing new private key to 'myKey.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [RU]:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (e.g., your name or your server's hostname) []:dc1.test.alt
Email Address []:
# chmod 600 myKey.pem
smb.conf
указать следующие параметры:
tls enabled = yes tls keyfile = tls/myKey.pem tls certfile = tls/myCert.pem tls cafile =
# cd /var/lib/samba/private/tls/
# openssl genrsa -out myKey.pem 2048
Generating RSA private key, 2048 bit long modulus (2 primes)
..................................................................+++++
..............................................................................................+++++
e is 65537 (0x010001)
# openssl req -new -key myKey.pem -out myCSR.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [RU]:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (e.g., your name or your server's hostname) []:dc1.test.alt
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
myCSR.pem
).
myCert.pem
) в каталоге с ключом сервера. Если CA требует промежуточные сертификаты, файл с промежуточными сертификатами следует также сохранить в том же каталоге, что и другие файлы (например, myIntermediate.pem
).
smb.conf
:
tls enabled = yes tls keyfile = tls/myKey.pem tls certfile = tls/myCert.pem tls cafile = tls/myIntermediate .pem
# openssl x509 -in /var/lib/samba/private/tls/myCert.pem -noout -text
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
32:9d:8f:2f:95:46:59:8d:9d:56:1c:da:14:b1:03:0c:82:ed:96:d0
Signature Algorithm: sha256WithRSAEncryption
Issuer: C = RU, CN = dc1.test.alt
Validity
Not Before: Jan 8 16:24:09 2025 GMT
Not After : Jan 8 16:24:09 2026 GMT
Subject: C = RU, CN = dc1.test.alt
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public-Key: (2048 bit)
Modulus:
.....{.....}.....
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
45:2E:E1:87:EE:54:77:E1:88:86:C6:48:DB:99:E6:EA:36:CA:D5:79
X509v3 Authority Key Identifier:
keyid:45:2E:E1:87:EE:54:77:E1:88:86:C6:48:DB:99:E6:EA:36:CA:D5:79
X509v3 Basic Constraints:
CA:TRUE
Signature Algorithm: sha256WithRSAEncryption
.....{.....}.....
# openssl verify /var/lib/samba/private/tls/myCert.pem
C = RU, CN = dc1.test.alt
error 18 at 0 depth lookup: self signed certificate
OK
Если в файле smb.conf
указан файл CA, следует использовать следующую команду:
# openssl verify /var/lib/samba/private/tls/myCert.pem -CAfile /path/to/ca-file.pem
# openssl s_client -showcerts -connect dc1.test.alt:636
CONNECTED(00000003)
depth=0 C = RU, CN = dc1.test.alt
verify error:num=18:self signed certificate
verify return:1
depth=0 C = RU, CN = dc1.test.alt
verify return:1
---
Certificate chain
0 s:C = RU, CN = dc1.test.alt
i:C = RU, CN = dc1.test.alt
-----BEGIN CERTIFICATE-----
.....{.....}.....
-----END CERTIFICATE-----
---
Server certificate
subject=C = RU, CN = dc1.test.alt
issuer=C = RU, CN = dc1.test.alt
---
No client certificate CA names sent
Requested Signature Algorithms: RSA+SHA256:RSA-PSS+SHA256:RSA-PSS+SHA256:ECDSA+SHA256:Ed25519:RSA+SHA384:RSA-PSS+SHA384:RSA-PSS+SHA384:ECDSA+SHA384:Ed448:RSA+SHA512:RSA-PSS+SHA512:RSA-PSS+SHA512:ECDSA+SHA512:RSA+SHA1:ECDSA+SHA1
Shared Requested Signature Algorithms: RSA+SHA256:RSA-PSS+SHA256:RSA-PSS+SHA256:ECDSA+SHA256:Ed25519:RSA+SHA384:RSA-PSS+SHA384:RSA-PSS+SHA384:ECDSA+SHA384:Ed448:RSA+SHA512:RSA-PSS+SHA512:RSA-PSS+SHA512:ECDSA+SHA512
Peer signing digest: SHA256
Peer signature type: RSA-PSS
Server Temp Key: X25519, 253 bits
---
SSL handshake has read 1437 bytes and written 424 bytes
Verification error: self signed certificate
---
New, TLSv1.3, Cipher is TLS_AES_256_GCM_SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 18 (self signed certificate)
---
Выйти из s_client можно, нажав [Ctrl]+[C].
smb.conf
указан файл CA, следует использовать следующую команду:
# openssl s_client -showcerts -connect localhost:636 -CAfile /path/to/ca-file.pem
Примечание
$ samba-tool dns add dc1.test.alt test.alt web A 192.168.0.150 -Uadministrator
Password for [TEST\administrator]:
Record added successfully
где dc1.test.alt — имя контроллера домена.
$ samba-tool dns zonecreate dc1.test.alt 0.168.192.in-addr.arpa -Uadministrator
Password for [TEST\administrator]:
Zone 0.168.192.in-addr.arpa created successfully
$ samba-tool dns add dc1.test.alt 0.168.192.in-addr.arpa 150 PTR web.test.alt
#samba-tool user add --random-password webauth
#samba-tool user setexpiry webauth --noexpiry
#samba-tool spn add HTTP/web.test.alt webauth
# samba-tool domain exportkeytab /tmp/httpd.keytab --principal=HTTP/web.test.alt@TEST.ALT
Export one principal to /tmp/httpd.keytab
/etc/httpd2/conf/
, установить права на него, так чтобы Apache мог читать, но не изменять keytab-файл:
#chown apache2:apache2 /etc/httpd2/conf/httpd.keytab
#chmod 0440 /etc/httpd2/conf/httpd.keytab
#apt-get install apache2-mod_auth_gssapi
#a2enmod auth_gssapi
#a2enmod authn_core
#a2enmod authz_user
#service httpd2 condreload
<Location "/login.html"> AuthType GSSAPI AuthName "GSSAPI Login" #GssapiBasicAuth On GssapiCredStore keytab:/etc/httpd2/conf/httpd.keytab GssapiAllowedMech krb5 Require valid-user </Location>
# systemctl restart httpd2
$Попытаться прочитать содержимое сайта, используя аутентификацию Kerberos:kinit ivanov
Password for ivanov@TEST.ALT: $klist
Ticket cache: KEYRING:persistent:500:krb_ccache_5VitJSL Default principal: ivanov@TEST.ALT Valid starting Expires Service principal 28.04.2023 15:54:41 29.04.2023 01:54:41 krbtgt/TEST.ALT@TEST.ALT renew until 05.05.2023 15:54:38
$ curl --negotiate -u : http://web.test.alt/login.html
<html><body><h1>It works!</h1></body></html>
Получено содержимое страницы.
$Попытаться прочитать содержимое сайта, используя аутентификацию Kerberos:kdestroy
$klist
$ curl --negotiate -u : http://web.test.alt/login.html
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Authentication required!</title>
</head>
<body>
<h1>Authentication required!</h1>
…
<h2>Error 401</h2>
<address>
<a href="/">web.test.alt</a><br />
<span>Apache/2.4.57 (Unix) mod_auth_gssapi/1.6.3 OpenSSL/1.1.1u</span>
</address>
</body>
</html>
Содержимое страницы не доступно.
#samba-tool user add --random-password nginxauth
#samba-tool user setexpiry nginxauth --noexpiry
#samba-tool spn add HTTP/web.test.alt nginxauth
# samba-tool domain exportkeytab /tmp/nginx.keytab --principal=HTTP/web.test.alt@TEST.ALT
Export one principal to /tmp/nginx.keytab
# apt-get install nginx nginx-spnego
# ln -s /etc/nginx/modules-available.d/http_auth_spnego.conf /etc/nginx/modules-enabled.d/
/etc/nginx
. Установить права на файл keytab:
# chmod 644 /etc/nginx/nginx.keytab
Nginx должен иметь права на чтение keytab-файла, но не на его изменение.
server
файла конфигурации сайта:
server { … location / { root /var/www/html; auth_gss on; auth_gss_realm TEST.ALT; #имя Kerberos области auth_gss_keytab /etc/nginx/nginx.keytab; #путь к keytab-файлу auth_gss_service_name HTTP/web.test.alt; #имя используемого SPN auth_gss_allow_basic_fallback off; } }
auth_gss
— включение/отключение аутентификации;
auth_gss_keytab
— абсолютный путь к файлу keytab, содержащему учётные данные службы;
auth_gss_realm
— имя области Kerberos;
auth_gss_service_name
— имя субъекта-службы, используемое при получении учетных данных;
auth_gss_allow_basic_fallback
— включить/отключить базовую аутентификацию. При включённой базовой аутентификации (по умолчанию), если SSO не проходит (машина не в домене) разрешает обычный ввод логина и пароля. Если используется SPNEGO без SSL, рекомендуется отключить базовую аутентификацию, так как в этом случае пароль будет отправлен в виде открытого текста.
# systemctl restart nginx
auth_gss_authorized_principal
. Можно указывать несколько записей, по одной на строку:
auth_gss_authorized_principal <username>@<realm> auth_gss_authorized_principal <username2>@<realm>
auth_gss_authorized_principal_regex
. Этот параметр можно использовать вместе с параметром auth_gss_authorized_principal
:
auth_gss_authorized_principal <username>@<realm> auth_gss_authorized_principal_regex ^(<username>)/(<group>)@<realm>$
$Попытаться прочитать содержимое сайта, используя аутентификацию Kerberos:kinit ivanov
Password for ivanov@TEST.ALT: $klist
Ticket cache: KEYRING:persistent:500:krb_ccache_5VitJSL Default principal: ivanov@TEST.ALT Valid starting Expires Service principal 28.04.2023 15:54:41 29.04.2023 01:54:41 krbtgt/TEST.ALT@TEST.ALT renew until 05.05.2023 15:54:38
$ curl --negotiate -u : http://web.test.alt
<html><body><h1>It works!</h1></body></html>
Получено содержимое страницы.
$Попытаться прочитать содержимое сайта, используя аутентификацию Kerberos:kdestroy
$klist
$ curl --negotiate -u : http://web.test.alt
<html>
<head><title>401 Authorization Required</title></head>
<body>
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.22.1</center>
</body>
</html>
Содержимое страницы не доступно.
network.negotiate-auth.trusted-uris
.
network.automatic-ntlm-auth.trusted-uris
выставить в Kerberos realm: .test.alt;
network.negotiate-auth.delegation-uris
выставить в Kerberos realm: .test.alt;
network.automatic-ntlm-auth.allow-non-fqdn
выставить в: true;
network.negotiate-auth.allow-non-fqdn
выставить в: true;
/usr/lib64/firefox/browser/defaults/preferences/prefs.js
со следующим содержимым:
pref("network.negotiate-auth.trusted-uris",".test.alt"); pref("network.automatic-ntlm-auth.trusted-uris",".test.alt"); pref("network.automatic-ntlm-auth.allow-non-fqdn","true"); pref("network.negotiate-auth.allow-non-fqdn","true"); pref("network.negotiate-auth.delegation-uris",".test.alt");
network.negotiate-auth.trusted-uris
— политика SPNEGO;
network.automatic-ntlm-auth.trusted-uris
— политика NTLM;
network.negotiate-auth.delegation-uris
— политика Делегированная авторизация;
network.automatic-ntlm-auth.allow-non-fqdn
— политика Разрешить неполное доменное имя (Non FQDN);
network.negotiate-auth.allow-non-fqdn
— политика Разрешить неполное доменное имя (Non FQDN);
/etc/chromium/policies/managed/policies.json
добавить строки:
{ "AuthServerAllowlist": "*.test.alt", "AuthNegotiateDelegateAllowlist": "*.test.alt" }где .test.alt — имя Kerberos области (realm).
chrome://policy
.
Примечание
$ chromium-browser --auth-server-whitelist="*.test.alt"
/etc/opt/yandex/browser/policies/managed/policies.json
добавить строки:
{ "AuthServerAllowlist": "*.test.alt", "AuthNegotiateDelegateAllowlist": "*.test.alt" }Где .test.alt — имя Kerberos области (realm).
browser://policy
.
host msdfs
в файле /etc/samba/smb.conf
. Корень DFS назначается с помощью логического параметра root msdfs
. Если для этого параметра установлено значение yes
, Samba будет воспринимать открытый для общего доступа ресурс как корневой DFS. Ссылки DFS, указываемые в открытом для доступа каталоге, имеют вид: msdfs:serverA\shareA,serverB\shareB
и т.д. Корневой каталог DFS в Samba содержит ссылки DFS в виде символических ссылок,
/media/dfsroot
):
# mkdir /media/dfsroot
/etc/samba/smb.conf
в секцию [global]
добавить параметр:
host msdfs = yesи добавить секцию
[dfs]
, с указанием корня:
[dfs] path = /media/dfsroot msdfs root = yes
/media/dfsroot
настроить ссылки DFS на общие ресурсы в сети:
#cd /media/dfsroot
#ln -s msdfs:dc1.test.alt\\free linka
#ln -s msdfs:web.test.alt\\tests linkb
# systemctl restart samba
$ smbclient //test.alt/dfs/linka -U 'ivanov'
Password for [TEST\ivanov]:
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Mon May 22 10:13:28 2023
.. D 0 Mon May 22 10:13:06 2023
dc.txt N 5 Mon May 22 15:57:14 2023
48254668 blocks of size 1024. 40859796 blocks available
smb: \> exit
Примечание
# samba-tool spn add cifs/cifs/<имя_домена> <имя_сервера>$
Например:
# samba-tool spn add cifs/test.alt dc1$
/var/log/sssd/
. Например, для машины в домене test.alt, файлы журналов SSSD могут выглядеть следующим образом:
# ls -l /var/log/sssd/
итого 1660
-rw------- 1 _sssd _sssd 0 мая 18 12:55 gpo_child.log
-rw------- 1 _sssd _sssd 0 мая 18 12:55 krb5_child.log
-rw------- 1 _sssd _sssd 0 мая 18 12:54 ldap_child.log
-rw------- 1 root root 261 июн 19 10:10 sssd_ifp.log
-rw------- 1 root root 3955 июн 19 09:34 sssd.log
-rw------- 1 _sssd _sssd 1677605 июн 19 11:18 sssd_nss.log
-rw------- 1 _sssd _sssd 1134 июн 19 09:34 sssd_pac.log
-rw------- 1 _sssd _sssd 3067 июн 19 09:34 sssd_pam.log
-rw------- 1 _sssd _sssd 0 мая 18 12:54 sssd_TEST.ALT.log
krb5_child.log
ldap_child.log
sssd_<domain.name>.log
sssd.conf
служба SSSD записывает информацию о взаимодействии с LDAP-сервером в отдельный файл журнала.
sssd.log
sssd_ifp.log
sssd_nss.log
sssd_pac.log
sssd_pam.log
sssd_ssh.log
Таблица 49.1. Уровни журналирования SSSD
Уровень
|
Описание
|
---|---|
0, 0x0010
|
Фатальные ошибки. Ошибки, которые не позволяют запустить службу SSSD или вызывает завершение работы сервиса
|
1, 0x0020
|
Критические ошибки. Ошибки, которые не завершают работу службы SSSD, но как минимум одна из основных функций не работает должным образом
|
2, 0x0040
|
Серьёзные ошибки. Ошибки, сообщающие о том, что определенный запрос или операция завершились неудачно. Это уровень журналирования по умолчанию
|
3, 0x0080
|
Незначительные ошибки. Ошибки, которые могут стать причиной ошибок второго уровня (ошибок при выполнении действий)
|
4, 0x0100
|
Настройки конфигурации
|
5, 0x0200
|
Данные функций
|
6, 0x0400
|
Сообщения трассировки для функций действий
|
7, 0x1000
|
Сообщения трассировки для функций внутреннего управления
|
8, 0x2000
|
Содержимое переменных внутренних функций
|
9, 0x4000
|
Информация трассировки крайне низкого уровня
|
9, 0x20000
|
Быстродействие и статистические данные. Из-за способа обработки запросов на внутреннем уровне, записанное в журнал время выполнения запроса может быть больше, чем оно было на самом деле
|
10, 0x10000
|
Информация трассировки libldb ещё более низкого уровня. Практически никогда не требуется
|
0x0270
.
sssd.conf
debug_level=<целое_число>
в каждую секцию файла /etc/sssd/sssd.conf
. Где значение <целое_число> — число от 0 до 10. Уровни до 3 регистрируют крупные сбои, а уровни начиная с 8 и выше предоставляют большое количество подробных сообщений журнала. Уровень 6 является хорошей отправной точкой для отладки проблем.
/etc/sssd/sssd.conf
:
[sssd] debug_level = 6 config_file_version = 2 services = nss, pam [domain/TEST.ALT] debug_level = 6 id_provider = ad … [nss] debug_level = 6 [pam] debug_level = 6
# systemctl restart sssd
sssctl debug-level <целое_число>
. Где значение <целое_число> — число от 0 до 10. Уровни до 3 регистрируют крупные сбои, а уровни начиная с 8 и выше предоставляют большое количество подробных сообщений журнала. Уровень 6 является хорошей отправной точкой для отладки проблем.
# sssctl debug-level
sssd 0x0070
nss 0x0070
pam 0x0070
pac 0x0070
domain/TEST.ALT 0x0070
#sssctl debug-level 6
#sssctl debug-level
sssd 0x07f0 nss 0x07f0 pam 0x07f0 pac 0x07f0 domain/TEST.ALT 0x07f0
Примечание
sssctl debug-level
будет действовать до перезапуска службы sssd.
Таблица 49.2. Настройки SSSD в Alterator
Настройка
|
Опция в файле
/etc/sssd/sssd.conf
|
Описание
|
---|---|---|
Правила применения групповых политик
|
ad_gpo_access_control
|
Определяет в каком режиме будет осуществляться контроль доступа в SSSD основанный на групповых политиках Active Directory (GPO).
Доступные режимы:
|
Игнорировать, если групповые политики не читаются
|
ad_gpo_ignore_unreadable
|
Определяет будут ли проигнорированы правила управления доступом в SSSD основанные на групповых политиках, если недоступен какой-либо шаблон (GPT) объекта групповой политики (GPO).
Доступные режимы:
|
Кешировать учётные данные
|
cache-credentials
|
Определяет, будут ли учётные данные удалённых пользователей сохраняться в локальном кеше SSSD.
Доступные режимы:
|
Привилегии запуска SSSD
|
sssd-drop-privileges
|
Позволяет сбросить права службы SSSD, чтобы избежать работы от имени суперпользователя (root).
Доступные режимы:
|
Интервал обновления записей DNS
|
dyndns_refresh_interval
|
Определяет как часто серверная часть должна выполнять периодическое обновление DNS в дополнение к автоматическому обновлению, выполняемому при подключении серверной части к сети. Этот параметр применим только в том случае, если для параметра
dyndns_update установлено значение true .
Доступные режимы:
|
TTL для клиентской записи DNS
|
dyndns_ttl
|
Срок жизни, применяемый к DNS-записи клиента при ее обновлении. Если
dyndns_update имеет значение false , этот параметр не имеет никакого эффекта.
Доступные режимы:
|
Обновлять IP-адрес машины в DNS
|
dyndns_update
|
Позволяет включить или отключить автоматическое обновление DNS-записей (защищенных с помощью GSS-TSIG) с IP-адресом клиента через SSSD.
Доступные режимы:
|
Обновлять PTR-запись машины в DNS-записей
|
dyndns_update_ptr
|
Определяет будет ли обновляться клиентская PTR-запись (защищенная с помощью GSS-TSIG) при обновлении DNS-записей клиента. Применимо, только если параметр
dyndns_update имеет значение true .
Доступные режимы:
|
cache_credentials
в значение true
в разделе домена (в файле /etc/sssd/sssd.conf
).
offline_credentials_expiration
в разделе [pam], чтобы установить ограничение по времени (в днях), в течение которого пользователи смогут аутентифицироваться в автономном режиме с момента последнего успешного входа.
[pam] offline_credentials_expiration = 5 [domain/TEST.ALT] cache_credentials = true
control sssd-cache-credentials
. Например:
# control sssd-cache-credentials
default
# control sssd-cache-credentials enabled
default
# control sssd-cache-credentials disabled
default
Примечание
Примечание
# apt-get install fuse-gvfs gvfs-backend-smb libgio
# gpasswd -a <пользователь> fuse
# control fusermount public
/var/run/<uid_пользователя>/gvfs
или /var/run/user/<uid_пользователя>/gvfs/smb-share:server=сервер,share=ресурс
;
gio mount smb://server/sysvol/
Примечание
/var/run/uid_пользователя/gvfs
.
# apt-get install pam_mount cifs-utils
Важно
# apt-get install systemd-settings-enable-kill-user-processes
/etc/pam.d/system-auth
добавить строки:
session [success=1 default=ignore] pam_succeed_if.so service = systemd-user quiet session optional pam_mount.so disable_interactive
/etc/security/pam_mount.conf.xml
(перед тегом <cifsmount>):
<volume uid="10000-2000200000" fstype="cifs" server="dc1.test.alt" path="sysvol" mountpoint="~/share" options="sec=krb5i,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />где
~/share
" — путь монтирования в домашней папке пользователя.
sec=krb5i
более безопасный, но требует больше вычислительных ресурсов. Вместо него можно указать sec=krb5
.
Предупреждение
server
необходимо указывать настоящее имя сервера, а не имя домена.
Предупреждение
<volume uid="10000-2000200000" fstype="cifs" server="dc1.test.alt" path="sysvol" mountpoint="~/share" options="sec=krb5i,vers=2.0,cruid=%(USERUID),nounix,uid=%(USERUID),gid=%(USERGID),file_mode=0664,dir_mode=0775" />
# mount.cifs //dc1.test.alt/sysvol /mnt/ -o vers=2.0,user=ivanov
smbclient
, например:
# smbclient -L dc1.test.alt -U ivanov -m SMB2
/mnt/auto/
;
/mnt/auto/server/share/
;
/etc/auto*
. Основной шаблон называется auto.master
, он может указывать на один или несколько других шаблонов для конкретных типов носителей. Пример содержимого файла /etc/auto.master
:
# Format of this file: # mountpoint map options # For details of the format look at autofs(8). /mnt/auto /etc/auto.tab -t 5 /mnt/net /etc/auto.avahi -t 120Первое значение в каждой строке определяет базовый каталог, в который носители будут монтироваться, второе значение — файл конфигурации или скрипт, который будет использован.
Примечание
-t
(--timeout
) устанавливает количество секунд, после истечения которых каталоги будут размонтированы. Значение 0 отключает таймаут. Значения параметра по умолчанию задаются в файле /etc/autofs.conf
.
/etc/auto.master
строку:
/mnt/samba /etc/auto.smb -t 120
/mnt/samba
— каталог, в котором будут подключаться сетевые файловые системы, /etc/auto.smb
— стандартный скрипт, входящий в состав пакета autofs, 120 — таймаут подключения при отсутствии обращения.
# systemctl enable --now autofs
$ ls /mnt/samba/<имя_хоста>
или в диспетчере файлов:
# apt-get install kde5-autofs-shares
/etc/auto.master
строку:
/mnt/samba /etc/auto.smb -t 120
/mnt/samba
— каталог, в котором будут подключаться сетевые файловые системы, /etc/auto.smb
— скрипт, входящий в состав пакета autofs, 120 — таймаут подключения при отсутствии обращения.
# systemctl enable --now autofs
Примечание
~/.autofs.shares
.
Важно
/var/log/samba/
.
log file
, который задается в разделе [global]
файла /etc/samba/smb.conf
. Параметр представляет собой список бэкэндов, разделенных пробелом, в формате:
logging = backend1[:option][@loglevel] backendN[:option][@loglevel]Где:
backend
— один из доступных бэкендов:
log file
, либо в стандартные файлы журналов Samba в каталоге /var/log/samba/
;
logging = ringbuf:size=NBYTES(значение по умолчанию — 1 МБ).
[:option]
— дополнительные опции, специфичные для указанного бэкенда;
[@loglevel]
— уровень журналирования. Если для бэкенда данный параметр не установлен, в бэкенд отправляются все сообщения. Параметр log level
определяет общие уровни журнала, а указанные здесь уровни определяют, что отправляется на отдельные бэкенды.
Примечание
logging
задан, то его значение переопределяет значения параметров syslog
и syslog only
.
logging
не задан.
logging
:
logging = syslog@1 file
log file
в разделе [global]
файла /etc/samba/smb.conf
позволяет переопределить файл журнала Samba.
log file
использует стандартные подстановки, что позволят иметь отдельные файлы журналов для различных сущностей и объектов, обслуживаемых Samba.
%m
— NetBIOS-имя клиентской машины. Этот параметр недоступен, когда Samba прослушивает порт 445, поскольку клиенты больше не отправляют эту информацию. Для возможности использования этой подстановки следует установить в разделе [global]
параметр:
smbports = 139
%M
— интернет-имя клиентской машины;
%I
— IP-адрес клиентской машины;
%i
— локальный IP-адрес, с которым установил соединение клиент;
%T
— текущие дата и время;
%U
— имя пользователя сессии.
Примечание
man smb.conf
).
/var/log/samba/
следует задать параметр следующим образом:
log file = /var/log/samba/%m.log
max log size
в разделе [global]
файла /etc/samba/smb.conf
определяет максимальный размер файла журнала. Значение параметра задается в килобайтах. Samba периодически проверяет размер файла журнала и, если он превышен, переименовывает файл, добавляя расширение .old и создает новый файл.
max log size
означает отсутствие ограничений. Значение по умолчанию 5000.
max log size = 1000
Примечание
log level
файла /etc/samba/smb.conf
. Для разных классов отладки можно указывать разные уровни журналирования и отдельные файлы журналов.
Таблица 51.1. Классы отладки
Класс отладки
|
Описание
|
---|---|
all
|
Включает все сообщения отладки и подходит для общего мониторинга системы
|
tdb
|
Отвечает за отладку работы с TDB (Trivial Database). TDB — это простая встраиваемая база данных, используемая Samba для хранения различных данных, таких как сессии, аутентификационные данные, метаданные файлов и другие внутренние структуры
|
printdrivers
|
Используется для отладки драйверов печати. Этот класс полезен для отладки и анализа работы с принтерами, включая загрузку, установку и настройку драйверов
|
lanman
|
Предназначен для отладки протоколов LAN Manager, что может быть полезно при работе с устаревшими системами или приложениями
|
smb
|
Предназначен для регистрации вызовов по протоколу SMB
|
rpc_parse
|
Включает информацию об обработке RPC-сообщений. Может использоваться при анализе репликации
|
rpc_srv
|
Включает информацию о регистрации конечных точек RPC
|
rpc_cli
|
Предназначен для регистрации информации, связанной с работой RPC-клиента (Remote Procedure Call). Используется для отладки взаимодействия между клиентом и сервером в контексте RPC-вызовов, которые используются для выполнения различных операций в Samba, таких как управление доменными службами, доступ к общим ресурсам и другие действия, связанные с протоколами SMB/CIFS
|
passdb
|
Предназначен для регистрации доступа к хранилищу данных паролей
|
sam
|
Предназначен для регистрации событий, связанных с управлением учетными записями пользователей и групп в AD (SAM — Security Accounts Manager)
|
auth
|
Предназначен для регистрации событий аутентификации пользователей. Включает процессы проверки учетных данных (логин/пароль), использование Kerberos, NTLM и других механизмов аутентификации
|
winbind
|
Предназначен для регистрации сообщений при присоединении клиентов к Samba для проведения различных операций. Позволяет анализировать работу сервиса Winbind
|
vfs
|
Предназначен для журналирования проблем с правами доступа и некорректным поведением бэкенда, абстрагируемого VFS
|
idmap
|
Предназначен для регистрации событий установки соответствия между SID и группами в Linux (Identity Mapping)
|
quota
|
Предназначен для регистрации информации, связанной с управлением квотами (quotas) на файловых системах. Квоты используются для ограничения объема дискового пространства, которое может использовать пользователь или группа
|
acls
|
Предназначен для регистрации событий проверки и изменения прав доступа на основе списков управления доступом (Access Control Lists)
|
locking
|
Предназначен для регистрации событий блокировок файлов базы данных каталога и конкретных записей при одновременном доступе к ним разных клиентов
|
msdfs
|
Предназначен для регистрации событий, связанных с поддержкой DFS (Distributed File System) в Samba. DFS позволяет объединять несколько общих ресурсов в одну виртуальную иерархию
|
dmapi
|
Предназначен для регистрации событий, связанных с использованием DMAPI (Data Management API) в Samba
|
registry
|
Предназначен для регистрации взаимодействия с данными реестра Windows, которые используются в службе каталогов
|
scavenger
|
Предназначен для регистрации событий «сборки мусора» (garbage collection) в Samba. Этот процесс используется для очистки устаревших или неиспользуемых данных, таких как открытые файлы, сессии, аутентификации и другие ресурсы, которые больше не нужны
|
dns
|
Предназначен для регистрации запросов на поиск и изменение записей DNS
|
ldb
|
Предназначен для регистрации подключений к базе данных LDAP
|
tevent
|
Предназначен для регистрации сообщений библиотеки управления памятью talloc
|
auth_audit, auth_json_audit
|
Предназначены для регистрации событий аутентификации и авторизации учетных записей (успешных и неуспешных попытках входа в систему, изменениях паролей и изменениях статусов учетных записей). Могут использоваться, например, для отслеживания попыток несанкционированного входа
|
kerberos
|
Предназначен для регистрации событий взаимодействия по протоколу Kerberos
|
drs_repl
|
Предназначен для регистрации событий входящей и исходящей репликации на контроллере домена
|
smb2
|
Предназначен для регистрации вызовов по протоколу SMB (SMB2 и SMB3)
|
smb2_credits
|
Предназначен для регистрации запросов передачи данных по протоколу SMB. Записи содержат информацию о количестве переданных запросов и количестве запросов, которые осталось выполнить для завершения передачи файлов
|
dsdb_audit, dsdb_json_audit
|
Предназначены для регистрации изменений в базе данных контроллера домена Samba (sam.ldb) (изменения пользователей, групп, разрешений, структуры каталога и т. д.)
|
dsdb_password_audit, dsdb_password_json_audit
|
Предназначены для регистрации событий изменения и сброса паролей
|
dsdb_transaction_audit, dsdb_transaction_json_audit
|
Предназначены для регистрации транзакций (фиксация, откат) в базе данных каталога. Могут использоваться для контроля целостности данных
|
dsdb_group_audit, dsdb_group_json_audit
|
Предназначены для регистрации изменений в составе групп
|
@PATH
к классу.
man smb.conf
).
smb.conf
log level
для настройки уровня журналирования:
log level = 3
log level = 3 passdb:5 auth:5
/var/log/winbind.log
:
log level = 3 winbind:1@/var/log/winbind.log
log level
в файле /etc/samba/smb.conf
. Для всех команд Samba это значение можно переопределить, используя следующую опцию:
-d DEBUGLEVEL, --debuglevel=DEBUGLEVELНапример:
$net usershare add Share2 /tmp/share2 -d 5
#samba-tool group add testgroup12 -d dsdb_audit:3
Примечание
auth_audit
для ведения записи в стандартном формате и auth_json_audit
для ведения записи в формате JSON).
Примечание
Примечание
auth_audit
— регистрация в стандартном формате;
auth_json_audit
— регистрация в формате JSON.
auth_audit
и auth_json_audit
доступны следующие уровни журналирования (каждый последующий уровень включает все предшествующие ему):
[global]
файла /etc/samba/smb.conf
:
log level = 1 auth_audit:3 auth_json_audit:3
[2024/05/29 14:32:52.509247, 2] ../../auth/auth_log.c:858(log_authentication_event_human_readable) Auth: [Kerberos KDC,ENC-TS Pre-authentication] user [(null)]\[ivanov\\@TEST@TEST.ALT] at [Wed, 29 May 2024 14:32:52.509236 EET] with [aes256-cts-hmac-sha1-96] status [NT_STATUS_WRONG_PASSWORD] workstation [(null)] remote host [ipv4:192.168.0.135:51947] mapped to [TEST]\[ivanov]. local host [NULL] [2024/05/29 14:39:06.426556, 3] ../../auth/auth_log.c:858(log_authentication_event_human_readable) Auth: [Kerberos KDC,ENC-TS Pre-authentication] user [(null)]\[ivanov\\@TEST@TEST.ALT] at [Wed, 29 May 2024 14:39:06.426540 EET] with [aes256-cts-hmac-sha1-96] status [NT_STATUS_OK] workstation [(null)] remote host [ipv4:192.168.0.135:55134] became [TEST]\[ivanov] [S-1-5-21-578923263-1107570656-1287136478-1103]. local host [NULL]
{"timestamp": "2024-05-29T14:32:52.509393+0200", "type": "Authentication", "Authentication": {"version": {"major": 1, "minor": 3}, "eventId": 4625, "logonId": "5bd240f7cc4de1b5", "logonType": 3, "status": "NT_STATUS_WRONG_PASSWORD", "localAddress": null, "remoteAddress": "ipv4:192.168.0.135:51947", "serviceDescription": "Kerberos KDC", "authDescription": "ENC-TS Pre-authentication", "clientDomain": null, "clientAccount": "ivanov\\@TEST@TEST.ALT", "workstation": null, "becameAccount": "ivanov", "becameDomain": "TEST", "becameSid": "S-1-5-21-578923263-1107570656-1287136478-1103", "mappedAccount": "ivanov", "mappedDomain": "TEST", "netlogonComputer": null, "netlogonTrustAccount": null, "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "netlogonTrustAccountSid": null, "passwordType": "aes256-cts-hmac-sha1-96", "clientPolicyAccessCheck": null, "serverPolicyAccessCheck": null, "duration": 3129}} {"timestamp": "2024-05-29T14:39:06.426725+0200", "type": "Authentication", "Authentication": {"version": {"major": 1, "minor": 3}, "eventId": 4624, "logonId": "11424f6685e647f9", "logonType": 3, "status": "NT_STATUS_OK", "localAddress": null, "remoteAddress": "ipv4:192.168.0.135:55134", "serviceDescription": "Kerberos KDC", "authDescription": "ENC-TS Pre-authentication", "clientDomain": null, "clientAccount": "ivanov\\@TEST@TEST.ALT", "workstation": null, "becameAccount": "ivanov", "becameDomain": "TEST", "becameSid": "S-1-5-21-578923263-1107570656-1287136478-1103", "mappedAccount": "ivanov", "mappedDomain": "TEST", "netlogonComputer": null, "netlogonTrustAccount": null, "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "netlogonTrustAccountSid": null, "passwordType": "aes256-cts-hmac-sha1-96", "clientPolicyAccessCheck": null, "serverPolicyAccessCheck": null, "duration": 5421}}
dsdb_audit
— регистрация в стандартном формате;
dsdb_json_audit
— регистрация в формате JSON.
dsdb_group_audit
— регистрация в стандартном формате;
dsdb_group_json_audit
— регистрация в формате JSON.
dsdb_audit
, dsdb_json_audit
, dsdb_group_audit
и dsdb_group_json_audit
доступны следующие уровни журналирования:
dsdb_password_audit
— регистрация в стандартном формате;
dsdb_password_json_audit
— регистрация в формате JSON.
Примечание
auth_audit
и auth_audit_json
.
dsdb_password_audit
и dsdb_password_json_audit
доступны следующие уровни журналирования:
dsdb_transaction_audit
— регистрация в стандартном формате;
dsdb_transaction_json_audit
— регистрация в формате JSON.
dsdb_transaction_audit
и dsdb_transaction_json_audit
доступны следующие уровни журналирования:
[global]
файла /etc/samba/smb.conf
:
log level = 1 dsdb_json_audit:5 dsdb_password_json_audit:5 dsdb_group_json_audit:5 dsdb_transaction_json_audit:5
{ "timestamp": 2024-05-29T14:32:52.509393+0200, "type": одно из значений "Authentication", "Authorization", "dsdbChange", "dsdbTransaction", "passwordChange", "replicatedUpdate", "groupChange", type: { data } }
Примечание
serviceDescription
), для параметра netlogonComputer
будет установлено значение «null», для параметра netlogonNegotiateFlags
будет установлено значение «0x00000000», другие параметры, оносящиеся к NETLOGON, будут иметь аналогичные пустые значения.
Таблица 51.2. Общие атрибуты
Атрибут
|
Значение
|
---|---|
version
|
Номер версии формата JSON. Состоит из двух частей:
Изменения в перечне возможных значений обычно не приводят к изменению версии. Это распространяется на все данные, предоставляемые клиентами. Также это относится, например, к атрибуту
passwordType , набор поддерживаемых форматов которого может меняться с течением времени без изменения версии в JSON
|
Таблица 51.3. Атрибуты событий аутентификации
Атрибут
|
Значение
|
---|---|
authDescription
|
Тип аутентификации:
|
becameAccount
|
Имя учетной записи, под которой выполнен вход (может не совпадать со значением, предоставленным клиентом)
|
becameDomain
|
Имя домена, в который произведён вход
|
becameSid
|
Идентификатор безопасности (SID) аутентифицированной учетной записи
|
clientAccount
|
Имя учётной записи, предоставленное клиентом
|
clientDomain
|
Имя домена, предоставленное клиентом
|
duration
|
Время (в микросекундах), в течение которого выполнялась аутентификация
|
eventId
|
Идентификатор события Windows, указывающий в общих чертах, что произошло:
|
localAddress
|
Адрес сервера и используемый порт
|
logonId
|
Случайный 64-битный идентификатор, помогающий отслеживать события входа в систему на разных этапах
|
logonType
|
Тип входа в Windows. Для Samba один из:
|
mappedAccount
|
Имя учетной записи клиента, преобразованное в имя учетной записи Альт Домен
|
mappedDomain
|
Имя домена клиента, преобразованное в доменное имя Альт Домен
|
netlogonComputer
|
Имя компьютера, заявленное при аутентификации через NETLOGON RPC
|
netlogonNegotiateFlags
|
Флаги NETLOGON, согласуемые в процессе взаимодействия клиента и сервера
|
netlogonSecureChannelType
|
Тип безопасного канала, используемого для входа по протоколу NETLOGON
|
netlogonTrustAccount
|
Учетная запись, используемая для аутентификации по протоколу NETLOGON
|
netlogonTrustAccountSid
|
Идентификатор безопасности (SID) учётной записи, используемый для аутентификации по протоколу NETLOGON
|
passwordType
|
Алгоритм/протокол пароля (например, «HMAC-SHA256», «NTLMv2», «arcfour-hmac-md5»)
|
remoteAddress
|
Заявленный адрес (и порт) удаленного клиента
|
serviceDescription
|
Тип службы (например, «LDAP», «SMB2», «NETLOGON», «Kerberos KDC»)
|
status
|
Сообщение NT STATUS. Для успешной аутентификации это будет «NT_STATUS_OK». Неудачная аутентификация может иметь значение «NT_STATUS_OK», если аутентификация не удалась после регистрации этого сообщения, но обычно имеет код ошибки.
Некоторые типы сообщений при неудачной аутентификации:
|
version
|
См. описание в таблице Общие атрибуты.
Текущая версия:
{"major": 1, "minor": 3} |
workstation
|
Заявленное имя клиентской рабочей станции
|
{"timestamp": "2024-05-29T14:39:06.426725+0200", "type": "Authentication", "Authentication": {"version": {"major": 1, "minor": 3}, "eventId": 4624, "logonId": "11424f6685e647f9", "logonType": 3, "status": "NT_STATUS_OK", "localAddress": null, "remoteAddress": "ipv4:192.168.0.135:55134", "serviceDescription": "Kerberos KDC", "authDescription": "ENC-TS Pre-authentication", "clientDomain": null, "clientAccount": "ivanov\\@TEST@TEST.ALT", "workstation": null, "becameAccount": "ivanov", "becameDomain": "TEST", "becameSid": "S-1-5-21-578923263-1107570656-1287136478-1103", "mappedAccount": "ivanov", "mappedDomain": "TEST", "netlogonComputer": null, "netlogonTrustAccount": null, "netlogonNegotiateFlags": "0x00000000", "netlogonSecureChannelType": 0, "netlogonTrustAccountSid": null, "passwordType": "aes256-cts-hmac-sha1-96", "clientPolicyAccessCheck": null, "serverPolicyAccessCheck": null, "duration": 5421}}
Таблица 51.4. Успешные события авторизации
Атрибут
|
Значение
|
---|---|
account
|
Имя авторизуемой учетной записи
|
accountFlags
|
Битовое поле атрибутов учетной записи
|
authType
|
Строка, описывающая тип авторизации (например, «krb5», «NTLMSSP», «simple bind»)
|
domain
|
Имя домена
|
localAddress
|
Адрес сервера и используемый порт
|
logonServer
|
Сервер, на котором выполнена аутентификация
|
remoteAddress
|
Видимый адрес клиента
|
serviceDescription
|
Тип службы (например, «LDAP», «SMB2», «DCE/RPC»)
|
sessionId
|
Уникальный идентификатор сессии (GUID)
|
sid
|
Идентификатор безопасности (SID) авторизуемой учетной записи
|
transportProtection
|
Тип защиты, используемой в канале (например, «SMB», «TLS», «SEAL», «NONE»)
|
version
|
См. описание в таблице Общие атрибуты.
Текущая версия:
{"major": 1, "minor": 2} |
{"timestamp": "2024-05-29T15:32:39.282334+0200", "type": "Authorization", "Authorization": {"version": {"major": 1, "minor": 2}, "localAddress": "ipv4:127.0.0.1:389", "remoteAddress": "ipv4:127.0.0.1:43350", "serviceDescription": "LDAP", "authType": "simple bind", "domain": "NT AUTHORITY", "account": "ANONYMOUS LOGON", "sid": "S-1-5-7", "sessionId": "5accdd86-4c6e-4bd2-8ab1-7e95f641ecf2", "logonServer": "DC1", "transportProtection": "NONE", "accountFlags": "0x00000010", "clientPolicyAccessCheck": null, "serverPolicyAccessCheck": null}}
Таблица 51.5. События dsdbChange
Атрибут
|
Значение
|
---|---|
attributes
|
Список изменяемых атрибутов
|
dn
|
Уникальное составное имя (DN) изменяемого объекта
|
operation
|
Операция LDAP, соответствующая выполняемому действию по изменению данных:
|
performedAsSystem
|
Признак системного или пользовательского действия:
|
remoteAddress
|
Удаленный адрес пользователя, инициировавшего операцию
|
sessionId
|
Уникальный идентификатор (GUID) сессии аутентификации
|
status
|
Строка, указывающая на успешное завершение действия или невозможность его выполнения по той или иной причине; выводимая информация соответствует кодам ответа LDAP, которые фиксируются в атрибуте
statusCode .
Примеры значений:
|
Числовой код, соответствующий статусу в атрибуте
status
|
В общем случае в качестве значения атрибута приводится код ответа LDAP в соответствии с RFC 4511
|
transactionId
|
Уникальный идентификатор (GUID) транзакции, в рамках которой выполняется операция (если операция является частью транзакции)
|
userSid
|
Идентификатор безопасности (SID) пользователя, инициировавшего операцию
|
version
|
См. описание в таблице Общие атрибуты.
Текущая версия:
{"major": 1, "minor": 2} |
attributes
может рассматриваться в качестве аналога описания изменения в формате LDIF.
"dsdbChange": { "operation": "Modify", "dn": "@SAMBA_DSDB", "attributes": { "backupDate": {"actions": [ {"action": "add", "values": [ {"value": "2024-05-29T15:32:39.282334+0200"} ] } ] }}}описывает изменение, выполненное этим LDIF:
dn: @SAMBA_DSDB changetype: modify add: backupDate backupDate: 2024-05-29T15:32:39.282334+0200
redacted: true
.
truncated: true
, например:
"values": [ {truncated: true, "value": "It was the best of times, it was the worst of times, it was the age…" } ]
{"timestamp": "2024-05-29T09:52:14.813697+0200", "type": "dsdbChange", "dsdbChange": {"version": {"major": 1, "minor": 0}, "statusCode": 0, "status": "Success", "operation": "Modify", "remoteAddress": "ipv6:fd47:d11e:43c1:0:a00:27ff:fe9d:4de0:38500", "performedAsSystem": false, "userSid": "S-1-5-21-578923263-1107570656-1287136478-500", "dn": "CN=Марков Кирилл,CN=Users,DC=test,DC=alt", "transactionId": "ce759566-8bf9-46ce-95a1-0d632232a220", "sessionId": "48c760f6-6cdc-4fba-b16d-1689f2cfad33", "attributes": {"unicodePwd": {"actions": [{"action": "replace", "redacted": true}]}}}}
transactionId
.
Таблица 51.6. Атрибуты событий, связанных с транзакциями
Атрибут
|
Значение
|
---|---|
action
|
Текущий этап транзакции:
|
duration
|
Продолжительность транзакции в микросекундах (до момента записи этого поля)
|
transactionId
|
Уникальный идентификатор (GUID) транзакции
|
version
|
См. описание в таблице Общие атрибуты.
Текущая версия:
{"major": 1, "minor": 0} |
{"timestamp": "2024-05-29T20:41:36.895027+0200", "type": "dsdbTransaction", "dsdbTransaction": {"version": {"major": 1, "minor": 0}, "action": "commit", "transactionId": "a89149be-5c19-42c2-bf08-94ddc5b0eb78", "duration": 8819}} {"timestamp": "2024-05-29T20:41:37.691707+0200", "type": "dsdbTransaction", "dsdbTransaction": {"version": {"major": 1, "minor": 0}, "action": "commit", "transactionId": "92a8db3a-94d4-4ac5-b929-b1e4344b12e3", "duration": 5697}}
Таблица 51.7. Атрибуты событий, связанных с изменением пароля
Атрибут
|
Значение
|
---|---|
action
|
Тип операции:
|
dn
|
Уникальное составное имя (DN) пользователя, пароль которого изменяется или сбрасывается
|
eventId
|
Идентификатор события Windows:
|
remoteAddress
|
Удаленный адрес пользователя, выполняющего операцию
|
sessionId
|
Идентификатор сессии DSDB
|
status
|
Текст ошибки
|
statusCode
|
Код ошибки
|
transactionId
|
Уникальный идентификатор (GUID) транзакции, в рамках которой выполняется операция (если операция является частью транзакции)
|
userSid
|
Идентификатор безопасности (SID) пользователя, инициировавшего операцию
|
version
|
См. описание в таблице Общие атрибуты.
Текущая версия:
{"major": 1, "minor": 1} |
{"timestamp": "2024-05-29T15:28:18.876663+0200", "type": "passwordChange", "passwordChange": {"version": {"major": 1, "minor": 1}, "eventId": 4724, "statusCode": 0, "status": "Success", "remoteAddress": "ipv6:fd47:d11e:43c1:0:a00:27ff:fe9d:4de0:35534", "userSid": "S-1-5-21-578923263-1107570656-1287136478-500", "dn": "CN=Орлов Игорь,CN=Users,DC=test,DC=alt", "action": "Reset", "transactionId": "d7456cd1-6f32-4575-b530-dc22a34bdc6a", "sessionId": "ce6866f6-43ea-4665-a896-0d10bd3194e1"}}
Таблица 51.8. Атрибуты событий, связанных с изменением группы
Атрибут
|
Значение
|
---|---|
action
|
Тип операции:
|
eventId
|
Идентификатор события Windows:
|
group
|
Уникальное составное имя (DN) группы
|
remoteAddress
|
Удаленный адрес пользователя, выполняющего операцию
|
sessionId
|
Идентификатор сессии DSDB
|
status
|
Текст ошибки
|
Числовой код, соответствующий статусу в атрибуте
status
|
В общем случае в качестве значения атрибута приводится код ответа LDAP в соответствии с RFC 4511
|
transactionId
|
Уникальный идентификатор (GUID) транзакции, в рамках которой выполняется операция (если операция является частью транзакции)
|
user
|
Уникальное составное имя (DN) пользователя, членство в группе которого изменяется в рамках операции
|
userSid
|
Идентификатор безопасности (SID) пользователя, инициировавшего операцию
|
version
|
См. описание в таблице Общие атрибуты.
Текущая версия:
{"major": 1, "minor": 1} |
{"timestamp": "2024-05-29T15:20:19.634972+0200", "type": "groupChange", "groupChange": {"version": {"major": 1, "minor": 1}, "eventId": 4728, "statusCode": 0, "status": "Success", "action": "Added", "remoteAddress": "ipv6:fd47:d11e:43c1:0:a00:27ff:fe9d:4de0:59778", "userSid": "S-1-5-21-578923263-1107570656-1287136478-500", "group": "CN=testgroup,CN=Users,DC=test,DC=alt", "transactionId": "28372270-093c-4bca-af45-ae3e93b71eda", "sessionId": "9518687d-8ad1-4c2c-810c-8cc18c2943f7", "user": "CN=Марков Кирилл,CN=Users,DC=test,DC=alt"}}
# rpcclient -U "" -c enumdomusers dc1.test.alt
/etc/samba/smb.conf
:
[global] restrict anonymous = 2
dSHeuristics
:
# samba-tool forest directory_service dsheuristics 0000000
global
файла /etc/samba/smb.conf
:
[global] disable netbios = yes smb ports = 445
global
файла /etc/samba/smb.conf
:
[global] printcap name = /dev/null load printers = no disable spoolss = yes printing = bsd
global
файла /etc/samba/smb.conf
:
[global] ntlm auth = mschapv2-and-ntlmv2-only
global
файла /etc/samba/smb.conf
строку:
[global] password hash userPassword schemes = CryptSHA256 CryptSHA512
GlobalQueryBlockList
перечислены эти две записи DNS, для предотвращения создания таких записей и перенаправления сетевого трафика неавторизованным объектом, действующим в локальной сети. Протокол автоматического обнаружения веб-прокси (WPAD) по умолчанию настроен в браузерах WPAD, в частности в браузерах Internet Explorer.
#samba-tool dns add `hostname -s` `hostname -d` wpad A 127.0.0.1 -P
#samba-tool dns add `hostname -s` `hostname -d` isatap A 127.0.0.1 -P
global
файла /etc/samba/smb.conf
строку:
[global] rpc server dynamic port range = 50000-55000
Примечание
/etc/samba/smb.conf
строки:
[global] ... full_audit:failure = none full_audit:success = pwrite write renameat full_audit:prefix = IP=%I|USER=%u|MACHINE=%m|VOLUME=%S full_audit:facility = local7 full_audit:priority = NOTICE ... [sysvol] ... vfs objects = dfs_samba4, acl_xattr, full_audit ... [netlogon] ... vfs objects = dfs_samba4, acl_xattr, full_audit
# apt-get install rsyslog-classic
/etc/rsyslog.d/all.conf
, в котором прописать протокол (@@ — TCP, @ — UDP) и адрес доставки сообщений:
*.* @@192.168.0.111:514
/etc/rsyslog.d/00_common.conf
раскомментировать строки:
#для udp module(load="imudp") input(type="imudp" port="514") #для tcp module(load="imtcp") input(type="imtcp" port="514")и создать свой шаблон для логов
/etc/rsyslog.d/myrules.conf
:
$template remote-incoming-logs,"/var/log/%HOSTNAME/%PROGRAMNAME.log" *.* ?remote-incoming-logs
global
файла /etc/samba/smb.conf
добавить строку:
[global] log level = 1 auth_json_audit:3@/var/log/samba/samba_audit.log
/etc/rsyslog.d/send_samba.conf
:
module(load="imfile" PollingInterval="10") #needs to be done just once input(type="imfile" File="/var/log/samba/samba_audit.log" Tag="samba_auth" Severity="info" Facility="auth") if ($syslogtag == "samba_auth") then { action(type="omfwd" target="dc1.test.alt" port="514" protocol="tcp" action.resumeRetryCount="100" queue.type="linkedList" queue.size="10000") }
global
файла /etc/samba/smb.conf
добавить строку:
[global] log level = 1 auth_json_audit:3@/var/log/samba/samba_audit.log
/etc/rsyslog.d/recv_samba.conf
:
$ModLoad imtcp $InputTCPServerRun 514 if ($syslogtag == "samba_auth") then /var/log/samba/audit_auth.log
smb.conf
для:
Примечание
[global] ... idmap config * : backend = tdb idmap config * : range = 10000-999999 idmap config AD-DOM:backend = rid idmap config AD-DOM:range = 2000000-2999999 idmap config TRUST-DOM:backend = rid idmap config TRUST-DOM:range = 4000000-4999999
Примечание
Важно
2^31 - 1 = 2147483647
[global]
в файле smb.conf
можно задать:
idmap config * : backend = tdb idmap config * : range = 10000-999999Для получения более подробной информации см. Использование tdb
[global]
в файле smb.conf
можно задать:
idmap config * : backend = autorid idmap config * : range = 10000-999999Для получения более подробной информации см. Использование autorid
Примечание
Таблица 53.1. Атрибуты из AD, которые считывает бэкенд ad
Имя атрибута AD
|
Тип объекта
|
Сопоставление
|
---|---|---|
sAMAccountName
|
Пользователь и группа
|
Имя пользователя или группы в зависимости от объекта
|
uidNumber
|
Пользователь
|
Идентификатор пользователя (UID)
|
gidNumber
|
Группа
|
Идентификатор группы (GID)
|
loginShell
|
Пользователь
|
Путь к командной строке пользователя
|
smb.conf
. Объекты, идентификаторы которых находятся за пределами диапазона, не будут доступны на клиенте;
smb.conf
.
idmap config * : backend = tdb idmap config * : range = 3000-7999 idmap config TEST : backend = ad idmap config TEST : range = 10000-999999 idmap config TEST : schema_mode = rfc2307
idmap config DOMAIN : unix_nss_info = yes
template shell = /bin/bash template homedir = /home/%U
S-1-5-21-XXXXXXXXXX-YYYYYYYYYY-ZZZZZZZZZZ-RIDГде:
idmap config DOMAIN : backend = rid idmap config DOMAIN : range = 10000-999999Samba берёт RID из SID и добавляет его к началу диапазона range. Например, для пользователя с SID S-1-5-21-XXXXXXXXXX-YYYYYYYYYY-ZZZZZZZZZZ-1000, UID будет вычислен как 10000 + 1000 = 11000.
idmap config DOMAIN : range
. Samba не будет сопоставлять пользователей или группы с более низким или более высоким RID, чем указано в этом параметре.
Примечание
Важно
idmap config * : backend = tdb idmap config * : range = 10000-999999 idmap config DOMAIN : backend = rid idmap config DOMAIN : range = 2000000-2999999
Примечание
smb.conf
.
idmap config * : backend = autorid idmap config * : range = 100000-9999999
Примечание
idmap config * : rangesize = 200000
Примечание
idmap config * : range
.
Примечание
Таблица 54.1. Основные инструменты командной строки
Утилита
|
Описание
|
---|---|
Основная утилита управления Samba
|
|
Позволяет получить информацию от демона winbindd
|
|
Инструмент администрирования Samba и удаленных серверов CIFS
|
|
Инструмент для выполнения действий в домене Active Directory
|
|
Утилита для поиска информации в LDAP
|
|
Проверка корректности содержимого основного файла конфигурации Samba —
/etc/samba/smb.conf
|
samba-tool
.
Таблица 54.2. Основные команды samba-tool
Команда
|
Описание
|
---|---|
computer
|
Управление учетными записями компьютеров
|
contact
|
Управление контактами
|
dbcheck
|
Проверка локальной базы данных домена на наличие ошибок
|
delegation
|
Управление делегированием
|
dns
|
Управление параметрами доменной службы DNS
|
domain
|
Управление параметрами домена
|
drs
|
Управление службой репликации каталогов (Directory Replication Services, DRS)
|
dsacl
|
Управление списками контроля доступа DS
|
forest
|
Управление конфигурацией леса
|
fsmo
|
Управление ролями (Flexible Single Master Operations, FSMO)
|
gpo
|
Управление групповыми политиками
|
group
|
Управление группами
|
ldapcmp
|
Сравнение двух баз данных ldap
|
ntacl
|
Управление списками контроля доступа ACL
|
processes
|
Вывод списка процессов
|
ou
|
Управление организационными подразделениями (OU)
|
rodc
|
Управление контроллером домена (Read-Only Domain Controller, RODC)
|
schema
|
Управление и запрос схемы
|
sites
|
Управление сайтами
|
spn
|
Управление службой принципалов (Service Principal Name, SPN)
|
testparm
|
Проверка конфигурационного файла на корректность синтаксиса
|
time
|
Получение показаний текущего времени сервера
|
user
|
Управление пользователями
|
visualize
|
Графическое представление состояния сети Samba
|
man samba-tool
).
$ samba-tool fsmo --help
# samba-tool gpo listall
GPO : {31B2F340-016D-11D2-945F-00C04FB984F9}
display name : Default Domain Policy
path : \\test.alt\sysvol\test.alt\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}
dn : CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=test,DC=alt
version : 0
flags : NONE
GPO : {FE6268E4-FDEB-4DCA-94E8-BB1170C66F45}
display name : scripts
path : \\test.alt\sysvol\test.alt\Policies\{FE6268E4-FDEB-4DCA-94E8-BB1170C66F45}
dn : CN={FE6268E4-FDEB-4DCA-94E8-BB1170C66F45},CN=Policies,CN=System,DC=test,DC=alt
version : 65536
flags : NONE
GPO : {6AC1786C-016F-11D2-945F-00C04FB984F9}
display name : Default Domain Controllers Policy
path : \\test.alt\sysvol\test.alt\Policies\{6AC1786C-016F-11D2-945F-00C04FB984F9}
dn : CN={6AC1786C-016F-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=test,DC=alt
version : 0
flags : NONE
GPO : {44F1A3E9-BD0D-44D7-AC1D-CEEF2817C573}
display name : Общие каталоги
path : \\test.alt\sysvol\test.alt\Policies\{44F1A3E9-BD0D-44D7-AC1D-CEEF2817C573}
dn : CN={44F1A3E9-BD0D-44D7-AC1D-CEEF2817C573},CN=Policies,CN=System,DC=test,DC=alt
version : 0
flags : NONE
# samba-tool gpo listcontainers {44F1A3E9-BD0D-44D7-AC1D-CEEF2817C573}
Container(s) using GPO {44F1A3E9-BD0D-44D7-AC1D-CEEF2817C573}
DN: OU=OU,DC=test,DC=alt
DN: OU=KDE,DC=test,DC=alt
# samba-tool gpo getlink OU=OU,DC=test,DC=alt
GPO(s) linked to DN OU=OU,DC=test,DC=alt
GPO : {96D5897A-CEFB-4A1B-90AF-5D83707130C4}
Name : Файлы
Options : NONE
GPO : {A12547D7-2FFA-4E37-9382-D6767489E3DF}
Name : kde
Options : NONE
GPO : {75E65DF7-56A7-48E1-A393-F5FFAA1010FD}
Name : Control_ping
Options : NONE
GPO : {FE6268E4-FDEB-4DCA-94E8-BB1170C66F45}
Name : scripts
Options : NONE
GPO : {44F1A3E9-BD0D-44D7-AC1D-CEEF2817C573}
Name : Общие каталоги
Options : NONE
GPO : {0CCFA74C-57F5-42B5-98E2-007D4A59C4C4}
Name : firefox
Options : NONE
GPO : {2CF4EB19-343E-448A-BBBC-A9EC2F7C22E9}
Name : Установка пакетов
Options : NONE
wbinfo
создает запросы и возвращает информацию к (от) демона winbindd(8).
Таблица 54.3. Параметры команды wbinfo
Параметр
|
Описание
|
Пример
|
---|---|---|
-a|--authenticate username%password
|
Попытаться аутентифицировать пользователя через winbindd(8).
Проверяет два метода аутентификации: plaintext password (применяется при входе пользователя в систему локально), challenge/response password (использует NTLM или Kerberos)
|
$
|
--allocate-gid
|
Получить новый GID из idmap
|
|
--allocate-uid
|
Получить новый UID из idmap
|
|
--all-domains
|
Вывести список всех доменов (доверенных и собственный)
|
$
|
-c|--change-secret
|
Изменить пароль доверительной учетной записи. Может использоваться вместе с доменом для изменения паролей учетных записей междоменного доверия
|
|
--ccache-save <имя_пользователя>%<пароль>
|
Сохранить имя пользователя и пароль для ccache
|
|
--change-user-password <имя_пользователя>
|
Изменить пароль пользователя (будет запрошен старый и новый пароль)
|
#
|
--dc-info <домен>
|
Вывести текущий контроллер домена для домена
|
$
|
--domain <домен>
|
Определяет домен, в котором будут выполняться любые указанные операции
|
|
-D|--domain-info <домен>
|
Показать информацию об указанном домене
|
$
|
--dsgetdcname <домен>
|
Найти DC для домена
|
$
|
--gid-info <gid>
|
Получить информацию о группе по gid
|
$
|
--group-info <группа>
|
Получить информацию о группе по имени группы
|
$
|
-g|--domain-groups
|
Вывести список доменных групп
|
$
|
--get-auth-user
|
Эта функция была перенесена в утилиту
net (см. net help getauthuser )
|
|
--getdcname <домен>
|
Вывести имя контроллера домена для указанного домена
|
$
|
-G|--gid-to-sid <gid>
|
Преобразовать идентификатор группы UNIX в SID Windows NT. Если указанный gid не относится к диапазону gid idmap, операция завершится ошибкой
|
$
|
-i|--user-info <имя_пользователя>
|
Вывести информацию о пользователе
|
$
|
-I|--WINS-by-ip ip
|
Вывести NetBIOS-имя, связанное с IP-адресом
|
$
|
-K|--krb5auth <имя_пользователя>%<пароль>
|
Попытаться аутентифицировать пользователя через Kerberos
|
$
|
--krb5ccname KRB5CCNAME
|
Запросить определенный тип кеша учетных данных Kerberos, используемый для аутентификации
|
|
--lanman
|
Использовать криптографию Lanman для аутентификации пользователей
|
|
--logoff
|
Выйти из системы
|
|
--logoff-uid UID
|
Определяет идентификатор пользователя, используемый во время запроса на выход из системы
|
|
--logoff-user <имя_пользователя>
|
Определяет имя пользователя, используемое во время запроса на выход из системы
|
|
--lookup-sids SID1,SID2...
|
Поиск SID
|
$
|
-m|--trusted-domains
|
Вывести список доверенных доменов
|
$
|
-n|--name-to-sid <имя>
|
Вывести SID, связанный с указанным именем. Если домен не указан, используется домен, указанный в параметре
workgroup smb.conf
|
$
|
-N|--WINS-by-name <name>
|
Вывести IP-адрес, связанный с именем NetBIOS, указанным в параметре name
|
$
|
--ntlmv1
|
Использовать криптографию NTLMv1 для аутентификации пользователей
|
|
--ntlmv2
|
Использовать криптографию NTLMv2 для аутентификации пользователей
|
|
--online-status <домен>
|
Показать, поддерживает ли winbind в настоящее время активное соединение или нет. Если домен не указан, будет выведен статус текущего домена
|
$
|
--own-domain
|
Вывести собственный домен
|
$
|
--pam-logon <имя_пользователя>%<пароль>
|
Попытаться аутентифицировать пользователя так же, как это сделал бы pam_winbind
|
$
|
-p|--ping
|
Проверяет запущен ли winbindd(8)
|
$
|
-P|--ping-dc
|
Проверить безопасное соединение с контроллером домена
|
$
|
-r|--user-groups <имя_пользователя>
|
Получить список идентификаторов групп, к которым принадлежит пользователь. Доступно только при наличии пользователя на контроллере домена
|
$
|
-R|--lookup-rids rid1, rid2, rid3..
|
Преобразовать RID в имена
|
|
--remove-gid-mapping GID,SID
|
Удалить существующее сопоставление GID и SID из базы данных
|
|
--remove-uid-mapping UID,SID
|
Удалить существующее сопоставление UID и SID из базы данных
|
|
-s|--sid-to-name sid
|
Преобразовать SID в имя
|
$
|
--separator
|
Вывести активный разделитель winbind
|
$
|
--sequence
|
Команда устарела, вместо неё следует использовать параметр
--online-status
|
|
--set-auth-user <имя_пользователя>%<пароль>
|
Эта функция была перенесена в утилиту
net (см. net help setauthuser )
|
|
--set-gid-mapping GID,SID
|
Создать сопоставление GID и SID в базе данных
|
|
--set-uid-mapping UID,SID
|
Создать сопоставление UID и SID в базе данных
|
|
-S|--sid-to-uid sid
|
Преобразовать SID в идентификатор пользователя
|
$
|
--sid-aliases sid
|
Получить псевдонимы SID для заданного SID
|
|
--sid-to-fullname sid
|
Преобразовать SID в полное имя пользователя (ДОМЕН\имя пользователя)
|
$
|
--sids-to-unix-ids sid1,sid2,sid3...
|
Преобразовать SID в Unix ID
|
$
|
-t|--check-secret
|
Проверить, что доверительная учетная запись рабочей станции, созданная при добавлении сервера Samba в домен Windows NT, работает. Может использоваться вместе с доменом для проверки учетных записей междоменного доверия
|
|
-u|--domain-users
|
Вывести список доменных пользователей
|
$
|
--uid-info uid
|
Получить информацию о пользователе по идентификатору
|
$
|
--usage
|
Вывести краткую справку о программе
|
|
--user-domgroups sid
|
Вывести группы пользователей домена
|
$
|
--user-sidinfo sid
|
Получить информацию о пользователе по sid
|
$
|
--user-sids sid
|
Получить SID групп пользователя
|
$
|
-U|--uid-to-sid uid
|
Преобразовать идентификатор пользователя UNIX в SID
|
$
|
-Y|--sid-to-gid sid
|
Преобразовать SID в идентификатор группы UNIX
|
$
|
net
— инструмент администрирования Samba и удаленных серверов CIFS. Синтаксис:
net <протокол> <функция> <дополнительные_параметры> <параметры_цели>где <протокол> — протокол, используемый при выполнении команды. Возможные значения: ads (Active Directory), rap (Win9x/NT3) или rpc (WindowsNT4/2000/2003/2008/2012). Если протокол не указан,
net
пытается определить его автоматически.
Таблица 54.4. Основные команды net ads
Команда
|
Описание
|
---|---|
info
|
Вывод информации о домене
|
join
|
Присоединение машины к домену
|
testjoin
|
Проверка, действителен ли пароль учетной записи компьютера
|
leave
|
Удалить локальную машину из домена AD
|
status
|
Вывод информации об учетной записи компьютера
|
user
|
Список/изменение пользователей
|
group
|
Список/изменение групп
|
dns
|
Выполнить динамическое обновление DNS
|
password
|
Изменить пароль пользователей
|
changetrustpw
|
Изменить пароль доверительной учетной записи
|
printer
|
Список/изменение записей принтера
|
search
|
Выполнить поиск LDAP с использованием фильтра
|
dn
|
Выполнить поиск LDAP по DN
|
sid
|
Выполнить поиск LDAP по SID
|
workgroup
|
Показать имя рабочей группы
|
lookup
|
Найти контроллер домена AD с помощью поиска CLDAP
|
keytab
|
Управление локальным файлом keytab
|
spnset
|
Управление именами участников-служб (SPN)
|
gpo
|
Управление объектами групповой политики
|
kerberos
|
Управление keytab Kerberos
|
enctypes
|
Список/изменение enctypes
|
man net
).
# net time --help
# net ads info
LDAP server: 192.168.0.132
LDAP server name: dc1.test.alt
Realm: TEST.ALT
Bind Path: dc=TEST,dc=ALT
LDAP port: 389
Server time: Ср, 27 мар 2024 10:36:51 EET
KDC server: 192.168.0.132
Server time offset: 2
Last machine account password change: Ср, 20 мар 2024 11:13:27 EET
# net ads status -U administrator
adcli
— инструмент для выполнения действий в домене Active Directory.
Таблица 54.5. Основные команды adcli
Команда
|
Описание
|
---|---|
info домен
|
Вывести информацию о домене
|
join домен
|
Присоединить данную машину к домену (создает учетную запись компьютера в домене и настраивает keytab для этой машины. Не настраивает службу аутентификации, например, sssd)
|
update
|
Обновляет пароль учетной записи компьютера на контроллере домена для локальной машины, записывает новые ключи в keytab и удаляет старые ключи
|
testjoin
|
Проверить, действителен ли пароль учетной записи компьютера
|
create-user [--domain=домен] пользователь
|
Создать учетную запись пользователя
|
delete-user [--domain=домен] пользователь
|
Удалить учетную запись пользователя
|
passwd-user [--domain=домен] пользователь
|
Установить (повторно) пароль пользователя
|
create-group [--domain=домен] группа
|
Создать группу
|
delete-group [--domain=домен] группа
|
Удалить группу
|
add-member [--domain=домен] группа пользователь или компьютер…
|
Добавить пользователей в группу
|
remove-member [--domain=домен] группа пользователь…
|
Удалить пользователей из группы
|
preset-computer [--domain=домен] компьютер…
|
Предустановить учетные записи компьютеров (предварительно создает одну или несколько учетных записей компьютеров в домене, чтобы позже компьютеры могли использовать их при присоединении к домену. При этом, машины могут присоединяться с помощью одноразового пароля или автоматически без пароля)
|
reset-computer [--domain=домен] компьютер
|
Сбросить учетную запись компьютера (если соответствующая машина присоединена к домену, её членство будет нарушено)
|
delete-computer [--domain=домен] компьютер
|
Удалить учетную запись компьютера
|
show-computer [--domain=домен] компьютер
|
Показать атрибуты учетной записи компьютера, хранящиеся в AD
|
create-msa [--domain=домен]
|
Создать управляемую учетную запись службы (MSA) в заданном домене AD (это бывает нужно, если компьютер не должен присоединяться к домену Active Directory, но к нему необходим LDAP доступ)
|
man adcli
).
# adcli testjoin --help
# adcli info test.alt
[domain]
domain-name = test.alt
domain-short = TEST
domain-forest = test.alt
domain-controller = dc1.test.alt
domain-controller-site = Default-First-Site-Name
domain-controller-flags = pdc gc ldap ds kdc timeserv closest writable good-timeserv full-secret
domain-controller-usable = yes
domain-controllers = dc1.test.alt dc2.test.alt
[computer]
computer-site = Default-First-Site-Name
# adcli show-computer -D test.alt win2012
Password for Administrator@TEST.ALT:
sAMAccountName:
WIN2012$
userPrincipalName:
- not set -
msDS-KeyVersionNumber:
1
msDS-supportedEncryptionTypes:
28
dNSHostName:
win2012.test.alt
servicePrincipalName:
HOST/win2012.test.alt
RestrictedKrbHost/win2012.test.alt
HOST/WIN2012
RestrictedKrbHost/WIN2012
Dfsr-12F9A27C-BF97-4787-9364-D31B6C55EB04/win2012.test.alt
operatingSystem:
Windows Server 2012 R2 Standard
operatingSystemVersion:
6.3 (9600)
operatingSystemServicePack:
- not set -
pwdLastSet:
133294743593838200
userAccountControl:
4096
description:
- not set -
# adcli create-group -D test.alt -O OU=OU,dc=test,dc=alt testldap
Password for Administrator@TEST.ALT:
ldapsearch
— утилита для поиска информации в LDAP. Синтаксис:
ldapsearch <параметры> <фильтр> <атрибуты>
ldapsearch
открывает соединение с сервером LDAP, подключается к нему и выполняет поиск с помощью фильтра.
ldapsearch
найдет одну или несколько записей, то значения указанных атрибутов этих записей будут переданы в стандартный поток вывода. Если в этом списке указан знак *, возвращаются все пользовательские атрибуты. Если в этом списке указан знак +, возвращаются все операционные атрибуты. Если атрибуты не указаны, то возвращаются все пользовательские атрибуты.
-L
.
Таблица 54.6. Параметры команды ldapsearch
Параметр
|
Описание
|
---|---|
Параметры поиска
|
|
-a {never|always|search|find}
|
Задает способ преобразования псевдонимов. Может принимать значения: never (по умолчанию), always, search или find, указывающие, соответственно, что псевдонимы не преобразуются, преобразуются всегда, преобразуются при поиске, либо преобразуются только при определении базового объекта для поиска
|
-A
|
Получить только атрибуты (без значений)
|
-b basedn
|
Позволяет переопределить заданную по умолчанию начальную точку поиска
|
-c
|
Режим продолжения операции (не останавливать поиск при ошибках)
|
-E [!]ext[=extparam]
|
Указывает расширения поиска. Знак '!' обозначает критичность расширения.
Общие расширения:
|
-f file
|
Считать серию строк из файла
file и выполнить по одному поиску LDAP для каждой строки. В этом случае заданный в командной строке фильтр filter интерпретируется как шаблон, в котором первое и только первое вхождение %s заменяется строкой из файла file . Любые другие вхождения символа % в шаблоне будут рассматриваться как ошибка. Если требуется, чтобы в поисковом фильтре присутствовал символ %, он должен быть закодирован как \25 (смотрите RFC 4515). Если в качестве значения file указан символ «-», то строки считываются со стандартного ввода
|
-F prefix
|
URL-префикс для временных файлов (по умолчанию: file://path, где
path либо /tmp/.private/<user> , либо значение, указанное в параметре -T )
|
-l limit
|
Ограничение на время поиска (в секундах). Значение 0 (ноль) или none означает, что ограничений нет. Значение max означает максимальное допустимое протоколом значение (целое число)
|
-L[LL]
|
Управление выводом результатов поиска в формате обмена данными LDAP (LDAP Data Interchange Format):
-L — вывести ответы в формате LDIFv1, -LL — отключить вывод комментариев, -LLL — отключить вывод версии LDIF
|
-M[M]
|
Включить элемент управления Manage DSA IT.
-MM делает этот элемент управления критичным
|
-P {2|3}
|
Версия протокола LDAP (по умолчанию 3)
|
-s {base|one|sub|children}
|
Задает область поиска. Может принимать одно из следующих значений: base, one, sub (по умолчанию) или children, что означает поиск только по базовому объекту, на одном уровне, по всему поддереву и по дочерним записям соответственно
|
-S attr
|
Отсортировать возвращаемые записи по атрибуту
attr . По умолчанию возвращаемые записи не сортируются. Если в качестве attr задана строка нулевой длины (""), записи сортируются по компонентам их уникального имени Distinguished Name. По умолчанию ldapsearch выводит записи по мере их получения. При использовании параметра -S все данные сначала получаются, потом сортируются, потом выводятся
|
-t[t]
|
При указании одного
-t полученные непечатаемые значения записываются в набор временных файлов (полезно при работе со значениями, содержащими несимвольные данные, такими как jpegPhoto или audio). При указании второго -t все полученные значения записываются в файлы
|
-T path
|
Временные файлы записываются в указанный в
path каталог (по умолчанию /tmp/.private/<user> )
|
-u
|
Включить в вывод форму удобного для пользователя имени (User Friendly Name, UFN) уникального имени (Distinguished Name, DN)
|
-z limit
|
Ограничить количество возвращаемых в результате поиска записей значением
limit . Значение 0 (ноль) или none означает, что ограничений нет. Значение max означает максимальное допустимое протоколом значение (целое число)
|
Общие параметры
|
|
-d debuglevel
|
Установить уровень отладки LDAP
|
-D binddn
|
Использовать указанное в
binddn уникальное имя Distinguished Name при подсоединении к каталогу LDAP. При SASL-подсоединениях сервер будет игнорировать это значение
|
-e [!]ext[=extparam]
|
Указывает общие расширения. Знак '!' обозначает критичность расширения.
Общие расширения:
|
-h host
|
Сервер LDAP
|
-H URI
|
Указывает URI (возможно, несколько), ссылающийся на LDAP-сервер (серверы). В URI допускаются поля: протокол/хост/порт
|
-I
|
Использовать интерактивный режим SASL
|
-n
|
Демонстрируется, что будет сделано, но реальный поиск не выполняется. Используется для отладки совместно с параметром
-v
|
-N
|
Не использовать обратное разрешение DNS для получения канонического имени хоста SASL
|
-O props
|
Параметры безопасности SASL
|
-o opt[=optparam]
|
Указывает опции общего назначения.
Возможные опции:
|
-p порт
|
Порт, на котором сервер LDAP принимает запросы. Номер порта по умолчанию — 389. Если номер порта не задан, и указан параметр
-Z , то применяется номер порта LDAP SSL по умолчанию, равный 636
|
-Q
|
Использовать тихий режим SASL. Запросы не выводятся никогда
|
-R realm
|
Задаёт realm аутентификационного идентификатора для SASL. Форма realm зависит от того, какой механизм аутентификации в действительности используется
|
-U authcid
|
Идентификатор аутентификации SASL. Форма идентификатора зависит от того, какой механизм аутентификации в действительности используется
|
-v
|
Запустить в подробном режиме (диагностические сообщения посылаются в стандартный вывод)
|
-V[V]
|
Вывести информацию о версии. При указании
-VV , после вывода информации о версии осуществляется выход. При указании -V , после вывода информации о версии выполняется поиск согласно заданным критериям
|
-w passwd
|
Использовать указанное значение
passwd в качестве пароля для простой аутентификации
|
-W
|
Запрашивать ввод пароля для простой аутентификации (используется для того, чтобы не указывать пароль в командной строке)
|
-x
|
Использовать простую аутентификацию
|
-X authzid
|
Идентификатор авторизации SASL ("dn:<dn>" или "u:<user>")
|
-y file
|
Считать пароль из файла
file .
В качестве пароля используется всё содержимое файла. Поэтому файл не должен содержать символа переноса строки
|
-Y mech
|
Задаёт механизм SASL, который будет использоваться для аутентификации. Если параметр не указан, программа выберет лучший из известных серверу механизмов
|
-Z[Z]
|
Запустить запрос TLS (
-ZZ для запроса успешного ответа)
|
<Атрибут><оператор сравнения><значение>Вместо имени атрибута можно использовать его идентификатор (Attribute-Id). Тело фильтра должно быть заключено в скобки
Таблица 54.7. Примеры LDAP-фильтров
Запрос
|
LDAP фильтр
|
---|---|
Все пользователи:
|
(sAMAccountType=805306368)
|
Отключенные (Disabled) пользователи:
|
(&(sAMAccountType=805306368)(useraccountcontrol:1.2.840.113556.1.4.803:=2))
|
Заблокированные (Locked) пользователи:
|
(&(sAMAccountType=805306368)(badPwdCount>=4))
|
Пользователи, у которых в настройках указано «Пароль никогда не истекает»
|
(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=65536))
|
Пользователи которые не меняли пароль с 5 мая 2023 года (см. https://www.epochconverter.com/ldap для преобразования даты во временную метку Windows)
|
(&(objectCategory=person)(pwdLastSet<=133278047990000000))
|
Пользователи с незаполненным полем mail
|
(&(objectCategory=group)(!(mail=*)))
|
Пользователи, которые должны сменить пароль при следующем входе в систему
|
(&(sAMAccountType=805306368)(pwdLastSet=0))
|
Пользователи с ограниченным сроком действия учетной записи
|
(&(sAMAccountType=805306368)(accountExpires>=1)(accountExpires<=9223372036854775806))
|
Пользователи, созданные за определенный период (формат даты: YYYY MM DD HH mm ss.s Z)
|
(&(sAMAccountType=805306368)(whenCreated>=20230401000000.0Z<=20230701000000.0Z))
|
Все компьютеры
|
(objectCategory=computer)
|
Все контроллеры домена
|
(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=8192))
|
Контроллеры домена, доступные только для чтения
|
(&(objectCategory=computer)(userAccountControl:1.2.840.113556.1.4.803:=67108864))
|
Группы, в которых нет пользователей
|
(&(objectCategory=group)(!(member=*)))
|
Группы, с ключевым словом admin в имени
|
(&(objectCategory=group)(samaccountname=*admin*))
|
Все группы безопасности (Security)
|
(&(objectCategory=group)(groupType:1.2.840.113556.1.4.803:=2147483648))
|
Все члены группы Sales (без учёта вложенности)
|
(memberOf=CN=Sales,CN=Users,DC=test,DC=alt)
|
Все члены группы Sales (с учётом вложенности)
|
(memberOf:1.2.840.113556.1.4.1941:=CN=Sales,CN=Users,DC=test,DC=alt)
|
Все группы, в которые входит пользователь testldap
|
(&(objectCategory=group)(member=CN=testldap,CN=Users,DC=test,DC=alt)))
|
Все подразделения (OU)
|
(objectCategory=organizationalUnit)
|
Все объекты групповой политики
|
(objectCategory=groupPolicyContainer)
|
Все отношения доверия
|
(objectClass=trustedDomain)
|
Объекты связанные с ролями FSMO
|
(fsMORoleOwner=*)
|
PDC Emulator
|
(&(objectClass=domainDNS)(fSMORoleOwner=*))
|
RID Master
|
(&(objectClass=rIDManager)(fSMORoleOwner=*))
|
Объект AD с определенным SID
|
(objectSID=S-1-5-21-1723588197-2340999690-1379671080-1105)
|
Отличительное имя (DN) имя_атрибута: значение имя_атрибута: значение имя_атрибута: значение …Записи разделяются пустыми строками.
-t
вместо реальных значений атрибутов будут выводиться URI временных файлов, в которые эти значения помещаются. Если задан параметр -A
будут выводиться только имена атрибутов.
Примечание
имя_атрибута:: base64_значение_атрибутаНапример:
dn:: Q0490JfQsNC50YbQtdCy0LAg0J7Qu9GM0LPQsCxDTj1Vc2VycyxEQz10ZXN0LERDPWFsdA==
cn:: 0JfQsNC50YbQtdCy0LAg0J7Qu9GM0LPQsA==
…
$ echo "0JfQsNC50YbQtdCy0LAg0J7Qu9GM0LPQsA==" | base64 -d
Зайцева Ольга
$ ldapsearch
-LLL -D testldap@test.alt -x -W | perl -MMIME::Base64 -MEncode=decode -n -00 -e 's/\n
+//g;s/(?<=:: )(\S+)/decode("UTF-8",decode_base64($1))/eg;print'
$ ldapsearch
-LLL -H ldap://192.168.0.132:389 \
-D testldap@test.alt -b "dc=test,dc=alt" \
-x -W "(&(sAMAccountName=*)(sn=К*))" cn sn
где:
-H ldap://192.168.0.132:389
— сервер LDAP;
-D testldap@test.alt
— пользователь с правом чтения в каталоге LDAP;
-b "dc=test,dc=alt"
— контейнер AD, в котором будет выполняться поиск;
-x
— использовать простую аутентификацию;
-W
— спросить пароль;
"(&(sAMAccountName=*)(sn=К*))"
— выражение, по которому будут отфильтрованы результаты;
cn sn
— поля, которые необходимо вывести.
/etc/openldap/ldap.conf
, например:
BASE dc=test,dc=alt URI ldap://dc1.test.altКоманда с использованием базы поиска и URI по умолчанию:
$ ldapsearch
-LLL -D testldap@test.alt \
-x -W "(&(sAMAccountName=*)(sn=К*))" cn sn
$ ldapsearch
-LLL -H ldap://192.168.0.132:389 \
-D testldap@test.alt -b "ou=OU,dc=test,dc=alt" -s one \
-x -W "(&(sAMAccountName=*)(mail=К*))" sn mail
В данном примере не будут выведены записи только из подразделения OU, но не из его дочерних подразделений.
new.filter
и выполнить функцию поиска LDAP для каждой строки:
$ ldapsearch -H ldap://192.168.0.132:389 \ -D testldap@test.alt -b "dc=test,dc=alt" -x -W -f new.filter "(samaccountname=%s)" cn
Содержимое файла new.filter
:
z* ivanov k* *kКоманда выполняет поиск по поддереву для каждого фильтра, начиная с samaccountname=z*. Когда этот поиск завершается, начинается поиск для фильтра cn=ivanov и т.д. Пример вывода вышеуказанной команды с параметром
-n
:
LDAPv3 # base <dc=test,dc=alt> with scope subtree # filter pattern: (samaccountname=%s) # requesting: dn # # # filter: (samaccountname=z*) # # # filter: (samaccountname=ivanov) # # # filter: (samaccountname=k*) # # # filter: (samaccountname=*k) #
sssctl
— это инструмент командной строки, который предоставляет унифицированный способ получения информации о состоянии Security System Services Daemon (SSSD).
sssctl
можно использовать для сбора следующей информации:
sssctl
можно:
Таблица 54.8. Основные команды sssctl
Команда
|
Описание
|
---|---|
Статус SSSD
|
|
domain-list
|
Вывести список доступных доменов
|
domain-status домен
|
Вывести информацию о домене
|
user-checks пользователь
|
Вывести информацию о пользователе и проверить аутентификацию
|
access-report домен
|
Создать отчёт о правилах управления доступом, которые применяются к клиентскому компьютеру (работает только для домена FreeIPA)
|
Информация о кешированном содержимом
|
|
user-show пользователь
|
Информация о кеше пользователя
|
group-show группа
|
Информация о кеше группы
|
netgroup-show группа
|
Информация о кеше сетевой группы
|
Инструменты для работы с локальными данными
|
|
client-data-backup
|
Резервное копирование локальных данных
|
client-data-restore
|
Восстановление локальных данных из резервной копии
|
cache-remove
|
Резервное копирование локальных данных и удаление кешированного содержимого
|
cache-upgrade
|
Выполнить обновление кеша
|
cache-expire
|
Сделать недействительными кешированные объекты
|
cache-index действие
|
Управление индексами кеша
|
Инструменты для управления журналированием
|
|
logs-remove
|
Удалить существующие файлы журналов SSSD
|
logs-fetch файл
|
Архивировать файлы журналов SSSD в tarball
|
debug-level [уровень]
|
Изменить или вывести уровень журналирования SSSD
|
analyze
|
Анализ зарегистрированных данных
|
Инструменты для проверки файлов конфигурации
|
|
config-check
|
Выполнить статический анализ конфигурации SSSD
|
Инструменты, связанные с сертификатом
|
|
cert-show сертификат
|
Вывести информацию о сертификате
|
cert-map сертификат
|
Показать пользователей, привязанных к сертификату
|
man sssctl
).
# sssctl user-show --usage
или:
# sssctl user-show --help
# sssctl domain-status TEST.ALT
Online status: Online
Active servers:
AD Global Catalog: dc1.test.alt
AD Domain Controller: dc1.test.alt
Discovered AD Global Catalog servers:
- dc1.test.alt
Discovered AD Domain Controller servers:
- dc1.test.alt
# sssctl user-show kim
Name: kim
Cache entry creation date: 03/27/24 20:57:31
Cache entry last update time: 06/03/24 16:49:12
Cache entry expiration time: 06/03/24 18:19:12
Initgroups expiration time: 06/03/24 18:19:12
Cached in InfoPipe: N
# sssctl user-checks kim
user: kim
action: acct
service: system-auth
SSSD nss user lookup result:
- user name: kim
- user id: 1939201105
- group id: 1939200513
- gecos: Олег Ким
- home directory: /home/TEST.ALT/kim
- shell: /bin/bash
SSSD InfoPipe user lookup result:
- name: kim
- uidNumber: 1939201105
- gidNumber: 1939200513
- gecos: Олег Ким
- homeDirectory: not set
- loginShell: not set
testing pam_acct_mgmt
pam_acct_mgmt: Success
PAM Environment:
- no env -
testparm
можно проверить содержимое файла конфигурации /etc/samba/smb.conf
.
$ testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_ACTIVE_DIRECTORY_DC
Press enter to see a dump of your service definitions
# Global parameters
[global]
dns forwarder = 8.8.8.8
ldap server require strong auth = No
passdb backend = samba_dsdb
realm = TEST.ALT
server role = active directory domain controller
workgroup = TEST
rpc_server:tcpip = no
rpc_daemon:spoolssd = embedded
rpc_server:spoolss = embedded
rpc_server:winreg = embedded
rpc_server:ntsvcs = embedded
rpc_server:eventlog = embedded
rpc_server:srvsvc = embedded
rpc_server:svcctl = embedded
rpc_server:default = external
winbindd:use external pipes = true
idmap_ldb:use rfc2307 = yes
idmap config * : backend = tdb
map archive = No
vfs objects = dfs_samba4 acl_xattr
[dfs]
msdfs root = Yes
path = /media/dfsroot
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/test.alt/scripts
read only = No
[free]
guest ok = Yes
path = /mnt/win/free
read only = N
/etc/samba/smb.conf
— файл конфигурации Samba.
/etc/krb5.conf
— файл конфигурации Kerberos.
/etc/sssd/sssd.conf
— файл конфигурации SSSD.
/etc/sssd/sssd.conf
) для sssd-ad:
[sssd] config_file_version = 2 services = nss, pam # Managed by system facility command: ## control sssd-drop-privileges unprivileged|privileged|default user = _sssd # SSSD will not start if you do not configure any domains. domains = TEST.ALT [nss] [pam] [domain/TEST.ALT] id_provider = ad auth_provider = ad chpass_provider = ad access_provider = ad default_shell = /bin/bash fallback_homedir = /home/%d/%u debug_level = 0 ;cache_credentials = true ad_gpo_ignore_unreadable = true ad_gpo_access_control = permissive ad_update_samba_machine_account_password = true
man sssd.conf
).
/etc/resolv.conf
— файл конфигурации ресолвера (механизма преобразования имен хостов в адреса IP).
/etc/resolv.conf
указан как минимум 1 сервер имен, на который будут перенаправляться все DNS запросы:
# Generated by resolvconf # Do not edit manually, use # /etc/net/ifaces/<interface>/resolv.conf instead. nameserver 192.168.197.241
Важно
/etc/resolv.conf
не должен редактироваться. Его автоматически генерирует resolvconf
. Редактировать можно файл /etc/net/ifaces/<interface>/resolv.conf
MAXNS
(в настоящее время 3) серверов имён, ключевое слово должно быть указано для каждого сервера. Если указано несколько серверов, библиотека распознавателя запрашивает их в указанном порядке. Если в файле нет строк nameserver
, по умолчанию используется сервер имён на локальном компьютере. Используемый алгоритм заключается в том, чтобы попробовать обратиться к первому указанному серверу имён, и, если время ожидания запроса истекло, попробовать обратиться к следующему серверу, и т.д. пока не будет исчерпан список серверов, а затем повторять попытки, пока не будет сделано максимальное количество повторных попыток.
options параметр …где
параметр
может иметь следующие значения: resolver(3)
).
gethostbyname(3)
, и отображению ответов IPv4 в «туннелированной форме» IPv6, если записи AAAA не были найдены, но существует набор записей A. Начиная с glibc 2.25, эта опция устарела; приложения должны использовать getaddrinfo(3)
, а не gethostbyname(3)
.
resolver(3)
), прежде чем будет сделан первоначальный абсолютный запрос. По умолчанию n
равно 1, поэтому если в имени есть точки, сначала имя пытаются разрешить как абсолютное, прежде чем добавлять к нему элементы из списка поиска. Значение этой опции скрыто ограничено числом 15.
trust-ad
, тупиковый распознаватель устанавливает бит AD в исходящих DNS-запросах (чтобы включить поддержку бита AD) и сохраняет бит AD в ответах. Без этой опции бит AD в запросах не устанавливается и всегда удаляется из ответов, прежде чем они будут возвращены приложению. Это означает, что приложения могут доверять биту AD в ответах, если параметр trust-ad
установлен правильно.
gethostname(2)
; локальным доменным именем считается всё, что следует после первого знака «.». Если имя хоста не содержит «.», предполагается, что корневой домен является именем локального домена.
search
через пробел или символ табуляции. При разрешении запросов имён, в которых меньше точек чем указано в ndots
(по умолчанию 1), будет использован каждый компонент пути поиска пока не будет найдено соответствующее имя. Для сред с несколькими субдоменами см. параметры ndots:n
, чтобы избежать атак типа «человек посередине» и ненужного трафика для корневых DNS-серверов. Обратите внимание, что этот процесс может быть медленным и будет генерировать много сетевого трафика, если серверы для перечисленных доменов не являются локальными, и что время ожидания запросов истечет, если сервер для одного из доменов недоступен.
search
используется только список поиска из последнего экземпляра.
domain
— это устаревшее название директивы search
, которая обрабатывает только одну запись в списке поиска.
gethostbyname(3)
. Список сортировки задается в виде пар IP-адрес/сетевая маска. Маску сети указывать не обязательно, по умолчанию используется естественная маска сети. IP-адрес и маска сети разделяются косой чертой. В списке можно указывать до 10 пар. Пример:
sortlist 130.155.160.0/255.255.240.0 130.155.0.0
search
системного файла resolv.conf
можно переопределить для каждого процесса, задав для переменной среды LOCALDOMAIN список доменов поиска, разделенных пробелами.
options
системного файла resolv.conf
можно переопределить для каждого процесса, задав для переменной среды RES_OPTIONS список параметров преобразователя, разделенных пробелами.
/etc/resolv.conf
, обязательно будут перезаписаны при изменениях в сети или перезагрузке системы.
nameserver
). Значение следует за ключевым словом, разделенным пробелом.
/etc/resolv.conf
, чтобы внести изменения в DNS:
# resolvconf -u
/etc/resolv.conf
:
search test.alt example.test nameserver 192.168.0.132 nameserver 8.8.8.8
ndots
(см. описание параметров выше).
/etc/named.conf
— основной файл конфигурации, содержит в себе ссылки на остальные конфигурационные файлы;
/etc/bind/options.conf
— файл для глобальных настроек службы;
/etc/bind/rndc.conf
— получить информацию DNS об удаленном сервере;
/etc/bind/local.conf
— файл для настроек зоны DNS;
/var/lib/samba/bind-dns/named.conf
— инструмент для динамического обновления записей DNS.
named.conf
или в директиве @ $ORIGIN текущего описания зоны;
Таблица 55.1. Разделы конфигурационного файла bind
Раздел
|
Описание
|
---|---|
acl
|
Позволяет задать именованный список сетей. Формат раздела: acl имя_сети {ip; ip; ip; };
|
controls
|
Объявляет каналы управления, которые будут использоваться утилитой rndc
|
dnssec-policy
|
Описывает ключ DNSSEC и политику подписи для зон
|
key
|
Указывает ключевую информацию для использования при аутентификации и авторизации с использованием TSIG
|
:any:key-store
|
Описывает хранилище ключей DNSSEC
|
logging
|
Указывает, какую информацию регистрирует сервер и куда отправляются сообщения журнала
|
options
|
Задает глобальные параметры конфигурационного файла, управляющие всеми зонами
|
parental-agents
|
Определяет именованный список серверов для включения в списки родительских агентов основной и дополнительной зон
|
primaries
|
Определяет именованный список серверов для включения в основные и дополнительные зоны или списки уведомлений
|
server
|
Устанавливает определенные параметры конфигурации для каждого сервера
|
tls
|
Указывает информацию о конфигурации для соединения TLS
|
http
|
Указывает информацию о конфигурации для HTTP-соединения
|
trust-anchors
|
Определяет якоря доверия DNSSEC: при использовании с ключевым словом Initial-key или Initial-ds якоря доверия поддерживаются в актуальном состоянии с помощью обслуживания якоря доверия RFC 5011; при использовании со static-key или static-ds ключи являются постоянными.
|
zone
|
Определяет описание зон(ы)
|
/etc/bind/options.conf
. Для получения более подробной информации следует обратиться к man странице named.conf(5)
.
Таблица 55.2. Основные параметры конфигурационного файла bind
Опция
|
Описание
|
---|---|
directory
|
Указывает каталог расположения таблиц зон
|
listen-on
|
Определяет адреса IPv4, на которых сервер прослушивает DNS-запросы
|
listen-on-v6
|
Определяет адреса IPv6, на которых сервер прослушивает DNS-запросы
|
allow-query
|
IP-адреса и подсети, от которых будут обрабатываться запросы. Если параметр не задан, сервер отвечает на все запросы
|
allow-transfer
|
Устанавливает возможность передачи зон для slave-серверов
|
allow-query-cache
|
IP-адреса и подсети, которые могут получить доступ к кешу этого сервера
|
allow-recursion
|
IP-адреса и подсети, от которых будут обрабатываться рекурсивные запросы (для остальных будут выполняться итеративные запросы). Если параметр не задан, сервер выполняет рекурсивные запросы для всех сетей
|
pid-file
|
Указывает путь к файлу, в который сервер записывает идентификатор процесса
|
tkey-gssapi-keytab
|
Устанавливает файл таблицы ключей KRB5, который будет использоваться для обновлений GSS-TSIG. Это файл таблицы ключей KRB5, который можно использовать для обновлений GSS-TSIG. Если этот параметр установлен, а
tkey-gssapi-credential не установлен, обновления разрешены с любым ключом, соответствующим участнику в указанной вкладке ключей
|
minimal-responses
|
Контролирует, добавляет ли сервер записи в разделы полномочий и дополнительных данных. При значении yes сервер добавляет записи в авторитетные и дополнительные разделы только тогда, когда такие записи требуются протоколом DNS (например, при возврате делегирования или отрицательных ответах). Это обеспечивает лучшую производительность сервера, но может привести к увеличению количества клиентских запросов
|
max-cache-ttl
|
Указывает максимальное время (в секундах), в течение которого сервер кеширует обычные (положительные) ответы. Максимальный срок кеша по умолчанию — 04800 (одна неделя)
|
forward
|
Позволяет указать каким образом сервер обрабатывает запрос клиента. При значении first DNS-сервер будет пытаться разрешать имена с помощью DNS-серверов, указанных в параметре forwarders. Если разрешить имя с помощью данных серверов не удалось, то попытаться разрешить имя самостоятельно. Если указать значение none, сервер не будет пытаться разрешить имя самостоятельно
|
forwarders
|
DNS-сервер, на который будут перенаправляться запросы клиентов
|
dnssec-validation
|
Включает проверку DNSSEC в именованных файлах. Если установлены значения auto (по умолчанию) и yes, проверка DNSSEC включена. Если установлено значение no, проверка DNSSEC отключена
|
type
|
Указывает тип зоны, описываемой в текущем разделе. Тип зоны может принимать следующие значения:
|
Содержание
# apt-get install diag-domain-controller
diag-domain-controller [options] [<diagnostic-task>]
где diagnostic-task — название функции из списка тестов. Если не указывать название функции, будут запущены все тесты.
-l
, --list
— вывести список тестов;
-V
, --version
— вывести версию и выйти;
-v
, --verbose
— подробный вывод на терминал;
r[FILE]
, --report=[FILE]
— записать подробный вывод в файл отчета (report_<текущая дата>.txt
) и создать архив, содержащий файл отчета и файлы smb.conf
, krb5.conf
. Необязательный параметр — имя архива. Если файл не указан, будет создан архив $TMP/report_<текущая дата>.tar.gz
;
-a
, -alterator
— вывод для использования в приложениях alterator;
-h
, --help
— показать справку и выйти.
Таблица 56.1. Тесты diag-domain-controller
Тест
|
Описание
|
---|---|
is_domain_info_available
|
Проверка доступности просмотра общей информации о домене
|
is_hostname_correct
|
Проверка правильного написания доменного имени узла
|
is_hostname_static_and_transient
|
Проверка совпадения статического и временного имени хоста
|
is_not_empty_sysvol
|
Проверяет, содержит ли файлы каталог sysvol. Если каталог sysvol не пустой, также выводит неполный список файлов каталога.
Для возможности просмотра списка вложенных каталогов требуется запуск от root
|
is_samba_package_installed
|
Проверяет, установлен ли в системе пакет Samba (samba-dc или samba-dc-mitkrb5). Выводит информацию о данных пакетах
|
is_samba_service_running
|
Проверяет, запущена ли служба Samba
|
is_resolve_local
|
Проверяет, разрешает ли контроллер домена DNS-запросы локально (файл
/etc/resolv.conf содержит строку nameserver 127.0.0.1)
|
is_krb5_conf_file_exists
|
Проверяет наличие файла конфигурации
/etc/krb5.conf и отображает содержимое этого файла
|
is_smb_conf_file_exists
|
Проверяет наличие файла конфигурации
/etc/samba/smb.conf и отображает содержимое этого файла
|
is_there_way_to_cache_kerberos_tickets
|
Проверяет метод кеширования билетов Kerberos (
control krb5-conf-ccache )
|
is_dns_lookup_kdc_enabled
|
Проверяет, включен ли поиск доменного имени Kerberos через DNS (значение параметра
dns_lookup_kdc в файле /etc/krb5.conf )
|
is_resolv_conf_file_exists
|
Проверяет наличие файла конфигурации
/etc/resolv.conf и отображает содержимое этого файла
|
does_resolv_conf_and_default_realm_it_match
|
Проверяет соответствие записи области (realm) в файле конфигурации
/etc/krb5.conf одному из доменных имен в файле /etc/resolv.conf
|
does_smb_realm_and_krb5_default_realm_it_match
|
Проверяет соответствие записи домена в файле конфигурации
/etc/krb5.conf записи realm в файле конфигурации smb.conf
|
are_there_errors_in_samba_databases
|
Проверяет наличие ошибок в базах Samba. Требуется запуск от root
|
is_ntp_service_running
|
Проверяет, включена ли служба NTP
|
is_time_synchronization_enabled
|
Проверяет, включена ли синхронизация времени
|
$ diag-domain-controller -l
is_domain_info_available
is_hostname_correct
is_hostname_static_and_transient
is_not_empty_sysvol
is_samba_package_installed
is_samba_service_running
is_resolve_local
is_krb5_conf_file_exists
is_smb_conf_file_exists
is_there_way_to_cache_kerberos_tickets
is_dns_lookup_kdc_enabled
is_resolv_conf_file_exists
does_resolv_conf_and_default_realm_it_match
does_smb_realm_and_krb5_default_realm_it_match
are_there_errors_in_samba_databases
is_ntp_service_running
is_time_synchronization_enabled
$ diag-domain-controller is_domain_info_available
=================================================
General information about the domain controller:
Forest : test.alt
Domain : test.alt
Netbios domain : TEST
DC name : dc1.test.alt
DC netbios name : DC1
Server site : Default-First-Site-Name
Client site : newSite
=================================================
[DONE]: is_domain_info_available
$ diag-domain-controller
[DONE]: is_domain_info_available
[DONE]: is_hostname_correct
[DONE]: is_hostname_static_and_transient
[DONE]: is_not_empty_sysvol
[DONE]: is_samba_package_installed
[DONE]: is_samba_service_running
[FAIL]: is_resolve_local
[DONE]: is_krb5_conf_file_exists
[DONE]: is_smb_conf_file_exists
[WARN]: is_there_way_to_cache_kerberos_tickets
[DONE]: is_dns_lookup_kdc_enabled
[DONE]: is_resolv_conf_file_exists
[DONE]: does_resolv_conf_and_default_realm_it_match
[DONE]: does_smb_realm_and_krb5_default_realm_it_match
[WARN]: are_there_errors_in_samba_databases
[WARN]: is_ntp_service_running
[DONE]: is_time_synchronization_enabled
# apt-get install diag-domain-client
diag-domain-client [options] [<test-function-name>]
где test-function-name — название функции из списка тестов. Если не указывать название функции, будут запущены все тесты.
-h
, --help
— показать справку и выйти;
-V
, --version
— вывести версию и выйти;
-v
, --verbose
— подробный вывод;
-w[FILE]
, --logfile[=FILE]
— записать подробный вывод в файл по указанному пути. Если файл не указан, вывод будет записан в файл ./diag-domain-client.log
. В случае если файл уже существует, то запись производится в файл с постфиксом (например, diag-domain-client.log.1
, diag-domain-client.log.2
и т.д.);
-f
, --force
— принудительная запись в существующий файл;
-l
, --list
— вывести список тестов.
Таблица 56.2. Тесты и проверки diag-domain-client
Тест/Проверка
|
Описание
|
---|---|
check_hostnamectl
|
Отображает полную информацию о узле и соответствующие настройки: имя, значок, система, версия ядра, архитектура, информация о виртуализации (при наличии)
|
test_hostname
|
Проверяет, является ли имя компьютера полностью определенным именем домена (FQDN)
|
check_system_auth
|
Отображает метод аутентификации пользователей, используемый в подсистеме PAM (sss, winbind — компьютер введен в домен, local — не введен). Выводит содержимое файла
/etc/pam.d/system-auth
|
is_samba_package_installed
|
Проверяет, установлен ли в системе пакет Samba (samba-dc или samba-dc-mitkrb5)
|
test_domain_system_auth
|
Проверяет, подходит ли метод аутентификации для работы машины в домене (допустимые значения: sss, winbind)
|
check_system_policy
|
Отображает, какие политики применяются в процессе PAM-аутентификации: local — никакие, gpupdate — локальные и доменные
|
test_gpupdate_system_policy
|
Проверяет, настроено ли применение групповых политик в системе
|
check_krb5_conf_exists
|
Проверяет наличие, отображает права доступа и содержимое файла конфигурации
krb5.conf
|
check_krb5_conf_ccache
|
Отображает текущий способ кеширования Kerberos-билетов — keyring, file, dir
|
test_keyring_krb5_conf_ccache
|
Проверяет настроенный способ кеширования Kerberos-билетов (для keyring)
|
check_krb5_conf_kdc_lookup
|
Проверяет включен ли поиск Kerberos-имени домена через DNS. Допустимыми значениями для «dns_lookup_kdc» в
/etc/krb5.conf являются — true/yes
|
check_krb5_keytab_exists
|
Проверяет наличие, права доступа и дату последнего изменения файла
/etc/krb5.conf . В этом файле хранятся принципалы и хеши пароля доменной учётной записи компьютера
|
check_keytab_credential_list
|
Отображает содержимое файла
/etc/krb5.conf (файл с учётными данными машинного пользователя). В этом файле хранятся принципалы и хеши пароля доменной учётной записи компьютера.
Требуется запуск от root, иначе SKIP
|
check_resolv_conf
|
Проверяет наличие и выводит содержимое файла конфигурации разрешения имен
resolv.conf
|
compare_resolv_conf_with_default_realm
|
Сравнивает домен для поиска (поле search в
/etc/resolv.conf ) с доменом по умолчанию, указанным для Kerberos
|
check_smb_conf
|
Проверяет наличие и выводит содержимое файла настроек конфигурации Samba
|
compare_smb_realm_with_krb5_default_realm
|
Сравнивает домен, указанный в файле конфигурации Samba, с доменом по умолчанию, указанным для Kerberos
|
test_smb_realm
|
Проверяет корректное заполнение информации о домене в конфигурационных файлах Samba и Kerberos
|
test_domainname
|
Сверяет доменное имя из
/etc/hostname с именем домена в составе FQDN-имени узла
|
check_time_synchronization
|
Отображает настройку синхронизации времени с сервером; выводит подробную информацию — часовой пояс, временную зону и т.д. Необходимо для корректной работы с сертификатами, электронной подписью, билетами Kerberos
|
test_time_synchronization
|
Проверяет, включена ли синхронизация времени
|
check_nameservers
|
Проверяет доступность всех контроллеров домена по имени (
host <domain FQDN> ) и IP-адресу (работает ли resolv.conf )
|
check_domain_controllers
|
Проверяет доступность всех контроллеров домена в домене (из srv-записей). Отображает версии контроллеров домена (из LDAP)
|
check_kerberos_and_ldap_srv_records
|
Проверяет наличие srv-записей вида _kerberos._udp.<domain FQDN> и _ldap._tcp.<domain FQDN> для домена. Требуется для корректной работы машины в домене. Без записей Kerberos, sssd и winbind не смогут найти контроллеры домена
|
compare_netbios_name
|
Сравнивает короткое имя машины из
/etc/hostname с NetBios-именем машины в smb.conf
|
check_common_packages
|
Проверяет наличие установленных основных пакетов и их версий (alterator-auth, libnss-role, libkrb5 и libsmbclient)
|
check_group_policy_packages
|
Проверяет наличие установленных основных пакетов и их версий для управления групповыми политиками (local-policy и gpupdate)
|
check_sssd_ad_packages
|
Проверяет наличие установленного мета-пакета и его версии для аутентификации с помощью sssd (task-auth-ad-sssd)
|
check_sssd_winbind_packages
|
Проверяет наличие установленного мета-пакета и его версии для аутентификации с помощью winbind (task-auth-ad-winbind)
|
$ diag-domain-client -l
check_hostnamectl
test_hostname
check_system_auth
test_domain_system_auth
check_system_policy
test_gpupdate_system_policy
check_krb5_conf_exists
check_krb5_conf_ccache
test_keyring_krb5_conf_ccache
check_krb5_conf_kdc_lookup
check_krb5_keytab_exists
check_keytab_credential_list
check_resolv_conf
compare_resolv_conf_with_default_realm
check_smb_conf
compare_smb_realm_with_krb5_default_realm
test_smb_realm
test_domainname
check_time_synchronization
test_time_synchronization
check_nameservers
check_domain_controllers
check_kerberos_and_ldap_srv_records
compare_netbios_name
check_common_packages
check_group_policy_packages
check_sssd_ad_packages
check_sssd_winbind_packages
$ diag-domain-client check_smb_conf
is_domain_info_available
[DONE]: is_domain_info_available
$ diag-domain-client check_krb5_conf_kdc_lookup -v
===============================================================================
| Samba environment diagnostic tool |
-------------------------------------------------------------------------------
Version: 0.2.8
Date: Ср 09 окт 2024 12:54:51 EET
-------------------------------------------------------------------------------
System information
Kernel: 5.10.212-std-def-alt1
Branch: p10
===============================================================================
===============================================================================
| check_krb5_conf_kdc_lookup |
-------------------------------------------------------------------------------
/etc/krb5.conf: dns_lookup_kdc is enabled
-------------------------------------------------------------------------------
Check DNS lookup kerberos KDC status: [DONE]
===============================================================================
$ diag-domain-client
Check hostname persistance: [DONE]
Test hostname is FQDN (not short): [DONE]
System authentication method: [DONE]
Domain system authentication enabled: [DONE]
System policy method: [DONE]
System group policy enabled: [DONE]
Check Kerberos configuration exists: [DONE]
Kerberos credential cache status: [DONE]
Using keyring as kerberos credential cache: [DONE]
Check DNS lookup kerberos KDC status: [DONE]
Check machine crendetial cache is exists: [DONE]
Check machine credentials list in keytab: [SKIP]
Check nameserver resolver configuration: [DONE]
Compare krb5 realm and first search domain: [DONE]
Check Samba configuration: [DONE]
Compare samba and krb5 realms: [DONE]
Check Samba domain realm: [DONE]
Check hostname FQDN domainname: [DONE]
Check time synchronization: [DONE]
Time synchronization enabled: [WARN]
Check nameservers availability: [WARN]
Check domain controllers list: [FAIL]
Check Kerberos and LDAP SRV-records: [DONE]
Compare NetBIOS name and hostname: [DONE]
Check common packages: [DONE]
Check group policy packages: [DONE]
Check SSSD AD packages: [DONE]
Check SSSD Winbind packages: [WARN]
/tmp/diag-domain-client.log
:
$ diag-domain-client check_krb5_conf_kdc_lookup -w/tmp/diag-domain-client.log
Check DNS lookup kerberos KDC status: [DONE]
просмотреть содержимое файла /tmp/diag-domain-client.log
:
$ cat /tmp/diag-domain-client.log
===============================================================================
| Samba environment diagnostic tool |
-------------------------------------------------------------------------------
Version: 0.2.8
Date: Ср 09 окт 2024 12:54:24 EET
-------------------------------------------------------------------------------
System information
Kernel: 5.10.212-std-def-alt1
Branch: p10
===============================================================================
===============================================================================
| check_krb5_conf_kdc_lookup |
-------------------------------------------------------------------------------
/etc/krb5.conf: dns_lookup_kdc is enabled
-------------------------------------------------------------------------------
Check DNS lookup kerberos KDC status: [DONE]
===============================================================================
# apt-get install adt
Установка инструментов диагностики состояния клиента домена и состояния контроллера домена:
# apt-get install diag-domain-client diag-domain-controller
# systemctl enable --now alterator-manager.service
$ adt
Примечание
-r
, --report
.
.backend
— описывает интерфейс диагностического инструмента, обеспечивающий взаимодействие с D-Bus. В нем же описываются методы интерфейса: info, run, list, report;
.diagnostictool
— описывает отображение диагностического инструмента в ADT. Содержит информацию о тестах, доступных в рамках описываемого диагностического инструмента.
.backend
и запуска исполняемых файлов.
.backend
обо всех установленных диагностических инструментах и создает объекты на системной и сессионных (в зависимости от расположения backend-файлов) шинах D-Bus с именами вида «ru.basealt.alterator.<имя инструмента>».
.backend
и .diagnostictool
(или .diag
), описывающие сущности Alterator Entry.
Примечание
.diagnostictool
и .diag
считаются верными.
/путь_к_исполняемому_файлу {param}где {param} — означает имя теста, который необходимо выполнить.
-l
или --list
— вывод списка тестов. Список необходимо выводить в стандартный вывод. Имя каждого теста должно быть с новой строки;
-r
или report
— сгенерировать файл с отчетом. Файл с отчетом может представлять собой как текстовые данные, так и бинарные (например, архив). Его содержимое необходимо направить в стандартный вывод. ADT получит этот вывод и сохранит в файл с именем вида «имя_инструмента_дата» и суффиксом, указанным в файле .diagnostictool
.
.backend
и .diagnostictool
следует воспользоваться спецификацией Alterator Entry
.backend
и .diagnostictool
являются текстовыми и содержат описание в виде секций. Синтаксис файлов:
[имя секции1] Поле1 = значение Поле2 = значение ПолеN = значение [имя секции2] Поле1 = значение Поле2 = значение ПолеN = значение [имя секцииN] Поле1 = значение Поле2 = значение ПолеN = значениеПри этом следует учитывать:
./backends
для файла .backend
;
./diagnostictools
для файла .diagnostictool
(или .diag
).
.diagnostictool
имеет имя вида <имя диагностического инструмента>.diagnostictool
.
/usr/share/alterator/diagnostictools/
. В противном случае, рекомендуется использовать каталог /etc/alterator/diagnostictools/
.
.diagnostictool
содержит информацию для GUI Он включает секцию [Alterator Entry] и секции, описывающие варианты тестирования.
.backend
имеет имя вида <имя диагностического инструмента>.ru.basealt.alterator.backend
.
/usr/share/alterator/backends/system
— если объект необходимо создать на системной шине;
/usr/share/alterator/backends/user
— если объект необходимо создать на сессионной шине;
/etc/alterator/backends/system/
— если объект необходимо создать на системной шине;
/etc/alterator/backends/user/
— если объект необходимо создать на сессионной шине;
.diagnostictool
(cat <путь к файлу>
);
<путь к исполняемому файлу> {param}
;
<путь к исполняемому файлу> -l
;
<путь к исполняемому файлу> -R
;
/usr/bin/diag-example
;
/usr/share/alterator/backends/diag-example.backend
;
/usr/share/alterator/diagnostictools/diag-example.diag
.
/usr/bin/diag-example
:
#!/bin/bash # # Copyright (c) 2024 Evgeny Sinelnikov <sin@altlinux.org> # # Example diagnostic tool # # SPDX-License-Identifier: GPL-2.0-or-later # set -euo pipefail . shell-getopt PROG="${0##*/}" PROG_VERSION='0.0.1' cmd="run" global_retval=0 print_version() { cat <<EOF $PROG version $PROG_VERSION Written by Evgeny Sinelnikov <sin@altlinux.org> Copyright (C) 2024 Evgeny Sinelnikov <sin@altlinux.org> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. EOF exit } show_usage() { cat <<EOF $PROG - example diagnostic tool. Usage: $PROG [options] [<diagnostic-task>] Options: -l, --list list of diagnostic tasks; -V, --version print program version and exit; -h, --help show this text and exit. Report bugs to https://bugzilla.altlinux.org/ EOF exit } TEMP=$(getopt -n "$PROG" -o "l,V,h" -l "list,version,help" -- "$@") || show_usage eval set -- "$TEMP" while :; do case "$1" in --) shift; break ;; -l|--list) cmd="list"; ;; -V|--version) print_version ;; -h|--help) show_usage ;; *) fatal "Unrecognized option: $1" ;; esac shift done task_list="$*" task_show() { local func="$1" echo "$func" } task_run() { local retval=126 local func="$1" if test -n "$task_list"; then echo "$task_list" | tr ' ' '\n' | grep -q "^$func\$" || return 0 fi $func && retval=0 || retval="$?" test $retval = 0 || global_retval=1 return $retval } task() { local task="$1" case "$cmd" in list) task_show "$task" ;; run) task_run "$task" && echo "[DONE]: $task" || echo "[FAIL]: $task" ;; *) fatal "Unrecognized command: $cmd" ;; esac } is_gigabyte() { /usr/sbin/dmidecode -s baseboard-manufacturer | grep -q "^Gigabyte Technology" } is_std_def_kernel_running() { uname -r | grep -q '^[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+-std-def-' } task is_gigabyte task is_std_def_kernel_running exit "$global_retval"
/usr/share/alterator/backends/diag-example.backend
:
[Alterator Entry] Type = Backend Module = executor Name = diag_example Interface = diag1 [Info] execute = cat /usr/share/alterator/diagnostictools/diag-example.diag stdout_bytes = enabled stdout_byte_limit = 200000 action_id = Info [Run] execute = diag-example {param} stdout_signal_name = diag_example_stdout_signal stderr_signal_name = diag_example_stderr_signal thread_limit = 1 action_id = Run [List] execute = diag-example -l stdout_strings = enabled stdout_strings_limit = 200000 action_id = List
/usr/share/alterator/diagnostictools/diag-example.diag
:
[Alterator Entry] Type = diag Name = Example DisplayName = Diagnostic tool example DisplayName[ru] = Пример инструмента диагностики Comment = Diagnostic tool comment Comment[ru] = Комментарий к диагностическому инструменту Icon = system-run [is_gigabyte] DisplayName = Is motherboard manufacturer — Gigabyte? DisplayName[ru] = Производитель материнской платы — Gigabyte?
Примечание
# systemctl restart alterator-manager.service
Примечание
# ssh-keygen -t ed25519
На вопрос о файле для сохранения ключа нажать Enter (по умолчанию). На вопрос о пароле к ключу также нажать Enter (не указывать пароль).
# ssh-copy-id -i ~/.ssh/id_ed25519.pub user@dc2.test.alt
#ssh user@dc2.test.alt
[user@dc2 ~]$su -
Password: [root@dc2 ~]#cat /home/user/.ssh/authorized_keys >>.ssh/authorized_keys
[root@dc2 ~]#exit
выход [user@dc2 ~]$exit
выход Connection to dc2 closed.
acc
.
# apt-get install alterator-fbi
И запущены сервисы ahttpd
и alteratord
:
#systemctl enable --now ahttpd
#systemctl enable --now alteratord
https://ip-адрес:8080/
.
$ rpm -qa | grep alterator*
Прочие пакеты для ЦУС можно найти, выполнив команду:
$ apt-cache search alterator*
#apt-get install alterator-net-openvpn
#apt-get remove alterator-net-openvpn