Подсистема для UNIX-приложений (SUA) предоставляет POSIX-совместимую подсистему (Portable Operating System Interface, интерфейс переносимой операционной системы), выполняющую оболочки, служебные программы и приложения, разработанные для операционных систем семейства UNIX, наряду с приложениями Microsoft® Windows®. В этом разделе содержатся некоторые рабочие соображения для пользователей, которым нужна POSIX-совместимая операционная система.

Совместимость с оболочкой POSIX

Korn-оболочка SUA следует традиционному поведению Korn-оболочки, которая почти идентична поведению POSIX. Если требуется строгое соответствие стандарту POSIX, необходимое для некоторых рабочих сред, см. различия между Korn-оболочкой и POSIX в документации по ksh(1) в файлах справки, находящихся в загружаемом пакете служебных программ и SDK подсистемы для UNIX-приложений.

Чтобы добиться от Korn-оболочки полного соответствия с POSIX.2, необходимо запустить Korn-оболочку в режиме POSIX. Чтобы запустить Korn-оболочку в режиме POSIX, выполните одно из следующих действий:

  • Откройте Korn-оболочку с параметром -o posix.

  • Выполните из оболочки команду set -o posix.

  • Установите параметр оболочки POSIXLY_CORRECT.

Соответствие POSIX не поддерживается в C-оболочке. В отличие от Korn-оболочке у C-оболочки отсутствуют параметры команд для POSIX-режима.

Перекрестная проверка разрешений каталогов

По умолчанию пользователи Windows обладают разрешениями перемещаться по дереву каталогов, но у них может не быть разрешений на доступ ко всем каталогам пути. В системах POSIX нельзя получить доступ к каталогу, если отсутствует доступ к хотя бы одному каталогу пути к нужному каталогу. Это поведение POSIX известно как перекрестная проверка. Например, при отсутствии разрешения доступа к каталогу нельзя изменить текущий каталог на любой из его подкаталогов, даже если есть разрешение на доступ к подкаталогам. По умолчанию в операционной системе Windows можно изменить текущий каталог на любой из подкаталогов, для которого есть разрешение на доступ.

В Windows существует специальное разрешение, называемое разрешением «Обзор папок/Выполнение файлов», которое можно задать для пользователя или группы. Это разрешение можно настроить, чтобы разрешить или запретить перемещение по дереву каталогов. Разрешение «Обзор папок» действует, только если группе или пользователю в оснастке «Групповая политика» не назначено разрешение «Обход перекрестной проверки». В Microsoft Windows 2000, по умолчанию, группе «Все» назначено разрешение «Обход перекрестной проверки». В операционных системах Windows Server® 2008 R2, Windows® 7, Windows Server® 2008, Windows Vista®, Windows Server 2003 и Windows XP этим разрешением обладают группы «Администраторы», «Операторы архива», «Все», «Опытные пользователи» и «Пользователи». Для строгого соответствия стандартам POSIX удалите разрешение «Обход перекрестной проверки» для всех пользователей и групп кроме группы «Операторы архива». Чтобы соответствовать привилегиям, назначенным пользователю root во многих других реализациях UNIX, удалите разрешение «Обход перекрестной проверки» для всех пользователей кроме групп «Администраторы» и «Операторы архива».

Отличие поведения перекрестной проверки для su и setuid

Поведение привилегированных пользователей, использующих команду su для запуска от имени других пользователей, и пользователей, использующих процессы setuid (а также процессы, включающие связанные с setuid вызовы), отличается от описанного выше поведения по умолчанию сохранением некоторых прав на обзор папок.

Удаление права Обход перекрестной проверки из учетных записей пользователей приводит к совместимому с POSIX поведению. Однако при попытке привилегированного пользователя запустить su от имени другого пользователя без пароля поведение сеанса будет отличаться от описанного выше. Процессы, которые были начаты после запуска su привилегированным пользователем без ввода пароля, могут получать доступ к папкам и перемещаться по дереву каталогов, но у них может не быть разрешений на доступ ко всем каталогам пути.

Аналогичное поведение свойственно процессам Setuid, а также процессам, вызывающим setuid, seteuid или setreuid. После удаления права Обход перекрестной проверки из учетной записи пользователя, от имени которого запущены эти процессы, процессы могут перемещаться по дереву каталогов, но они могут не иметь разрешения на доступ ко всем каталогам пути.

См. также