Чому я не можу прочитати чи записати файл, власник якого є root, а дозвіл - 707 в Terminal.app на Snow Leopard?


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

Який вихід 'id'?
Еміль Сиди

1
Що показує ls -e? (показує ACL)
Марк

Відповіді:


2

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

В якості відмітки, Windows підтримує ACL з Windows NT; а також деякі версії Linux. Також є чудова стаття про списки контролю доступу в Macintosh на Ars Technica .

У будь-якому випадку, відповідно до Mac OS X Server v10.6 - Посібник з управління користувачем (див. Стор. 28), якщо для файлу встановлено одне або кілька правил ACL, і одне з цих правил ACL стосується вас, то правила ACL мають перевагу над звичайними дозволами POSIX .

У вашому випадку ваш файл належить користувачеві "root" ("суперпользователь") і належить до групи "admin" (до цієї групи належать лише користувачі, позначені як "Адміністратори" на панелі "Облікові записи"). Права POSIX у вашому файлі встановлені так, щоб дозволити root читати, записувати та виконувати файл; відмовляє у всьому доступі для групи "адмін" та дозволяє іншим користувачам читати, писати та виконувати її. Як ви продемонстрували, вам слід дозволити робити все, що завгодно, до цього файлу! Не хвилюйтеся, хоча; ви не збуваєте з розуму (що завжди запевняє знати ^ _ ^) ... виявляється, що правило ACL стає на шляху і перекриває права доступу POSIX файлу.

Ось чому Марк запитав:

Що показує ls -e?

... ls -eпоказує правила списку контролю доступу для цього файлу. Мабуть, якщо у вас є Macintosh Server, є приємна панель, яка дозволяє вам керувати всіма правилами. (Також у діалоговому вікні "Отримання інформації" звичайного Finder є обмежений файл ... знайдіть файл у Finder і натисніть Command + i на "Отримати інформацію" для нього ... розгорнувши панель "Обмін та дозволи" внизу у вікні відображаються деякі правила ACL ... вам доведеться розблокувати цю область, щоб змінити дозволи).

Якщо спосіб Finder не працює, вам доведеться спробувати ls -e. Сподіваємось, правила ACL, які він виводить, не будуть занадто складними. Там це зручний довідник ACL в оглядовій безпеки паперу в Macintosh Dev Center , хоча. Не соромтеся відповісти на це повідомлення, якщо вам потрібна додаткова допомога.

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

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

sudo chmod +a "liuxiang allow write" sa #, щоб увімкнути запис

sudo chmod +a "liuxiang allow execute" sa #, щоб увімкнути його виконання

... (або щось подібне), щоб виправити це (воно запропонує вам пароль особи, яка виконує команду).

Я сподіваюся, що це допомагає!


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.