Права, и группы пользователей - это один из ключевых моментов в UNIX системах. У любого файла всегда есть определенные права доступа (для владельца, группы и всех) а так же владелец и группа, все эти параметры как правило задаются при создании файла. Такого чтобы их не было - невозможно, они могут играть вторичную роль, или задаваться по умолчанию с правильными атрибутами, но не быть их не может.
Права могут быть четырех разных типов - Execute (Выполнить), Write (Записать), Read (Прочесть), None (Нет). Права всегда привязаны к группе, или конкретному пользователю. Есть две основные группы: Группа пользователя создавшего файл (Владельца), и Мир т.е. все не входящие в группу пользователя создавшего файл. В UNIX системах может быть конечно и больше разных вариаций групп, с разными вариацами прав, но сейчас мы говорим с вами только об iPhone где такое не используется. Права на файле обозначают то что с ним могут делать те или иные пользователи, права на папке - примерно тоже самое, но только вместо привычных Прочитать - Запустить файл, Выполнить - Открыть папку, Записать - Создать новый файл.
По умолчанию новые файлы в iPhone получают права 644 и группу root:mobile.
[HR="1"][/HR]
[HR="1"][/HR]
Права на данный момент можно узнать двумя способами: через файловый менеджер, или через Терминал.
1. Через файловый менеджер.
За пример возьмем - самая простая на данный момент программа для работы с файловой системой.
Сначала находим директорию в которой лежит интересный нам файл, например, я хочу просмотреть права для папки Library


2. Через Терминал.
Локальный ли это терминал (MobileTerminal.app), или работающий через SSH (WinSCP, iPhone Tunnel Suit) - не имеет значения.
Выполняем команду:

Владелец и группа пишутся по порядку, и так как они и есть... а вот с правами посложнее, первая буква - тип файла (например d - directory, папка) а следующие 3 триады (кластер из 3 обьектов) указывают права. Первая триада - Владелец, вторая - группа, третья - все.
[HR="1"][/HR]
[HR="1"][/HR]
Но замете, права в саму систему через терминал вводятся набором цифр:

1.Через файловый браузер
Теперь будем их менять. Для этого все так же заходим в свойства, и находим там что будем редактировать, Владельца, группу, или права.



Сразу объясню насчет параметра "Кешировать" - этот параметр не отображается как стандартный, т.к. призначается только временным файлам образованы в результате действий программы. Файл с такими правами будет удаляться.
1.Через Terminal.app

Для того чтобы назначить права файлу в Терминале необходимо выполнить команду:
Где:
XXX - права, написанные цифрами (прим. 755)
YYYY - полное название файла которому они назначены.
Где:
XXXX - Владелец.
YYYY - Группа.
ZZZZ - полное название файла которому они назначаются.
Это важно!
[HR="1"][/HR]
[HR="1"][/HR]
Очень часто возникает вопрос на каких файлах и где какие права? Сейчас приведем наглядные примеры, и надеюсь из них будет понятно для любого, т.к. в принципе в каждой директории каждая папка принадлежит к одному и тому же типу, а стало быть права и владелец у них одинаковы.
//var/mobile
= /Applications - 755 - mobile:mobile
== /Любое_приложение - 755 - mobile:mobile
=== info.plist - 644 - mobile:mobile
=== icon.png - 644 - mobile:mobile
=== ***.nib - 644 - mobile:mobile
=== Russian.lproj - 755 - mobile:mobile
= /Documents - 755 - mobile:mobile
= /Library - 755 - mobile:mobile
== Wallpaper.jpg - 644 - root:mobile
== SMS - 700 - mobile:mobile
=== SMS.db - 644 -mobile:mobile
== AddressBook - 700 - mobile:mobile
===AddresBook.sqlitedb - 644 - mobile:mobile
===AddresBookImages.sqlitedb - 644 - mobile:mobile
== SBSettings - 777 - root:wheel
== mAdvLock - 777 - root:wheel
= /Media - 750 - mobile:mobile
== /DCIM - 750 - mobile:mobile
== /iTunes_Control - 755 - mobile:mobile
//var/stash
= /Applications.****** - 775 - root:admin
== /AppStore.app - 775 - root:admin
== /Cydia.app - 755 - root:admin
== /SBSettings - 755 - root:wheel
= /Themes.****** - 775 - root:admin
= /Ringtones.****** - 775 - root:admin
== /Alarm.m4r - 664 - root:admin
//var/root/Media
= /Cydia - 755 - root:wheel
== /AutoInstall - 755 - root:wheel
//Library
= /Caches - 777S - root:admin
= /LaunchDeamons - 755 - root:wheel
//System/Library/
= /Fonts/Cache/LockClock.ttf - 644 - root:wheel
Какие надо еще, пишите - допишем.
Права могут быть четырех разных типов - Execute (Выполнить), Write (Записать), Read (Прочесть), None (Нет). Права всегда привязаны к группе, или конкретному пользователю. Есть две основные группы: Группа пользователя создавшего файл (Владельца), и Мир т.е. все не входящие в группу пользователя создавшего файл. В UNIX системах может быть конечно и больше разных вариаций групп, с разными вариацами прав, но сейчас мы говорим с вами только об iPhone где такое не используется. Права на файле обозначают то что с ним могут делать те или иные пользователи, права на папке - примерно тоже самое, но только вместо привычных Прочитать - Запустить файл, Выполнить - Открыть папку, Записать - Создать новый файл.
По умолчанию новые файлы в iPhone получают права 644 и группу root:mobile.
[HR="1"][/HR]
Как узнать?
[HR="1"][/HR]
Права на данный момент можно узнать двумя способами: через файловый менеджер, или через Терминал.
1. Через файловый менеджер.
За пример возьмем - самая простая на данный момент программа для работы с файловой системой.
Сначала находим директорию в которой лежит интересный нам файл, например, я хочу просмотреть права для папки Library


2. Через Терминал.
Локальный ли это терминал (MobileTerminal.app), или работающий через SSH (WinSCP, iPhone Tunnel Suit) - не имеет значения.
Выполняем команду:
ls -la |

Владелец и группа пишутся по порядку, и так как они и есть... а вот с правами посложнее, первая буква - тип файла (например d - directory, папка) а следующие 3 триады (кластер из 3 обьектов) указывают права. Первая триада - Владелец, вторая - группа, третья - все.
rwx - 7 = read, write & execute rw- - 6 = read & write r-x - 5 = read & execute r-- - 4 = read -wx - 3 = write & execute -w- - 2 = write --x - 1 = execute --- - 0 = none ---S - -1 = Cache |
[HR="1"][/HR]
Как выставить.
[HR="1"][/HR]
Но замете, права в саму систему через терминал вводятся набором цифр:

7 = read, write & execute 6 = read & write 5 = read & execute 4 = read 3 = write & execute 2 = write 1 = execute |
1.Через файловый браузер
Теперь будем их менять. Для этого все так же заходим в свойства, и находим там что будем редактировать, Владельца, группу, или права.



Сразу объясню насчет параметра "Кешировать" - этот параметр не отображается как стандартный, т.к. призначается только временным файлам образованы в результате действий программы. Файл с такими правами будет удаляться.
1.Через Terminal.app

Для того чтобы назначить права файлу в Терминале необходимо выполнить команду:
chmod XXX YYYY |
Где:
XXX - права, написанные цифрами (прим. 755)
YYYY - полное название файла которому они назначены.
chown XXXX:YYYY ZZZZ |
Где:
XXXX - Владелец.
YYYY - Группа.
ZZZZ - полное название файла которому они назначаются.
Это важно!
- Выставлять права и владельца необходимо находясь в той же директории где они лежат.
- Выставлять Владельца и права для некоторых файлов может только Суперпользователь т.е. только после ввода пароля (для авторизации и получения прав суперпользователя введите команду su и пароль root, по умолчанию - alpine).
- После некоторых изменений програмы выставляющие их на самом устройстве могут аварийно завершаться.
- После выставления некоторых прав, эфект будет только после перезагрузки.
[HR="1"][/HR]
Какие права?
[HR="1"][/HR]
Очень часто возникает вопрос на каких файлах и где какие права? Сейчас приведем наглядные примеры, и надеюсь из них будет понятно для любого, т.к. в принципе в каждой директории каждая папка принадлежит к одному и тому же типу, а стало быть права и владелец у них одинаковы.
//var/mobile
= /Applications - 755 - mobile:mobile
== /Любое_приложение - 755 - mobile:mobile
=== info.plist - 644 - mobile:mobile
=== icon.png - 644 - mobile:mobile
=== ***.nib - 644 - mobile:mobile
=== Russian.lproj - 755 - mobile:mobile
= /Documents - 755 - mobile:mobile
= /Library - 755 - mobile:mobile
== Wallpaper.jpg - 644 - root:mobile
== SMS - 700 - mobile:mobile
=== SMS.db - 644 -mobile:mobile
== AddressBook - 700 - mobile:mobile
===AddresBook.sqlitedb - 644 - mobile:mobile
===AddresBookImages.sqlitedb - 644 - mobile:mobile
== SBSettings - 777 - root:wheel
== mAdvLock - 777 - root:wheel
= /Media - 750 - mobile:mobile
== /DCIM - 750 - mobile:mobile
== /iTunes_Control - 755 - mobile:mobile
//var/stash
= /Applications.****** - 775 - root:admin
== /AppStore.app - 775 - root:admin
== /Cydia.app - 755 - root:admin
== /SBSettings - 755 - root:wheel
= /Themes.****** - 775 - root:admin
= /Ringtones.****** - 775 - root:admin
== /Alarm.m4r - 664 - root:admin
//var/root/Media
= /Cydia - 755 - root:wheel
== /AutoInstall - 755 - root:wheel
//Library
= /Caches - 777S - root:admin
= /LaunchDeamons - 755 - root:wheel
//System/Library/
= /Fonts/Cache/LockClock.ttf - 644 - root:wheel
Какие надо еще, пишите - допишем.
Раздел:
iOS Support
Автор:
JagdCrab
13 февраля 2010, 14:08




Ответы ()