1

Как Cygwin может обойти ACLS Windows XP? В следующем примере cmd.exe не может создать файл в каталоге, но bash может. Что дает?

C:\WINDOWS\Temp>mkdir noaccess

C:\WINDOWS\Temp>cacls noaccess /E /R Everyone
processed dir: C:\WINDOWS\Temp\noaccess

C:\WINDOWS\Temp>cacls noaccess
C:\WINDOWS\Temp\noaccess

C:\WINDOWS\Temp>echo abc > noaccess\abc
Access is denied.

C:\WINDOWS\Temp>c:\cygwin\bin\bash -c "echo abc > noaccess/abc"

C:\WINDOWS\Temp>c:\cygwin\bin\bash -c "/bin/cat noaccess/abc"
abc

2 ответа2

0

Приложения Cygwin не имеют никаких особых привилегий, но они "стараются изо всех сил". В случае сбоя вызова Win32 Cygwin попытается использовать функцию API ядра NT для выполнения эквивалентной операции (а иногда он просто сначала использует API ядра NT). Как ни странно, API ядра NT могут преуспеть там, где отказывают API Win32.

0

Я думаю, что это связано с опцией noacl

noacl - Cygwin игнорирует ACL файловой системы и подделывает только подмножество битов разрешений на основе атрибута DOS только для чтения. Это поведение по умолчанию для FAT и FAT32. Флаг игнорируется в файловых системах NFS.

Это на самом деле не объясняет, как Windows не может применять ACL. Я думаю, у Cygwin есть какие-то привилегии. Возможно, это станет яснее, если вы прочитаете о Cygwin и безопасности NT.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .