Версия: gpupdate-0.13.2-alt1 Шаги воспроизведения: 1) На управляющей машине включить экспериментальные групповые политики и настроить механизмы GPUpdate для подключения сетевых каталогов 2) На клиентах добавить include = /etc/samba/usershares.conf в секцию global файла /etc/samba/smb.conf 3) На клиентах предварительно создать директорию mkdir /var/cshare && chmod 777 /var/cshare для share 4) На клиентах выполнить # control smb-conf-usershares enabled && control smb-conf-usershare-owner-only disabled 5) На управляющей машине создать сетевую папку cshare для компьютера: Действие: Создание Имя шары: cshare Путь к каталогу: /var/cshare Комментарий: computer share Нажать OK 6) Применить групповые политики на клиенте Всё в соответствии с https://www.altlinux.org/%D0%93%D1%80%D1%83%D0%BF%D0%BF%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B8/%D0%9E%D0%B1%D1%89%D0%B8%D0%B5_%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B8#%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5 Фактический результат: Сетевая папка не была создана. 2025-04-23 13:16:39.859|[D00182]| Не удалось применить действие с данными общего сетевого ресурса|{'cmd': ['/usr/bin/net', 'usershare', 'add', 'cshare', '/var/cshare', 'computer share', 'Everyone:F', 'guest_ok=y'], 'exc': CalledProcessError(255, ['/usr/bin/net', 'usershare', 'add', 'cshare', '/var/cshare', 'computer share', 'Everyone:F', 'guest_ok=y'])} Ожидаемый результат: Сетевая папка создана. ==== net usershare add [--long] <sharename> <path> [<comment>] [<acl>] [<guest_ok=[y|n]>] Adds the specified share name for this user. <sharename> is the new share name. <path> is the path on the filesystem to export. <comment> is the optional comment for the new share. <acl> is an optional share acl in the format "DOMAIN\name:X,DOMAIN\name:X,...." <guest_ok=y> if present sets "guest ok = yes" on this usershare. "X" represents a permission and can be any one of the characters f, r or d where "f" means full control, "r" means read-only, "d" means deny access. name may be a domain user or group. For local users use the local server name instead of "DOMAIN" The default acl is "Everyone:r" which allows everyone read-only access. Обязательными параметрами являются <sharename> и <path>. В классе Networkshare прибит self._guest = 'guest_ok=y' class Networkshare: def __init__(self, networkshare_obj, username = None): self.net_full_cmd = ['/usr/bin/net', 'usershare'] self.net_cmd_check = ['/usr/bin/net', 'usershare', 'list'] self.cmd = list() self.name = networkshare_obj.name self.path = expand_windows_var(networkshare_obj.path, username).replace('\\', '/') if networkshare_obj.path else None self.action = action_letter2enum(networkshare_obj.action) self.allRegular = networkshare_obj.allRegular self.comment = networkshare_obj.comment self.limitUsers = networkshare_obj.limitUsers self.abe = networkshare_obj.abe self._guest = 'guest_ok=y' self.acl = 'Everyone:' self.act() В случаях, когда в конфигурационном файле usershare allow guests = no, возникают ошибки: 2025-04-23 13:16:39.859|[D00182]| Не удалось применить действие с данными общего сетевого ресурса|{'cmd': ['/usr/bin/net', 'usershare', 'add', 'cshare', '/var/cshare', 'computer share', 'Everyone:F', 'guest_ok=y'], 'exc': CalledProcessError(255, ['/usr/bin/net', 'usershare', 'add', 'cshare', '/var/cshare', 'computer share', 'Everyone:F', 'guest_ok=y'])} Потому что: # net usershare add "cshare" "/var/cshare" "computer share" "Everyone:F" "guest_ok=y" net usershare add: guest_ok=y requested but the "usershare allow guests" parameter is not enabled by this server. Причём, usershare allow guests можно настраивать политикой "Гостевой доступ к общим каталогам" и сломать всё, если запретить его. Параметр acl тоже прибит со значением Everyone:F, но он не настраивается в /etc/samba/usershares.conf Было бы славно, для повышение гибкости настройки, настраивать acl с помощью какой-нибудь групповой политики (это скорее улучшение на будущее). Исправление описанной проблемы с self._guest в https://github.com/altlinux/gpupdate/pull/214