1

Это то, что происходит, но почему?

liuxiang@MacBookPro: ~/casecode/sh $ ls -l sa 
-rwx---rwx  1 root  admin  55 10 21 00:07 sa
liuxiang@MacBookPro: ~/casecode/sh $ cat sa
cat: sa: Permission denied
liuxiang@MacBookPro: ~/casecode/sh $ date >> sa
-bash: sa: Permission denied
liuxiang@MacBookPro: ~/casecode/sh $ ./sa
-bash: ./sa: Permission denied

2 ответа2

2

Как и в большинстве других UNIX-подобных операционных систем, Macintosh позволяет вам контролировать доступ к файлу с разрешениями POSIX. Однако, начиная с Mac OS/X 10.4 (Tiger), файл и операционная система Macintosh позволяют (опционально) настраивать список контроля доступа. Списки контроля доступа дают администратору гораздо больше контроля, чем обычные разрешения POSIX (ACL чаще всего используются в рабочих средах).

Как примечание, Windows поддерживает ACL начиная с Windows NT; и некоторые версии Linux делают то же самое. Кроме того, есть отличная статья о списках контроля доступа в Macintosh на Ars Technica.

Во всяком случае, в соответствии с Mac OS X Server v10.6 - руководство пользователя управления (см 28), если есть один или несколько правил ACL , установленные для файла , и один из этих правил ACL применяется к вам, то правила ACL имеют приоритет поверх обычных разрешений POSIX.

В вашем случае ваш файл принадлежит "корневому" пользователю ("суперпользователь") и принадлежит к группе "администратор" (к этой группе относятся только пользователи, помеченные как "Администраторы" на панели "Учетные записи" в Системных настройках). Разрешения POSIX для вашего файла настроены так, чтобы root мог читать, записывать и выполнять файл; запрещает любой доступ для группы "администратор" и позволяет другим пользователям читать, записывать и выполнять ее. Как вы продемонстрировали, вам следует разрешить делать с этим файлом все, что вы хотите! Не волнуйтесь, хотя; вы не сходите с ума (что всегда обнадеживает, узнав ^ _ ^) ... похоже, что правило ACL мешает и переопределяет разрешения файла POSIX.

Вот почему Марк спросил:

Что показывает ls -e?

... ls -e показывает правила списка контроля доступа для этого файла. Очевидно, если у вас установлен Macintosh Server, есть хорошая панель, которая позволяет вам управлять всеми правилами. (В обычном диалоговом окне "Получить информацию" в Finder также есть ограниченный файл ... найдите файл в Finder и нажмите «Command +i», чтобы "получить информацию" для него ... разверните панель "Общий доступ и разрешения" внизу). окна покажет вам некоторые правила ACL ... вам придется разблокировать эту панель, чтобы изменить права доступа).

Если способ Finder не работает, вам придется попробовать ls -e . Надеемся, что распечатанные правила ACL не будут слишком сложными. Однако в документе «Обзор безопасности» в Центре разработки Macintosh есть удобная ссылка ACL . Не стесняйтесь ответить на этот пост, если вам нужна дополнительная помощь.

В вашем случае, даже если вы знаете правила ACL, вы не сможете ничего с этим поделать ... только владелец (или суперпользователь, который в вашем случае также является владельцем) может изменить его; и только люди, которые входят в группу "администратор" (к которой вы говорите, что не принадлежите) могут действовать от имени суперпользователя. Однако, если вы хотите попробовать, вы (или кто-то, кто является администратором) можете перейти в каталог, содержащий файл, и выполнить одну или несколько из следующих команд:

sudo chmod +a "liuxiang allow read" sa # для включения чтения

sudo chmod +a "liuxiang allow write" sa # для включения записи

sudo chmod +a "liuxiang allow execute" sa #, чтобы включить его выполнение

... (или что-то подобное), чтобы исправить это (вам будет предложено ввести пароль человека, который запускает команду).

Надеюсь, это поможет!

0

Посмотрите здесь:Команда для разблокировки "заблокированных" файлов на OS X

Может быть, это помогает.

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