From: Evgeny Sinelnikov <sin@altlinux.org> To: "ALT Linux sysadmins' discussion" <sysadmins@lists.altlinux.org> Cc: "Константин Палачев" <pku@basealt.ru>, "Elena Mishina" <lepata@basealt.ru>, "Александр Клепалов" <a.klepalov@school100nt.ru>, "Saratov BaseALT department" <saratov@lists.altlinux.org> Subject: [Sysadmins] Политика управления ярлычками в Samba AD Date: Sun, 15 Aug 2021 19:46:31 +0400 Message-ID: <CAK42-Gp7ZWDTiKjuMhMnxehSUmYc1gKBJq0_EawXGf3rJJ4jvA@mail.gmail.com> (raw) In-Reply-To: <CAK42-GpMUWNnPcNA-i89EiEg=dDSxnfJWrvcAK3FK8XrR1myAA@mail.gmail.com> Добрый день, в продолжении обсуждения задачи "организация автоматически подключаемой папки пользователя домена" хочу дать дополнительные пояснения и сообщить новости по отношению к предыдущему обсуждению: https://lists.altlinux.org/pipermail/sysadmins/2021-July/038358.html Кратко. Если для решения задачи подключения сетевых каталогов не требуется явное монтирование через cifs, а достаточно доступа по UNC-путям (в linux по протоколу smb:// доступно в любом, практически, файловом менеджере), то достаточно раскидать каждому пользователю свой ярлычок со ссылкой на сетевой каталог в формате: smb://ИМЯ_СЕРВЕРА/ИМЯ_ШАРЫ/ПУТЬ_ШАРЕ. Строго говоря, управление ярлычками называется не политикой, а предпочтением (или Настройкой в русском переводе утилиты редактирования шаблона групповой политики в RSAT), поскольку, по-первых, такие изменения в конфигурации невозможно откатить (они как татуировки - несмываемые), а во-вторых - потому что такие изменения невозможно запретить изменять. Ну, можно как-то на уровне файлового доступа что-то накрутить, конечно. Но не для всех задач это подходит. Итого, в качестве решения для раскидывания каждому пользователю "своего" ярлычка с именем пользователя в качестве имени шары (домашнего каталога на файловом сервере samba), я предлагал использовать групповые политики в ALT (пакет alterator-gpupdate для поддержки на клиентах) со ссылкой для ярлычок в формате (см. https://drive.google.com/uc?export=view&id=1eeBu49ju9Le1XeIrrtWFrZxBgSjvj6fk): smb://SAMBA_SERVER/%LogonUser% Данное решение в тот момент требовало доработки нашего инструмента применения групповых политик. Хочу сообщить, что необходимая доработка была успешно внесена в релизе gpupdate-0.9.2, пересобрана и включена в бранч p9: - https://github.com/altlinux/gpupdate/releases/tag/0.9.2-alt1 - http://git.altlinux.org/gears/g/gpupdate.git Детали по поводу управления ярлыками через групповые политики можно уточнить у нас на wiki: https://www.altlinux.org/Групповые_политики/Управление_ярлыками В качестве примера нас на wiki приводится пример машинной политики для создания ярлыка: {GUID GPT}/Machine/Preferences/Shortcuts/Shortcuts.xml Приведу другой похожий пример, которым можно воспользоваться даже не разворачивая RSAT под Windows, чтобы попробовать: <?xml version="1.0" encoding="utf-8"?> <Shortcuts clsid="{872ECB34-B2EC-401b-A585-D32574AA90EE}"> <Shortcut clsid="{4F2F7C55-2790-433e-8127-0739D1CFA327}" userContext="1" name="Точка SSH" status="Точка SSH" image="1" changed="2021-08-03 16:35:50" uid="{033064C7-140C-4371-9709-2089D718A196}"> <Properties pidl="" targetType="FILESYSTEM" action="R" comment="" shortcutKey="0" startIn="" arguments="" iconIndex="0" targetPath="%HOME%/.ssh" iconPath="ssh" window="" shortcutPath="%DesktopDir%\Точка SSH"/> </Shortcut> </Shortcuts> В новом релизе была внесена доработка, позволяющая раскрывать подстановки не только для файла самого ярлыка (shortcutPath), но и для пути, на который он ссылается (targetPath). Таким образом, для рассматриваемой задачи следует создать пользовательскую политику: {GPT}/User/Preferences/Shortcuts/Shortcuts.xml где следует указать shortcutPath="%DesktopDir%\Документы на сервере" и targetPath="smb://server.my.domain/%LogonUser%" при этом на samba сервере должна быть включена шара [homes], а пользователь должен, например, хотя бы раз залогинится, чтобы у него существовал домашний каталог на samba-сервере. Можно этот каталог создать вручную админом, задав ему владельца и группу. Создаём объект групповой политики. # kinit DOMAIN_ADMIN # samba-tool gpo create "Home shares on server policy" -k yes Using temporary directory /tmp/.private/root/tmpjreop66v (use --tmpdir to change) Password for [administrator@DOMAIN.ALT]: GPO 'Home shares on server policy' created as {06975BC5-8858-44B0-934C-10D550877476} Проверяем, создался ли к нему каталог с шаблоном групповой политики (GPT): # ls -t /var/lib/samba/sysvol/*/Policies | head -1 {06975BC5-8858-44B0-934C-10D550877476} Важно помнить про то, что расширенные права на файлы в каталоге GPT имеют существенное значение для целостности инфраструктуры. Как минимум для того, чтобы компьютеры могли получить доступ к соответствующим файлам в сетевом каталоге SysVol. # getfacl /var/lib/samba/sysvol/*/Policies/{06975BC5-8858-44B0-934C-10D550877476} getfacl: Removing leading '/' from absolute path names # file: var/lib/samba/sysvol/domain.alt/Policies/{06975BC5-8858-44B0-934C-10D550877476} # owner: DOMAIN\\domain\040admins # group: DOMAIN\\domain\040admins user::rwx user:NT\040AUTHORITY\\system:rwx user:NT\040AUTHORITY\\authenticated\040users:r-x user:DOMAIN\\enterprise\040admins:rwx user:NT\040AUTHORITY\\enterprise\040domain\040controllers:r-x group::rwx group:NT\040AUTHORITY\\system:rwx group:NT\040AUTHORITY\\authenticated\040users:r-x group:DOMAIN\\domain\040admins:rwx group:DOMAIN\\enterprise\040admins:rwx group:NT\040AUTHORITY\\enterprise\040domain\040controllers:r-x mask::rwx other::--- default:user::rwx default:user:NT\040AUTHORITY\\system:rwx default:user:NT\040AUTHORITY\\authenticated\040users:r-x default:user:DOMAIN\\domain\040admins:rwx default:user:DOMAIN\\enterprise\040admins:rwx default:user:NT\040AUTHORITY\\enterprise\040domain\040controllers:r-x default:group::--- default:group:NT\040AUTHORITY\\system:rwx default:group:NT\040AUTHORITY\\authenticated\040users:r-x default:group:DOMAIN\\domain\040admins:rwx default:group:DOMAIN\\enterprise\040admins:rwx default:group:NT\040AUTHORITY\\enterprise\040domain\040controllers:r-x default:mask::rwx default:other::--- # smbcacls //dc0/sysvol domain.alt/Policies/{06975BC5-8858-44B0-934C-10D550877476} -k yes REVISION:1 CONTROL:SR|PD|DP OWNER:DOMAIN\Domain Admins GROUP:DOMAIN\Domain Admins ACL:DOMAIN\Domain Admins:ALLOWED/OI|CI/FULL ACL:DOMAIN\Enterprise Admins:ALLOWED/OI|CI/FULL ACL:CREATOR OWNER:ALLOWED/OI|CI|IO/FULL ACL:DOMAIN\Domain Admins:ALLOWED/OI|CI/FULL ACL:NT AUTHORITY\SYSTEM:ALLOWED/OI|CI/FULL ACL:NT AUTHORITY\Authenticated Users:ALLOWED/OI|CI/READ ACL:NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS:ALLOWED/OI|CI/READ Создаём каталог с политикой для ярлычков: # mkdir -p /var/lib/samba/sysvol/domain.alt/Policies/{06975BC5-8858-44B0-934C-10D550877476}/User/Preferences/Shortcuts Создаём файл с предпочтением: # cat >/var/lib/samba/sysvol/domain.alt/Policies/\{06975BC5-8858-44B0-934C-10D550877476\}/User/Preferences/Shortcuts/Shortcuts.xml <?xml version="1.0" encoding="utf-8"?> <Shortcuts clsid="{872ECB34-B2EC-401b-A585-D32574AA90EE}"> <Shortcut clsid="{4F2F7C55-2790-433e-8127-0739D1CFA327}" userContext="1" name="Домашний на сервере" status="Домашний на сервере" image="1" changed="2021-08-15 18:00:00" uid="{033064C7-140C-4371-9709-2089D718A196}"> <Properties pidl="" targetType="FILESYSTEM" action="R" comment="" shortcutKey="0" startIn="" arguments="" iconIndex="0" targetPath="smb://SERVER/%LogonUser%" iconPath="ssh" window="" shortcutPath="%DesktopDir%\Домашний на сервере"/> </Shortcut> </Shortcuts> Назначаем политику одному из подразделений # samba-tool ou list OU=desktop OU=orgTest OU=gsettings OU=Deny Login OU=Allow Login OU=Win Department OU=Allow/Deny Login OU=Domain Controllers # samba-tool gpo setlink OU=gsettings,DC=domain,DC=alt {06975BC5-8858-44B0-934C-10D550877476} -k yes Added/Updated GPO link GPO(s) linked to DN OU=gsettings,DC=domain,DC=alt GPO : {06975BC5-8858-44B0-934C-10D550877476} Name : Home shares on server policy Options : NONE В некоторых ситуациях может потребоваться проверить и сбросить права на файлы: # getfacl /var/lib/samba/sysvol/*/Policies/{06975BC5-8858-44B0-934C-10D550877476}/User/Preferences/Shortcuts/Shortcuts.xml # smbcacls //dc0/sysvol domain.alt/Policies/{06975BC5-8858-44B0-934C-10D550877476}/User/Preferences/Shortcuts/Shortcuts.xml -k yes # samba-tool ntacl sysvolreset Мне не потребовалось, но видно, что права урезаны: # smbcacls //dc0/sysvol domain.alt/Policies/{06975BC5-8858-44B0-934C-10D550877476}/User/Preferences/Shortcuts/Shortcuts.xml -k yes REVISION:1 CONTROL:SR|DP OWNER:DOMAIN\Administrator GROUP:S-1-22-2-0 ACL:DOMAIN\Administrator:ALLOWED/0x0/RWDPO ACL:S-1-22-2-0:ALLOWED/0x0/ ACL:NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS:ALLOWED/0x0/R ACL:DOMAIN\Enterprise Admins:ALLOWED/0x0/RWDPO ACL:DOMAIN\Domain Admins:ALLOWED/0x0/RWDPO ACL:NT AUTHORITY\Authenticated Users:ALLOWED/0x0/R ACL:NT AUTHORITY\SYSTEM:ALLOWED/0x0/RWDPO ACL:NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS:ALLOWED/0x0/R ACL:DOMAIN\Enterprise Admins:ALLOWED/0x0/RWDPO ACL:DOMAIN\Domain Admins:ALLOWED/0x0/RWDPO ACL:NT AUTHORITY\Authenticated Users:ALLOWED/0x0/R ACL:NT AUTHORITY\SYSTEM:ALLOWED/0x0/RWDPO ACL:Everyone:ALLOWED/0x0/ # getfacl /var/lib/samba/sysvol/*/Policies/{06975BC5-8858-44B0-934C-10D550877476}/User/Preferences/Shortcuts/Shortcuts.xml getfacl: Removing leading '/' from absolute path names # file: var/lib/samba/sysvol/domain.alt/Policies/{06975BC5-8858-44B0-934C-10D550877476}/User/Preferences/Shortcuts/Shortcuts.xml # owner: root # group: root user::rw- user:NT\040AUTHORITY\\system:rwx #effective:rw- user:NT\040AUTHORITY\\authenticated\040users:r-x #effective:r-- user:DOMAIN\\domain\040admins:rwx #effective:rw- user:DOMAIN\\enterprise\040admins:rwx #effective:rw- user:NT\040AUTHORITY\\enterprise\040domain\040controllers:r-x #effective:r-- group::--- group:NT\040AUTHORITY\\system:rwx #effective:rw- group:NT\040AUTHORITY\\authenticated\040users:r-x #effective:r-- group:DOMAIN\\domain\040admins:rwx #effective:rw- group:DOMAIN\\enterprise\040admins:rwx #effective:rw- group:NT\040AUTHORITY\\enterprise\040domain\040controllers:r-x #effective:r-- mask::rw- other::--- Все эти штуки с правами обычно никто не проверяет, потому что не очень понимает, а какими они должны быть. _______________________________ Всё готово, проверяем на клиенте. Заходим в клиента с выключенными политиками: clw0 ~ # ssh suser@localhost suser@localhost's password: Last login: Sun Aug 15 17:55:46 2021 from 127.0.0.1 suser@clw0 ~ $ выход Connection to localhost closed. Домашний каталог условно пуст: clw0 ~ # ls /home/DOMAIN.ALT/suser/ Применение групповых политик было отключено: clw0 ~ # gpupdate-setup disabled Включение применения групповых политик (для включения через alterator доступен соответствующий графический модуль управления, а также "галочка" во время введения машины в домен): clw0 ~ # gpupdate-setup enable workstation clw0 ~ # control system-policy gpupdate Логинимся через ssh, видим уведомление о применении групповых политик. clw0 ~ # ssh suser@localhost suser@localhost's password: Apply group policies for suser. Last login: Sun Aug 15 17:56:55 2021 from 127.0.0.1 Проверяем наличие и содержание ярлычка. suser@clw0 ~ $ ls Desktop/Домашний\ на\ сервере.desktop -l -rwxr--r-- 1 suser domain users 137 авг 15 17:58 'Desktop/Домашний на сервере.desktop' suser@clw0 ~ $ cat Desktop/Домашний\ на\ сервере.desktop [Desktop Entry] Type=Application Version=1.0 Name=Домашний на сервере Terminal=false Exec=smb://SERVER/suser Icon=ssh _________________________________ PS: следует учесть, что полная поддержка (в режиме создать, удалить, обновить, и заменить) для ярлыков запланирована только на следующий ближайший релиз. Пока ярлыки только пересоздаются. PPS: Думаю, что это всё стоит дополнить и перенести на вики и в документацию. PPPS: Локальная проверка на клиенте доступа на в сервер: clw0 ~ # ssh suser@localhost suser@localhost's password: Apply group policies for suser. Last login: Sun Aug 15 18:30:23 2021 from 127.0.0.1 suser@clw0 ~ $ kinit Password for suser@DOMAIN.ALT: Warning: Your password will expire in 365 days on Вт 16 авг 2022 17:50:24 suser@clw0 ~ $ smbclient -k -L //dc0.domain.alt Sharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.14.5) suser Disk Home directory of DOMAIN\suser SMB1 disabled -- no workgroup available suser@clw0 ~ $ gio list smb://dc0.domain.alt/suser gio: smb://dc0.domain.alt/suser/: Указанный адрес не подключён suser@clw0 ~ $ gio mount smb://dc0.domain.alt/suser suser@clw0 ~ $ gio list smb://dc0.domain.alt/suser suser@clw0 ~ $ gio mkdir smb://dc0.domain.alt/suser/data suser@clw0 ~ $ gio list smb://dc0.domain.alt/suser data Почему этот mount - не настоящий cifs mount: suser@clw0 ~ $ mount | grep gvfs gvfsd-fuse on /run/user/549401134/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=549401134,group_id=549400513) suser@clw0 ~ $ mountpoint /run/user/549401134/gvfs /run/user/549401134/gvfs is a mountpoint suser@clw0 ~ $ ls /run/user/549401134/gvfs 'smb-share:server=dc0.domain.alt,share=suser' suser@clw0 ~ $ ls /run/user/549401134/gvfs/smb-share:server=dc0.domain.alt,share=suser data suser@clw0 ~ $ rpm -qa|grep gvfs|grep smb gvfs-backend-smb-1.48.1-alt1.x86_64 suser@clw0 ~ $ rpm -ql gvfs-backend-smb /usr/libexec/gvfs/gvfsd-smb /usr/libexec/gvfs/gvfsd-smb-browse /usr/share/GConf/gsettings/gvfs-smb.convert /usr/share/glib-2.0/schemas/org.gnome.system.smb.gschema.xml /usr/share/gvfs/mounts/smb-browse.mount /usr/share/gvfs/mounts/smb.mount suser@clw0 ~ $ ldd /usr/libexec/gvfs/gvfsd-smb | grep libsmbclient libsmbclient.so.0 => /usr/lib64/libsmbclient.so.0 (0x00007f64fd3fb000) -- Sin (Sinelnikov Evgeny)
next prev parent reply other threads:[~2021-08-15 15:46 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-25 21:03 ` [Sysadmins] как организовать автоматически подключаемую папку пользователя домена Evgeny Sinelnikov 2021-07-26 6:09 ` Vladimir Karpinsky 2021-07-26 17:25 ` Vladimir Karpinsky 2021-08-15 15:46 ` Evgeny Sinelnikov [this message] 2021-07-26 5:33 ` Andrey Cherepanov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=CAK42-Gp7ZWDTiKjuMhMnxehSUmYc1gKBJq0_EawXGf3rJJ4jvA@mail.gmail.com \ --to=sin@altlinux.org \ --cc=a.klepalov@school100nt.ru \ --cc=lepata@basealt.ru \ --cc=pku@basealt.ru \ --cc=saratov@lists.altlinux.org \ --cc=sysadmins@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux sysadmins discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \ sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com public-inbox-index sysadmins Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sysadmins AGPL code for this site: git clone https://public-inbox.org/public-inbox.git