Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 24 Апрель 2002, 17:56:00
ну и «как?» собственно [img]images/smiles/icon_smile.gif[/img] требуется сий беспридел, для административного движка. через mySQL уже реализовал, но занявшись подсчётами размеров/скорости, решил попробовать реализовать через системные ресурсы. расчёт в смысле на линуксовые системы. реально ? <BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>fileatime — Gets last access time of file filectime — Gets inode change time of file filegroup — Gets file group fileinode — Gets file inode filemtime — Gets file modification time fileowner — Gets file owner fileperms — Gets file permissions<HR></BLOCKQUOTE>
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 24 Апрель 2002, 18:27:00
хе [img]images/smiles/icon_smile.gif[/img] а я быстрее [img]images/smiles/icon_smile.gif[/img] а кто мне даст такое ставить ? [img]images/smiles/icon_smile.gif[/img]
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 24 Апрель 2002, 19:38:00
а если не пользователей физических, а только для внутренней системы распределения прав доступа ? то есть, - движок сайта, большого сайта. есть всякие авторы, модераторы … у них свои права на свои категории. так я хочу дать каждой директории (файловая система будет дублировать систему БД) определённые права, да бы не иметь серьёзную раскладку таблиц типа :
<UL TYPE=SQUARE><LI>юзеры <LI>группы <LI>связки юзеров по группам <LI>базовый набор прав <LI>связка групп и базового набора прав <LI>обьекты <LI>связки юзеров, обьектов и прав <LI>связки групп, обьектов и прав. </UL>
оно ж огромное будет [img]images/smiles/icon_smile.gif[/img] и тормозить будет. так может каких нить "виртуальных" юзеров ? без пермишшонов нигде кроме моего аккаунта на хостинге можно иметь ?
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 09:28:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Intelligent: <STRONG>а если не пользователей физических, а только для внутренней системы распределения прав доступа ?</STRONG><HR></BLOCKQUOTE>
А в чем же проблема в этом случае? Заводишь себе userbase в угодном тебе формате и добавляешь сколько душа желает. [img]images/smiles/icon_smile.gif[/img]
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 09:30:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Original Demon: <STRONG>user agent все равно имеет права other.</STRONG><HR></BLOCKQUOTE>
Веб-сервер имеет полномочия пользователя, под которым он запущен. Это не обязательно other.
User agent, пришедший извне, вообще не имеет аккаунта в системе.
Так что книжки -- читать, траву -- курить. Не наоборот. [img]lamer.gif[/img]
9 Сообщения: 2719 Зарегистрирован: 18.04.02 Откуда: Hell of a Place
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 10:28:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Crazy: <STRONG>Веб-сервер имеет полномочия пользователя, под которым он запущен. Это не обязательно other.
User agent, пришедший извне, вообще не имеет аккаунта в системе.
Так что книжки -- читать, траву -- курить. Не наоборот. [img]lamer.gif[/img]</STRONG><HR></BLOCKQUOTE>
аккаунты тут не при чем, я говорю про группы прав на файлы. owner, group, other
9 Сообщения: 2719 Зарегистрирован: 18.04.02 Откуда: Hell of a Place
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 10:32:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Intelligent: <STRONG>Original Demon ну и что делать ? [img]images/smiles/icon_smile.gif[/img]</STRONG><HR></BLOCKQUOTE>
А чем тебе не нравится на MySQL?
Ну или заведи свой сервер в стойке и делай с ним что хош.
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 10:58:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Original Demon: <STRONG>аккаунты тут не при чем, я говорю про группы прав на файлы. owner, group, other</STRONG><HR></BLOCKQUOTE>
Группы доступа имеют смысл применительно к системным аккаунтам. На зашедший извне User agent они не распространяются хотя бы и потому, что он доступа непосредственно к файловой системе принципиально иметь не может.
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 12:31:00
Не путаю. Я подчеркнуто резко разделяю действия User Agent и действия Web Server. Прежде всего -- чтобы не вводить в заблуждение тех, кто не всегда в состоянии самостоятельно увидеть разницу.
И наблюдения за типичныим ошибками здесь и на форуме flasher.ru является для меня достаточно убедительным подтверждением уместности такого поведения.
В данном же случае предположение "юзверовский агент фактически работает от имени веб-сервера" излишне еще и потому, что оно вообще ничем не помогает в плане понимания проблемы.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 15:03:00
Crazy, совершенно с тобой не согласен. Проблема не состоит в том, что бы объяснить принципы работы веб-сервера, а в том, что бы программист понимал - будут у веб-пользователя права доступа или нет. А для этого веб-сервер можно представить абсолютно прозрачным. а виртуальную структуру документов на сервере - в виде обычной файловой структуры.
9 Сообщения: 2719 Зарегистрирован: 18.04.02 Откуда: Hell of a Place
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 18:14:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Crazy: <STRONG>Группы доступа имеют смысл применительно к системным аккаунтам. На зашедший извне User agent они не распространяются хотя бы и потому, что он доступа непосредственно к файловой системе принципиально иметь не может.</STRONG><HR></BLOCKQUOTE>
Не группы из файла /etc/group, а группы прав на файлы.
Хорошо, подробно:
Запрос документа от user agent попадает к httpd. Httpd находится в некой системной группе. Далее httpd запрашивает документ, при этом его права доступа к документу (в типичном случае, когда пользователь и веб-сервер находятся в разных системных группах) определяются по правам other поставленными owner'ом на этом документе. Если на документе не будет стоять read для other - никто извне его не увидит.
Поэтому можно сделать до фига юзеров, групп, раздать им разные права на разные файлы, но доступ по http все равно будет происходить в соответствии с правами other.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 25 Апрель 2002, 23:39:00
Crazy, кажется, ты немного путаешь понятия... юзверовский агент фактически работает от имени веб-сервера. а уж веб сервер, который и является неким интерфейсом между вебом и файловой струтурой, либо может обратится к файлу, либо не может. Но это не имеет отношения к сути вопроса. ПХП может обратится к системе, если ему это разрешено. На собственном сервере это реализуется, а на хостеровском - врятли...
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 26 Апрель 2002, 05:14:00
All sorry что не мог присутствовать, локальный веб сервер/прокси/нат переделывал [img]images/smiles/icon_smile.gif[/img]
Crazy А в чем же проблема в этом случае? Заводишь себе userbase в угодном тебе формате и добавляешь сколько душа желает проблема в размере такой базы данных. при 3-ёх видах прав на обект, прописанных как обычный tinyint или даже enumerator в базе, хотя бы и mySQL - получу при : 100,000 обьектов, 300 юзверов, 5 групп - около гиги только прав. не надо мне такого крупного счастья на аккаунте, хочу юзать систему. да и скорость, проверки что к чему по БД слегка отстаёт от скорости проверки прав файла.
Веб-сервер имеет полномочия пользователя, под которым он запущен. Это не обязательно other будем исходить из классической настройки апачи. именно other. так как система администрации (движок) будет распространятся, и усаживаться на различные сервера. при огромных гемморах, разумеется. но будет.
На зашедший извне User agent они не распространяются хотя бы и потому, что он доступа непосредственно к файловой системе принципиально иметь не может. имеет. посредством веб-сервера. веб-сервер имеет много прав, они и будут на дело работать.
Не путаю. Я подчеркнуто резко разделяю действия User Agent и действия Web Server. Прежде всего -- чтобы не вводить в заблуждение тех, кто не всегда в состоянии самостоятельно увидеть разницу. я - вижу. а тема, явно не для любителей фронтпаги, так что, не стесняйся [img]images/smiles/icon_wink.gif[/img]
Long ПХП может обратится к системе, если ему это разрешено. На собственном сервере это реализуется, а на хостеровском - врятли... вот это и интересно. а вообще, на собственном веб-сервере такое реализовать можно ? требования специфические конечно, но вероятно, подобная аппликация будет жить не на агаве, а на выделенном сервере, или по крайней мере на спец аккаунте. система крутовата для обычного хостинга. реализовать в домашних условиях - покамест не могу, ещё не всё настроил [img]images/smiles/icon_sad.gif[/img]
Проблема не состоит в том, что бы объяснить принципы работы веб-сервера, а в том, что бы программист понимал - будут у веб-пользователя права доступа или нет. А для этого веб-сервер можно представить абсолютно прозрачным. а виртуальную структуру документов на сервере - в виде обычной файловой структуры. и даже не в этом [img]images/smiles/icon_smile.gif[/img] а в том - может ли РНР плодить группы и пользователей? а то что раздавать права, которые будет сама "юзать" (считывать обмысливать и разрешать или не разрешать менять контент) и забирать их обратно при модерировании прав (через тот же веб-фейс). то есть эти права доступа, которые даны файлу, требуются на самом деле не для физического разрешения на любой доступ, а скорее как логический идентификатор. большинство информации всё равно лежит в текстовом варианте внутри БД. а права на доступ будут записанны в свойствах файла, который лежит в каком то разделе древоподобной структуры категорий контента. то есть, опять, попроще - эти права, не для доступа. они используются как флаги, для логической обработки. свойства файлов будут использованны движком как БД прав доступа. как обычная гиговая таблица распределения прав. понятно получилось ?
Wartex да какая тут битва … так … дружеский, тематический трёп [img]images/smiles/icon_smile.gif[/img]
Original Demon Запрос документа от user agent попадает к httpd. Httpd находится в некой системной группе. Далее httpd запрашивает документ, при этом его права доступа к документу (в типичном случае, когда пользователь и веб-сервер находятся в разных системных группах) определяются по правам other поставленными owner'ом на этом документе. Если на документе не будет стоять read для other - никто извне его не увидит. Поэтому можно сделать до фига юзеров, групп, раздать им разные права на разные файлы, но доступ по http все равно будет происходить в соответствии с правами other. а вот ты - ближе всего к проблеме попал ! значит так, у httpd есть права группы и юзера others, он берёт произвольный файл из файловой системы, произвольного юзера, и присваевает файлу право быть прочитанным этим юзером. юзер файл не читает ! его читает только httpd ! а запись прав - нужна только для идентификации - кому чего мона читать ! [img]images/smiles/icon_smile.gif[/img] писал ведь уже … киллобайтом выше [img]images/smiles/icon_smile.gif[/img]
Tzar Прямо страшно становится да нее … нормальная беседа …
9 Сообщения: 2719 Зарегистрирован: 18.04.02 Откуда: Hell of a Place
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 26 Апрель 2002, 23:03:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Intelligent: <STRONG>а в том - может ли РНР плодить группы и пользователей? </STRONG><HR></BLOCKQUOTE>
Может, но это чревато проблемами с безопасностью.
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> значит так, у httpd есть права группы и юзера others, он берёт произвольный файл из файловой системы, произвольного юзера, и присваевает файлу право быть прочитанным этим юзером. юзер файл не читает ! его читает только httpd ! </STRONG><HR></BLOCKQUOTE> 1) Нет. Опять путаешь системные группы и группы прав на файлы. На примере абстрактного сервака: httpd - группа apache, пользователь apache владелец директории с файлами сайта - demon, группа demon demon ставит на все файлы права rw- r-- r-- - все работает demon ставит на все файлы права rw- rw- — - никто извне файлы не видит, потому что права доступа определяются по 3ей группе прав (other). root заносит пользователя apache в группу demon - тогда все будет работать в обоих случаях так как права доступа будут определятся по второй группе прав (group).
2) не совсем. httpd получает от user agent URL, определяет физ. расположение файла (?) и обращается к нему. система определяет может он это сделать или нет. прочитав файл httpd пихает его по http user agent'у, тот выводит. (это если просто html документ запрашивался, с php будет чуть сложнее)
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR><STRONG> а запись прав - нужна только для идентификации - кому чего мона читать ! [img]images/smiles/icon_smile.gif[/img] </STRONG><HR></BLOCKQUOTE> Теперь я понял. [img]images/smiles/icon_wink.gif[/img]
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 26 Апрель 2002, 23:24:00
Original Demon стоп стоп стоп [img]images/smiles/icon_smile.gif[/img] а сколько может быть владельцев у одного файла ??? не говорите мне что один, я буду плакать ! не хочу ! хочу : сколько надо - столько будет !
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 26 Апрель 2002, 23:29:00
Intelligent Владелец один. Но! Во-первых, он входит в группу пользователей, в которой число этих пользователей неограничено, во-вторых, есть права для nobody или что-нить в этом духе, т.е. для всех. Посему, ставишь права для группы, открываешь доступ куче нужного народа, ставишь права для всех, доступ получают все. Но владелец только один.
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 27 Апрель 2002, 02:47:00
вот облом … а мне то надо что бы на один файл было неограниченное количество владельцев, и 40 видов прав …. что бы придумать ? [img]images/smiles/icon_smile.gif[/img] ну и разумеется, некоторые запрещения помимо разрешений владельцев …
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 27 Апрель 2002, 03:48:00
так, поступила конструктивная идея - использовать юниксовые линки на файлы. им и давать права. то есть, допустим группы и юзеры с их правами ещё будут жить в БД, а вот файловая древовидная структура, дублирующяя строение БД, и находящаяся вне корня веб сервера, будет содержать распределение прав на разделы контента. теперь, как бы это реализовать ? [img]images/smiles/icon_smile.gif[/img] есть соображения ?
навскидку реализация структуры : директория по имени раздела, в ней по количеству юзеров и групп файлы-линки, с определёнными администрацией правами. (ведущие в никуда, да бы сократить их физический размер и исключить какие либо проблемы в файловой системе) имена файлов-линков содержат идентификационный номер группы и юзера.
по принципу : c_4.directory (no need in permitions) // category g_80.link 777 // group that have all the permitions u_4582304.link 777 // user that have all the permitions
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 27 Апрель 2002, 04:08:00
так вот в чём вопрос то - будет ли такая система описания распределения прав доступа лучше по параметрам :
1) скорости определения прав на конкретный обьект 2) физически занятое место на сервере 3) скорость изменения определения прав юзера на все обьекты 4) геморрой
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 27 Апрель 2002, 12:12:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Intelligent: <STRONG>проблема в размере такой базы данных. при 3-ёх видах прав на обект, прописанных как обычный tinyint или даже enumerator в базе, хотя бы и mySQL - получу при : 100,000 обьектов, 300 юзверов, 5 групп - около гиги только прав. </STRONG><HR></BLOCKQUOTE>
О! Вот мы и перешли к конструктивному разговору (что, впрочем не помешает мне чуть ниже получить отдельное удовольствие [img]images/smiles/icon_smile.gif[/img] ).
Собственно, путь очевиден: чтобы уименьшить произведение мы должны уменьшить по крайней мере один из множителей. Можно оба. [img]images/smiles/icon_smile.gif[/img]
Самый очевидный путь -- обобщение. Т.е. создаем группы пользователей (и/или группы объектов) и уже их объединяем в матрицу доступа.
К примеру, если у нас есть 300 пользователей, объединенных в 20 групп, и 100,000 объектов, которые мы разбили на 1000 групп доступа, то получаем 20,000 отметок о правах. Уже вполне приемлемое значение.
Понятно, что иногда такая схема оказывается недостаточно гибкой. Для отработки особых ситуаций одновременно с групповой матрицей доступа заводим список исключений -- это будут кортежи из трех элементов: пользователь,объект и право доступа. По практике реализации одного из проектов это примерно несколько процентов объектов и с десяток процентов пользователей.
Соответственно, при анализа прав вначале сканируем список исключений. Если нашли в нем кортеж с искомой парой пользователь-объект, то используем проставленные там права доступа. Если не нашли -- выясняем, к каким группам относятся пользователь и объект и смотрим права в матрице групповых прав.
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 27 Апрель 2002, 12:15:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Long: <STRONG>для этого веб-сервер можно представить абсолютно прозрачным. а виртуальную структуру документов на сервере - в виде обычной файловой структуры.</STRONG><HR></BLOCKQUOTE>
В простейших случаях -- помогает. В сложных -- создает уже непреодолимую путаницу.
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 27 Апрель 2002, 12:18:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Original Demon: <STRONG>Запрос документа от user agent попадает к httpd. Httpd находится в некой системной группе. Далее httpd запрашивает документ, при этом его права доступа к документу (в типичном случае, когда пользователь и веб-сервер находятся в разных системных группах) </STRONG><HR></BLOCKQUOTE>
Дальше можно не продолжать. Пользователь вообще не имеет аккаунта и не входит вообще ни в какую группу. Соответственно, данный текст не только лишен доказательной силы, но и смысла вообще.
To Long: вот такие вещи я и имел в виду, говоря о вреде неуместных упрощений.
9 Сообщения: 2719 Зарегистрирован: 18.04.02 Откуда: Hell of a Place
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 27 Апрель 2002, 14:20:00
<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">quote:</font><HR>Автор Сообщения Crazy: <STRONG>Дальше можно не продолжать. Пользователь вообще не имеет аккаунта и не входит вообще ни в какую группу. Соответственно, данный текст не только лишен доказательной силы, но и смысла вообще.
To Long: вот такие вещи я и имел в виду, говоря о вреде неуместных упрощений.
[ 27 Апреля 2002: Исправлено Crazy ]</STRONG><HR></BLOCKQUOTE>
Ты специально не понимаешь? Пользователь, владеющий файлами веб-сервера. [img]images/smiles/icon_mad.gif[/img]
Заголовок сообщения: а может ли РНР «рожать» системные группы, и «плодить» туда ю Добавлено: 27 Апрель 2002, 15:03:00
Именно "специально непонимаю". [img]images/smiles/icon_biggrin.gif[/img] Потому что благодаря "упрощенной трактовке" из описания исчезла разница между пользователем UserAgent'а и владельцем файлов.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.