Качай права
Опубликовано coder 26.11.2008Разобрался в правах файлов в ОС Linux. Долгое время смутно представлял, что это и счем его едят и что за таинственные циферки 777, 466 и т.д и лишь издали предствалял о чем речь и зачем все это. Многое делал просто по документации к приложениям, а вот теперь сам разобрался и все так просветлело. Поскольку почти все хостятся на Linux системах, то думаю, что данная заметка будет полезна не только для линуксоидов, но и для тех, кто просто пишет сайты на PHP etc.
Итак, как мне показалось, с правами достаточно просто разобраться если запомнить простое число «3». Там все завязано на этом числе.:)
Для начала необходимо уяснить, что у файла, как и у любой земной вещи, есть законный владелец. Именно он и имеет полнейшее право управлять правами файлов и каталогов (кто в танке — каталоги тоже в своем роде всего лишь файлы, только они содержут информацию о путях, где найти другую информацию, то есть файлы). Еще кроме владельца файлов управлять правами может только «всемогущий и страшный» админ.
Следующее что необходимо уяснить в этом деле, то что по отношению в файлу есть 3 типа, или чтобы легче запомнить круга, пользователей. А именно:
- владелец,
- группа в которую входит владелец файла,
- и все остальные.
Соответственно свои различные права можно назначить для все три категории.
Итоговый архиважный момент, то какие могут быть вообще эти права.
- Чтение(read) — это самые простое право. Обозначает, что тот, кто обладает им имеет право только читать, т.е. просматривать, файл. Соответсвенно ни изменять, ни перемещать/удалять/копировать или выполнять он право не имеет. В правах каталога это дает права просматривать содержимое каталога.
- Запись(write) — это право дает возможность записывать данные в файл. Т. е. его можно изменять, перемещать, ну и естественно читать, иначе как изменять не прочитатв
В правах каталога дает разрешение на запись фалов в каталог.
- Выполнять(execute) — это право дает разрешение на выполнение самого файла в сисетме, например если это программа или скрипт какой-то. В правах каталога дает право выполнять действия (копировать/пермещать/удалять) с файлами и подкаталогами.
Каждый файл содержит в себе информацио о том, кто и что может с ним делать. Теперь для наглядности пример. Допустим файл super.php имеет права rwx|r-x|r– (754 в числовом обозначении — об этом ниже). Для удобства восприятия я разделил права прямой чертой, в обозначении прав этого нет. Есть три группы по три символа (вот почему нужно права ассоциировать с «3» - мне так легче было все запомнить). Первая группа прав это набор прав для владельца, вторая — для групп в которых состоит владелец, третья — для всех остальных. Символы обозначают либо наличие права, либо его отсутствие — в это случае ставиться прочерк. Итак владелец примерного файла имеет полное право на него и чтение, и запись, и вполнение. Все кто стостоит с владельцем файла в одной группе имеют право только на чтение и исполнение файла, попытавшись изменить его они получат ответ «Permission dinied». И наконец все остальные имеют право только на чтение файла, все остально им запрещено. Следует отметить, что если кто-то случайно изменил права для собственного файла и теперь не может записывать в него, помочь сможет только «великий и могучий» админ.
Теперь про «загадочные» циферки. Это самое обычное представление прав файла только в числовом формате в восьмеричной системе. Но для начала нужно перевести буквенное обозначение в двоичную систему, а потом полученный результат в восьмеричную. Тут все просто, наличие права или же любой из знаков (r,w,x) обозначает «1», отсутствие права или же прочерк обозначает «0». Таким образом права файла super.php в числовом формате в двоичной системе записываются как 111|101|100. Как перевести это в восьмеричную систему? Не буду вдаваться в математические объяснения, это не входит в суть этого поста, просто приведу таблицу соответсвия.
Двоичная система Восьмеричная система
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Вот и все. Нехитрым способом 111101100 переводится в 754.
Надеюсь, что получилось не сильно длинно и запутанно.
В ближайшем будущем заметка по функциям управления правами файлов, как для PHP так и в общем для Linux. Не пропусти - подпишись на RSS!
________________Постовой_____________________
Хочу слетать в ОАЭ.
Девушка, будь красивее, закажи косметику в интернет-магазине косметики Фаберлик, Украина. Позволь себя побаловать!
Найди открытое и честное общение.
Related items
Популярность: 9%







Свежие комментарии