$ net ads gpo list ivanov create_local_private_krb5_conf_for_domain: smb_mkstemp failed, for file /var/lib/samba/smb_tmp_krb5.WESwBt. Errno Отказано в доступе user: 'ivanov' has dn: 'CN=Иван Иванов,OU=Бухгалтерия,OU=Holding,DC=alt,DC=domain' Failed to open /var/lib/samba/private/secrets.tdb PANIC (pid 5862): could not open secrets db BACKTRACE: 20 stack frames: #0 /usr/lib64/libsamba-util.so.0(log_stack_trace+0x2d) [0x7f363efa05ed] #1 /usr/lib64/libsmbconf.so.0(smb_panic_s3+0x20) [0x7f363ddf4390] #2 /usr/lib64/libsamba-util.so.0(smb_panic+0x2f) [0x7f363efa06ef] #3 /usr/lib64/samba/libsecrets3-samba4.so(+0xf373) [0x7f363b7ba373] #4 /usr/lib64/samba/libsecrets3-samba4.so(sid_check_is_our_sam+0x9) [0x7f363b7ba3b9] #5 /usr/lib64/samba/libsecrets3-samba4.so(sid_check_is_in_our_sam+0x32) [0x7f363b7ba402] #6 /usr/lib64/libsamba-passdb.so.0(sid_check_object_is_for_passdb+0x9) [0x7f363f631c79] #7 /usr/lib64/libsamba-passdb.so.0(pdb_sid_to_id+0x27) [0x7f363f63ba47] #8 /usr/lib64/libsamba-passdb.so.0(+0x18f9c) [0x7f363f631f9c] #9 /usr/lib64/libsamba-passdb.so.0(+0x19090) [0x7f363f632090] #10 /usr/lib64/libsamba-passdb.so.0(sid_to_uid+0xe9) [0x7f363f634999] #11 /usr/lib64/samba/libauth-samba4.so(+0xab6e) [0x7f363a2d2b6e] #12 /usr/lib64/samba/libauth-samba4.so(create_local_nt_token+0x7a) [0x7f363a2d3d0a] #13 /usr/lib64/samba/libgpext-samba4.so(ads_get_sid_token+0x1b7) [0x7f363e04ca57] #14 net(+0x727a5) [0x55d5b94097a5] #15 net(net_ads_gpo+0x47) [0x55d5b940a037] #16 net(net_ads+0x47) [0x55d5b93d5c37] #17 net(main+0x973) [0x55d5b93ba383] #18 /lib64/libc.so.6(__libc_start_main+0xf0) [0x7f36385267f0] #19 net(_start+0x29) [0x55d5b93ba639] Can not dump core: corepath not set up
Проблему воспроизвёл: [administrator@clw0 ~]$ kinit Password for administrator@DOMAIN.ALT: Warning: Your password will expire in 40 days on Fri Nov 1 23:03:51 2019 [administrator@clw0 ~]$ net ads gpo list Administrator -k yes create_local_private_krb5_conf_for_domain: smb_mkstemp failed, for file /var/lib/samba/smb_tmp_krb5.vpaEDU. Errno Permission denied user: 'Administrator' has dn: 'CN=Administrator,CN=Users,DC=domain,DC=alt' Failed to open /var/lib/samba/private/secrets.tdb Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open /var/lib/samba/private/secrets.tdb PANIC (pid 20069): could not open secrets db BACKTRACE: 19 stack frames: #0 /usr/lib64/libsamba-util.so.0(log_stack_trace+0x2d) [0x7f2ea82dd5ed] #1 /usr/lib64/libsmbconf.so.0(smb_panic_s3+0x20) [0x7f2ea71312d0] #2 /usr/lib64/libsamba-util.so.0(smb_panic+0x2f) [0x7f2ea82dd6ef] #3 /usr/lib64/samba/libsecrets3-samba4.so(+0xf373) [0x7f2ea4af8373] #4 /usr/lib64/samba/libsecrets3-samba4.so(sid_check_is_our_sam+0x9) [0x7f2ea4af83b9] #5 /usr/lib64/samba/libsecrets3-samba4.so(sid_check_is_in_our_sam+0x32) [0x7f2ea4af8402] #6 /usr/lib64/libsamba-passdb.so.0(sid_check_object_is_for_passdb+0x9) [0x7f2ea896ec79] #7 /usr/lib64/libsamba-passdb.so.0(pdb_sid_to_id+0x27) [0x7f2ea8978a27] #8 /usr/lib64/libsamba-passdb.so.0(pdb_create_builtin+0x85) [0x7f2ea8974df5] #9 /usr/lib64/libsamba-passdb.so.0(create_builtin_administrators+0x2d) [0x7f2ea8974f5d] #10 /usr/lib64/samba/libauth-samba4.so(finalize_local_nt_token+0x2cd) [0x7f2ea36172ed] #11 /usr/lib64/samba/libauth-samba4.so(create_local_nt_token+0x98) [0x7f2ea3617cb8] #12 /usr/lib64/samba/libgpext-samba4.so(ads_get_sid_token+0x1b7) [0x7f2ea7389a57] #13 net(+0x727a5) [0x556b463f87a5] #14 net(net_ads_gpo+0x47) [0x556b463f9037] #15 net(net_ads+0x47) [0x556b463c4c37] #16 net(main+0x973) [0x556b463a9383] #17 /lib64/libc.so.6(__libc_start_main+0xf0) [0x7f2ea186a7f0] #18 net(_start+0x29) [0x556b463a9639] Can not dump core: corepath not set up [administrator@clw0 ~]$ klist Ticket cache: KEYRING:persistent:199400500:199400500 Default principal: administrator@DOMAIN.ALT Valid starting Expires Service principal 09/22/19 12:44:43 09/22/19 22:44:39 ldap/dc0.domain.alt@DOMAIN.ALT renew until 09/29/19 12:44:36 09/22/19 12:44:39 09/22/19 22:44:39 krbtgt/DOMAIN.ALT@DOMAIN.ALT renew until 09/29/19 12:44:36 Ошибку можно решать по-разному. Вопрос тут возникает такой: "Какие из команд net ads gpo, вообще, должны исполняться из-под не привелигированного пользователя?" В целом, процедура поиска назначенных объектов GPO, кеширования их хранилища из SYSVOL и применения самих политик, должна исполняться из-под привилегированного пользователя. Пользователь же не сам себе политики назначает. Они ему прилетает в принудительном порядке. И только скрипты, для которых явно указано, что их нужно запускать в окружении пользователя могут быть запущены из-под самого пользователя. В общем, если запускать из-под рута с учётными данными самой машины всё отрабатывает: [root@clw0 ~]# kinit -k CLW0$ [root@clw0 ~]# net ads gpo list Administrator -k yes 2>&1 |grep ^filesyspath: filesyspath: (null) filesyspath: \\domain.alt\sysvol\domain.alt\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9} [root@clw0 ~]# klist Ticket cache: KEYRING:persistent:0:0 Default principal: CLW0$@DOMAIN.ALT Valid starting Expires Service principal 09/22/19 12:39:34 09/22/19 22:39:30 ldap/dc0.domain.alt@DOMAIN.ALT renew until 09/29/19 12:39:30 09/22/19 12:39:30 09/22/19 22:39:30 krbtgt/DOMAIN.ALT@DOMAIN.ALT renew until 09/29/19 12:39:30 [root@clw0 ~]# rpm -qf /usr/bin/net samba-common-tools-4.9.13-alt1 А пользователю этот инструмент нужен, скорее, для тестов. Или как? Как net ads gpo предполагается использовать из-под пользователя?
Если внимательно посмотреть на вывод ошибки, то станет понятно, что проблема не правах доступа на каталог для временного файла приватных настроек krb5.conf, как это видно из начала лога ошибки: create_local_private_krb5_conf_for_domain: smb_mkstemp failed, for file /var/lib/samba/smb_tmp_krb5.WESwBt. Errno Отказано в доступе А в том, что (как я это и описывал выше) "by design" предполагается, что операции над объектами GPO выполняются с правами рута (при этом используются учетные данные из кеша по умолчанию или запрашивается пароль). Судя по коду отваливается всё в функции ads_get_sid_token(), которая через цепочку вызовов обращается к get_global_sam_sid(), которому нужен доступ к secrets.tdb. В свою очередь доступ к secrets.tdb каждому пользователю дать никак нельзя - кроме сида домена, там лежит пароль машины. [root@clw0 ~]# tdbdump /var/lib/samba/private/secrets.tdb | grep ^key key(16) = "SECRETS/SID/CLW0" key(18) = "SECRETS/SID/DOMAIN" key(34) = "SECRETS/MACHINE_DOMAIN_INFO/DOMAIN" key(39) = "SECRETS/MACHINE_SEC_CHANNEL_TYPE/DOMAIN" key(31) = "SECRETS/MACHINE_PASSWORD/DOMAIN" key(26) = "SECRETS/PROTECT/IDS/DOMAIN" key(39) = "SECRETS/MACHINE_LAST_CHANGE_TIME/DOMAIN" key(22) = "SECRETS/DOMGUID/DOMAIN" key(40) = "SECRETS/SALTING_PRINCIPAL/DES/DOMAIN.ALT" secrets_db_ctx() <- get_global_sam_sid() <- sid_check_is_our_sam() <- sid_check_is_in_our_sam() <- sid_check_object_is_for_passdb() <- pdb_sid_to_id() <- pdb_create_builtin() <- create_builtin_administrators <- finalize_local_nt_token <- create_local_nt_token() <- ads_get_sid_token() ...
Если дать всем права на запись в /var/lib/samba и /var/lib/samba/smb_krb5, проблема будет выглядеть почти также: [administrator@clw0 ~]$ ls -ld /var/lib/samba/ drwxrwxrwx 7 root root 4096 Sep 22 19:42 /var/lib/samba/ [administrator@clw0 ~]$ ls -ld /var/lib/samba/smb_krb5/ drwxrwxrwx 2 root root 4096 Sep 22 19:42 /var/lib/samba/smb_krb5/ [administrator@clw0 ~]$ net ads gpo list Administrator user: 'Administrator' has dn: 'CN=Administrator,CN=Users,DC=domain,DC=alt' Failed to open /var/lib/samba/private/secrets.tdb Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open /var/lib/samba/private/secrets.tdb PANIC (pid 21848): could not open secrets db BACKTRACE: 19 stack frames: #0 /usr/lib64/libsamba-util.so.0(log_stack_trace+0x2d) [0x7f99bff455ed] #1 /usr/lib64/libsmbconf.so.0(smb_panic_s3+0x20) [0x7f99bed992d0] #2 /usr/lib64/libsamba-util.so.0(smb_panic+0x2f) [0x7f99bff456ef] #3 /usr/lib64/samba/libsecrets3-samba4.so(+0xf373) [0x7f99bc760373] #4 /usr/lib64/samba/libsecrets3-samba4.so(sid_check_is_our_sam+0x9) [0x7f99bc7603b9] #5 /usr/lib64/samba/libsecrets3-samba4.so(sid_check_is_in_our_sam+0x32) [0x7f99bc760402] #6 /usr/lib64/libsamba-passdb.so.0(sid_check_object_is_for_passdb+0x9) [0x7f99c05d6c79] #7 /usr/lib64/libsamba-passdb.so.0(pdb_sid_to_id+0x27) [0x7f99c05e0a27] #8 /usr/lib64/libsamba-passdb.so.0(pdb_create_builtin+0x85) [0x7f99c05dcdf5] #9 /usr/lib64/libsamba-passdb.so.0(create_builtin_administrators+0x2d) [0x7f99c05dcf5d] #10 /usr/lib64/samba/libauth-samba4.so(finalize_local_nt_token+0x2cd) [0x7f99bb27f2ed] #11 /usr/lib64/samba/libauth-samba4.so(create_local_nt_token+0x98) [0x7f99bb27fcb8] #12 /usr/lib64/samba/libgpext-samba4.so(ads_get_sid_token+0x1b7) [0x7f99beff1a57] #13 net(+0x727a5) [0x564e789c97a5] #14 net(net_ads_gpo+0x47) [0x564e789ca037] #15 net(net_ads+0x47) [0x564e78995c37] #16 net(main+0x973) [0x564e7897a383] #17 /lib64/libc.so.6(__libc_start_main+0xf0) [0x7f99b94d27f0] #18 net(_start+0x29) [0x564e7897a639] Can not dump core: corepath not set up [administrator@clw0 ~]$ klist Ticket cache: KEYRING:persistent:199400500:199400500 Default principal: administrator@DOMAIN.ALT Valid starting Expires Service principal 09/22/19 12:44:43 09/22/19 22:44:39 ldap/dc0.domain.alt@DOMAIN.ALT renew until 09/29/19 12:44:36 09/22/19 12:44:39 09/22/19 22:44:39 krbtgt/DOMAIN.ALT@DOMAIN.ALT renew until 09/29/19 12:44:36
При этом, если вычистить из secrets.tdb секретные данные и задать права на запись, то всё начинает отрабатывать, но не вполне понятно с какими ещё ограничениями, поскольку вываливается куча лишних сообщения вида: Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open account policy database [administrator@clw0 ~]$ ls -l /var/lib/samba/private/secrets.tdb lrwxrwxrwx 1 root root 15 Sep 22 19:50 /var/lib/samba/private/secrets.tdb -> secretsdata.tdb [administrator@clw0 ~]$ ls -l /var/lib/samba/private/secretsdata.tdb -rw-rw-rw- 1 root root 561152 Sep 22 19:53 /var/lib/samba/private/secretsdata.tdb [administrator@clw0 ~]$ tdbdump /var/lib/samba/private/secrets.tdb { key(16) = "SECRETS/SID/CLW0" data(68) = "\01\04\00\00\00\00\00\05\15\00\00\00[\EE\D1\8E\F0\1Bz\F9\93\A6\ED\FE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00" } { key(18) = "SECRETS/SID/DOMAIN" data(68) = "\01\04\00\00\00\00\00\05\15\00\00\00\D7\CF1\1A\B9 \07\05M\C2\F1\C7\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\13[\85]\00\00\00\00\FF\1A\0D\00\00\00\00\00@c\D6%\F7\7F\00\00\90\CCre" } { key(22) = "SECRETS/DOMGUID/DOMAIN" data(16) = "\F4\048\BE\D9\C1\FD@\B1\F6\C0\BA\98\BD\8B\83" } [administrator@clw0 ~]$ net ads gpo list Administrator user: 'Administrator' has dn: 'CN=Administrator,CN=Users,DC=domain,DC=alt' Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open group mapping database: Permission denied Failed to initialise tdb mapping backend failed to initialize group mapping Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database Failed to open account policy database --------------------- name: Local Policy displayname: Local Policy version: 0 (0x00000000) version_user: 0 (0x0000) version_machine: 0 (0x0000) filesyspath: (null) dspath: (null) options: 0 GPFLAGS_ALL_ENABLED link: (null) link_type: 5 machine_extensions: (null) user_extensions: (null) --------------------- name: {31B2F340-016D-11D2-945F-00C04FB984F9} displayname: Default Domain Policy version: 0 (0x00000000) version_user: 0 (0x0000) version_machine: 0 (0x0000) filesyspath: \\domain.alt\sysvol\domain.alt\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9} dspath: CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=domain,DC=alt options: 0 GPFLAGS_ALL_ENABLED link: DC=domain,DC=alt link_type: 3 GP_LINK_DOMAIN machine_extensions: [{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{53D6AB1B-2488-11D1-A28C-00C04FB94F17}][{827D319E-6EAC-11D2-A4EA-00C04F79F83A}{803E14A0-B4FB-11D0-A0D0-00A0C90F574B}][{B1BE8D72-6EAC-11D2-A4EA-00C04F79F83A}{53D6AB1B-2488-11D1-A28C-00C04FB94F17}] --------------------- name: [{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{53D6AB1B-2488-11D1-A28C-00C04FB94F17}][{827D319E-6EAC-11D2-A4EA-00C04F79F83A}{803E14A0-B4FB-11D0-A0D0-00A0C90F574B}][{B1BE8D72-6EAC-11D2-A4EA-00C04F79F83A}{53D6AB1B-2488-11D1-A28C-00C04FB94F17}] extension: 35378EAC-683F-11D2-A89A-00C04FBBCFA2 extension (name): Registry Settings snapin: 53D6AB1B-2488-11D1-A28C-00C04FB94F17 snapin (name): unknown2 extension: 827D319E-6EAC-11D2-A4EA-00C04F79F83A extension (name): Security snapin: 803E14A0-B4FB-11D0-A0D0-00A0C90F574B snapin (name): Security Settings extension: B1BE8D72-6EAC-11D2-A4EA-00C04F79F83A extension (name): EFS recovery snapin: 53D6AB1B-2488-11D1-A28C-00C04FB94F17 snapin (name): unknown2 user_extensions: [{3060E8D0-7020-11D2-842D-00C04FA372D4}{3060E8CE-7020-11D2-842D-00C04FA372D4}][{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{0F6B957E-509E-11D1-A7CC-0000F87571E3}] --------------------- name: [{3060E8D0-7020-11D2-842D-00C04FA372D4}{3060E8CE-7020-11D2-842D-00C04FA372D4}][{35378EAC-683F-11D2-A89A-00C04FBBCFA2}{0F6B957E-509E-11D1-A7CC-0000F87571E3}] extension: 3060E8D0-7020-11D2-842D-00C04FA372D4 extension (name): unknown snapin: 3060E8CE-7020-11D2-842D-00C04FA372D4 snapin (name): Remote Installation Services extension: 35378EAC-683F-11D2-A89A-00C04FBBCFA2 extension (name): Registry Settings snapin: 0F6B957E-509E-11D1-A7CC-0000F87571E3 snapin (name): (null) security descriptor:
Предлагаешь запустить под root демон, который под билетом машины будет периодически проверять GPO для машины и являться прокси-сервером для net ads gpo list <пользователь> через unix-socket? Это решило бы проблемы с правами.
(In reply to comment #5) > Предлагаешь запустить под root демон, который под билетом машины будет > периодически проверять GPO для машины и являться прокси-сервером для net ads > gpo list <пользователь> через unix-socket? Это решило бы проблемы с правами. У меня реализовано расширение для oddjob. Пакету oddjob-gpdupdate необходим скрипт gpupdate. oddjob работает через dbus именно так, как ты описал. Кроме такой возможности (выполнить заданное рутовое приложение по запросу) в пакет oddjob-gpupdate входит соответствующий pam-модуль, который вызывает всё тот же dbus в момент логина. Не стоит расчитывать, что пользователь сможет настроить всё, что нужно со своими правами, поэтому я рассчитывал не на прокси, а на su в пользователя в самом gpupdate. То есть всё выполняется под рутом, а том, что нужно выполнить из-под пользователя, запускается в процессе, который урезает себя до пользователя при необходимости. Вслед за модулем pam_oddjob_gpupdate выполнятеся модуль pam_env user_readenv=1 user_envfile=.policy_environment, который применяет переменные окружения. В итоге, предлгаю в качестве такого root-демона использовать существующий oddjob.
(В ответ на комментарий №6) > (In reply to comment #5) > > Предлагаешь запустить под root демон, который под билетом машины будет > > периодически проверять GPO для машины и являться прокси-сервером для net ads > > gpo list <пользователь> через unix-socket? Это решило бы проблемы с правами. > > У меня реализовано расширение для oddjob. Пакету oddjob-gpdupdate необходим > скрипт gpupdate. oddjob работает через dbus именно так, как ты описал. Кроме > такой возможности (выполнить заданное рутовое приложение по запросу) в пакет > oddjob-gpupdate входит соответствующий pam-модуль, который вызывает всё тот же > dbus в момент логина. > > Не стоит расчитывать, что пользователь сможет настроить всё, что нужно со > своими правами, поэтому я рассчитывал не на прокси, а на su в пользователя в > самом gpupdate. То есть всё выполняется под рутом, а том, что нужно выполнить > из-под пользователя, запускается в процессе, который урезает себя до > пользователя при необходимости. Вслед за модулем pam_oddjob_gpupdate > выполнятеся модуль pam_env user_readenv=1 user_envfile=.policy_environment, > который применяет переменные окружения. > > В итоге, предлгаю в качестве такого root-демона использовать существующий > oddjob. Это также потребует кардинального изменения стека аутентификации, дополнительной настройки окружения из локальных файлов, потери билета Kerberos и возможности периодического обновления машинного GPO.
(In reply to comment #7) > (В ответ на комментарий №6) ... > > В итоге, предлгаю в качестве такого root-демона использовать существующий > > oddjob. > > Это также потребует кардинального изменения стека аутентификации, > дополнительной настройки окружения из локальных файлов, потери билета Kerberos > и возможности периодического обновления машинного GPO. Ничего кардинального не вижу. common-login объявлен как noreplace, в него нужно дописать одну строчку: session substack system-policy В файл system-policy нужно написать: -session optional pam_applygpo.so -session optional pam_env.so user_readenv=1 user_envfile=.policy_environment Дополнительная настройка для применения политик, так или иначе, всё равно потребуется. Где-то должно быть прописано, что нужно обновить политики для заданного пользователя. Политики должны отрабатывать до начала процесса логина. Иначе всё это применение будет глючить и требовать перелогина. Потеря билета Kerberos для какой задачи? Политики редко выполняются от имени пользователя - он настраивают окружение. Если задача состоит в том, что нужно запускать из-под пользователя не явно в фоне какие-то скрипты, то это плохая идея. Это сложно отлаживать и это приводит непредсказуемому поведению окружения пользователя. Если задача в том, чтобы отработать скрипты при старте логина, то файл скрипта гененрируется и кладётся в окружение пользователя. Возможность периодического обновления машинного GPO никак не зависит от oddjob. Периодическое обновление запускается точно также, как и без oddjob.
В целом, я предлагаю закрыть текущую проблему, как NOTABUG, поскольку желаемый функционал не заявлен по архитектуре. При этом для p9 и sisyphus данный функционал на клиенте доступен ещё и через утилиту samba-tool, а также через соответствующие питоновские модули. Тут важно понимать, что samba-tool у нас есть в двух вариантах - клиентский и серверный. На клиентах всё, включая питоновские модули слинковано с MIT Kerberos. Поэтому на клиентах достаточно установить пакет samba-dc-client, чтобы получить следующий функционал. [root@clw1 ~]# samba-tool gpo Usage: samba-tool gpo <subcommand> Group Policy Object (GPO) management. Options: -h, --help show this help message and exit Available subcommands: aclcheck - Check all GPOs have matching LDAP and DS ACLs. backup - Backup a GPO. create - Create an empty GPO. del - Delete a GPO. dellink - Delete GPO link from a container. fetch - Download a GPO. getinheritance - Get inheritance flag for a container. getlink - List GPO Links for a container. list - List GPOs for an account. listall - List all GPOs. listcontainers - List all linked containers for a GPO. restore - Restore a GPO to a new container. setinheritance - Set inheritance flag on a container. setlink - Add or update a GPO link to a container. show - Show information for a GPO. For more help on a specific subcommand, please type: samba-tool gpo <subcommand> (-h|--help) [root@clw1 ~]# samba-tool gpo listall | grep ^GPO GPO : {27910B1C-0EE1-4D5E-B75B-38C98BFF4479} GPO : {31B2F340-016D-11D2-945F-00C04FB984F9} GPO : {3D7514BF-508D-44E2-84CA-5BB0D433F0EC} GPO : {3E07047C-F85A-4EFB-8210-073AFE041261} GPO : {47615E9D-CE0D-4AA7-BED6-B452B3835D48} GPO : {67E3B0C0-0B51-4B98-BD39-CA5D9C297D96} GPO : {6AC1786C-016F-11D2-945F-00C04FB984F9} GPO : {A509A2FD-36FD-4107-9B98-9FEEE2DD31BF} GPO : {B8AB0798-44A4-4FCA-A7A7-8D911715E9E7} [root@clw1 ~]# samba-tool gpo list Administrator GPOs for user Administrator ADMX GPO {47615E9D-CE0D-4AA7-BED6-B452B3835D48} GPO Users {3E07047C-F85A-4EFB-8210-073AFE041261} Default Domain Policy {31B2F340-016D-11D2-945F-00C04FB984F9} [root@clw1 ~]# samba-tool gpo list CLW1$ GPOs for user CLW1$ ADMX GPO {47615E9D-CE0D-4AA7-BED6-B452B3835D48} GPO Users {3E07047C-F85A-4EFB-8210-073AFE041261} Default Domain Policy {31B2F340-016D-11D2-945F-00C04FB984F9} [root@clw1 ~]# samba-tool gpo fetch '{47615E9D-CE0D-4AA7-BED6-B452B3835D48}' Using temporary directory /tmp/.private/root/tmp8gke_mg2 (use --tmpdir to change) GPO copied to /tmp/.private/root/tmp8gke_mg2/policy/{47615E9D-CE0D-4AA7-BED6-B452B3835D48} [root@clw1 ~]# ls -l /tmp/.private/root/tmp8gke_mg2/policy/\{47615E9D-CE0D-4AA7-BED6-B452B3835D48\}/ total 12 -rw-r--r-- 1 root root 64 Sep 24 03:22 GPT.INI drwxr-xr-x 4 root root 4096 Sep 24 03:22 Machine drwxr-xr-x 2 root root 4096 Sep 24 03:22 User [root@clw1 ~]# ls -l /tmp/.private/root/tmp8gke_mg2/policy/\{47615E9D-CE0D-4AA7-BED6-B452B3835D48\}/User/Registry.pol -rw-r--r-- 1 root root 382 Sep 24 03:22 /tmp/.private/root/tmp8gke_mg2/policy/{47615E9D-CE0D-4AA7-BED6-B452B3835D48}/User/Registry.pol [root@clw1 ~]# samba-tool gpo backup '{47615E9D-CE0D-4AA7-BED6-B452B3835D48}' Using temporary directory /tmp/.private/root/tmpw6jnokel (use --tmpdir to change) GPO copied to /tmp/.private/root/tmpw6jnokel/policy/{47615E9D-CE0D-4AA7-BED6-B452B3835D48} [root@clw1 ~]# ls /tmp/.private/root/tmpw6jnokel/policy/\{47615E9D-CE0D-4AA7-BED6-B452B3835D48\}/ GPT.INI.SAMBABACKUP GPT.INI.xml Machine User [root@clw1 ~]# cat /tmp/.private/root/tmpw6jnokel/policy/\{47615E9D-CE0D-4AA7-BED6-B452B3835D48\}/GPT.INI.xml <?xml version="1.0" encoding="utf-8"?> <IniFile> <Section name="General"> <Parameter> <Key>Version</Key> <Value>131074</Value> </Parameter> <Parameter> <Key>displayName</Key> <Value>New Group Policy Object</Value> </Parameter> </Section> </IniFile> [root@clw1 ~]# cat /tmp/.private/root/tmpw6jnokel/policy/\{47615E9D-CE0D-4AA7-BED6-B452B3835D48\}/User/Registry.pol. Registry.pol.SAMBABACKUP Registry.pol.xml [root@clw1 ~]# cat /tmp/.private/root/tmpw6jnokel/policy/\{47615E9D-CE0D-4AA7-BED6-B452B3835D48\}/User/Registry.pol.xml <?xml version="1.0" encoding="utf-8"?> <PolFile num_entries="2" signature="PReg" version="1"> <Entry type="4" type_name="REG_DWORD"> <Key>Software\Microsoft\Windows\CurrentVersion\Policies\ActiveDesktop</Key> <ValueName>NoDeletingComponents</ValueName> <Value>1</Value> </Entry> <Entry type="4" type_name="REG_DWORD"> <Key>Software\Microsoft\Windows\CurrentVersion\Policies\System</Key> <ValueName>NoDispSettingsPage</ValueName> <Value>1</Value> </Entry> </PolFile> [root@clw1 ~]# cat /tmp/.private/root/tmpw6jnokel/policy/\{47615E9D-CE0D-4AA7-BED6-B452B3835D48\}/Machine/ Applications/ Registry.pol.SAMBABACKUP Registry.pol.xml Scripts/ [root@clw1 ~]# cat /tmp/.private/root/tmpw6jnokel/policy/\{47615E9D-CE0D-4AA7-BED6-B452B3835D48\}/Machine/Registry.pol.xml <?xml version="1.0" encoding="utf-8"?> <PolFile num_entries="2" signature="PReg" version="1"> <Entry type="4" type_name="REG_DWORD"> <Key>Software\BaseALT\Policies\Control</Key> <ValueName>ExecuteSuProgram</ValueName> <Value>1</Value> </Entry> <Entry type="4" type_name="REG_DWORD"> <Key>Software\Microsoft\Windows\CurrentVersion\Policies\Explorer</Key> <ValueName>UseDefaultTile</ValueName> <Value>1</Value> </Entry> </PolFile> Данный функционал также предназначен для работы только из-под рута, поскольку аналогично предыдущему net ads gpo list использует /var/lib/samba/private/secrets.tdb
NOTABUG