[Manual] Права доступа и группы.

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

[HR="1"][/HR]
Как узнать?

[HR="1"][/HR]
Права на данный момент можно узнать двумя способами: через файловый менеджер, или через Терминал.

1. Через файловый менеджер.

За пример возьмем iFile - самая простая на данный момент программа для работы с файловой системой.
Сначала находим директорию в которой лежит интересный нам файл, например, я хочу просмотреть права для папки 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 Автор:
13 февраля 2010, 14:08

Ответы