Samba имеет опцию smb.conf
которая заставляет его делать именно то, что вы хотите: перечислять ресурсы на основе доступа. Это называется access based share enum
:
Если для службы этот параметр имеет значение « yes
, то общий ресурс, размещенный в службе, будет виден только пользователям, которые имеют права на чтение или запись для общего ресурса во время перечисления общего ресурса (например, net view \sambaserver). Это имеет параллели с перечислением на основе доступа, основное отличие состоит в том, что оцениваются только разрешения для общего ресурса, а дескрипторы безопасности для файлов, содержащихся в общем ресурсе, не используются при вычислении прав доступа для перечисления.
По умолчанию: access based share enum = no
Этот параметр может быть установлен либо в разделе [global]
, где он будет устанавливать значение по умолчанию, либо локально в разделе общего доступа, где он будет переопределять параметр default/global.
Однако существует довольно серьезное ограничение: для редактирования ACL разрешений для общего ресурса необходимо подключиться с помощью консоли MMC Windows. Вам также нужен SeDiskOperatorPrivilege
, который, к сожалению, не может быть предоставлен без присоединения Samba к домену Active Directory.
Права доступа к общим ресурсам не совпадают с правами valid users
и т.п.