Как вы устанавливаете разрешения для общего ресурса Windows NTFS, чтобы пользователи (в группе AD)
1) могут читать любой файл на этом ресурсе, если знают полный путь к файлу
2) не может просматривать / перечислять любую папку на этом общем ресурсе
Идея состоит в том, чтобы использовать путь к файлу как «токен доступа» к файлу.
Вот решение, которое наконец-то сработало для меня, с помощью @joequerty, указывающего мне в правильном направлении:
Предположим, что папка sh является общей
1) общая папка sh "только для чтения" для всех (\\ host \ sh)
2) дать разрешение на чтение / выполнение на sh для всех, но применимо только к файлам.
Предположим, у нас есть файл в sh \ a \ b \ c \ f.txt
3) отдавать только (непосредственной родительской) папке c
Разрешения на чтение / выполнение, чтение и список папок для всех и применяются только к этой папке
Теперь \\ host \ sh \ a \ b \ c \ f.txt доступен всем
dir \\ host \ sh \ a \ b \ c отобразит f.txt
dir \\ host \ sh \ a \ b и выше ни к чему не приведет
Право пользователя «Обход поперечной проверки» - это то, что позволяет пользователю получать доступ к файлам по пути, в котором у них нет разрешений в пути, за исключением файлов / папок, для которых у них есть явные разрешения. По умолчанию это право предоставляется группе безопасности «Все». Все, что вам нужно сделать, это предоставить пользователю права доступа к файлам, к которым вы хотите получить доступ. Затем они могут получить доступ к этим файлам напрямую, если им известен полный путь к этим файлам.