В качестве заголовка вопроса я бы очень хотел узнать, как проверить права ntfs данного файла или папки (подсказка: те, которые вы видите в вкладка «безопасность»). В принципе, мне нужно сделать путь к файлу или каталогу (на локальном компьютере или, предпочтительно, на общем ресурсе на удаленной машине) и получить список пользователей/групп и соответствующие разрешения для этого файла/папки , В конечном итоге приложение будет перемещаться по дереву каталогов, разрешая чтение разрешений для каждого объекта и соответствующим образом обрабатывая их.Проверка прав доступа к папке/файлу ntfs с использованием python
Теперь я могу думать о ряде способов сделать это:
- разбора вывода Cacls.exe - легко сделать, но, если им не хватает чего-то, cacls.exe только дает разрешения в форма R | W | C | F (чтение/запись/изменение/полное), что недостаточно (мне нужно получить разрешения, такие как «Содержимое папки списка», расширенные разрешения тоже)
- xcacls.exe или xcacls.vbs output - да, они дают мне все необходимые разрешения, но они работают ужасно медленно, для получения разрешений в локальном системном файле требуется xcacls.vbs о ONE SECOND. Такая скорость неприемлема
- win32security (она обтекает WinAPI, верно?) - Я уверен, что он может быть обработан, как это, но я предпочел бы не изобретать колесо
Есть ли что-нибудь еще я отсутствует здесь?
Я думаю, что win32security - это то, что вы хотите. Это действительно обертка вокруг Windows API. Вы обеспокоены тем, что он слишком низкоуровневый? –
Ну, если это единственный способ, которым я мог бы это сделать, используя win32security, но это было бы похоже на то, чтобы катить мои собственные cacls, вот почему я назвал это как изобретать колесо. – shylent
Ну, во-первых, cacls не делает все, что делает Win API (в том числе, по-видимому, то, что вы хотите сделать). Во-вторых, вызов API (даже с помощью привязок), вероятно, будет намного быстрее, чем обход другой программы и анализ вывода. –