|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Michael Tolokonnikov 2:5020/400 05 Jul 2002 23:02:29 To : All Subject : Passwd & group -------------------------------------------------------------------------------- Что почтенное общество думает о юзерах и группах? Hет, нет! я не о том, о чем вы сразу подумали ;)) Задача отпочковалась от задачи поиска путей и прав доступа к файлу. Hапомню, что с учетом ссылок, путей может быть множество. Все пути найдены. Ищу их от некоторых "точек доступа" - от /home/, от зашаренных самбой и от экспортированных каталогов. Те или иные права имеют владелец, члены группы и прочие. Причем, в число членов группы, как и в "прочие", войдут не все, а только те, кто пройдет от точек доступа до файла. Hа любом этапе пути по иерархии может встретится "no access". Значит путь мало найти, надо и проанализировать. Теперь задача - кто входит в группу? В passwd прописан primary gid. В group прописываются, так сказать, "дополнительные члены". То есть, если всем пользователям в качестве основной приписана группа, скажем, 1001 - users, то в файле group запись users:*:1001: никого явным образом не включает. Hасколько я понимаю, это позволяло обойти существующее раньше (до freeBSD 3.0) ограничение на количество членов группы и длины строки в group. Кроме того, явное перечисление всех членов группы, видимо скажется на производительности системы. Hо не факт, права, наверное, сначала проверяются в pwd.db, а если там не найдены, то в group. При этом, getgrent, getgrgid возвращают только данные из group. Рассматриваю варианты: 1. Еще что-то почитать, найти что упустил. Где? 2. Прописывать всех в group явным образом. 3. Сделать свой getmembers, который будет собирать из passwd и group. 4. Сотворить файл group.uid, в котором держать все это дело, в формате, предположительно, groupname:*:gid:uid[,uid] дальше работать с, обычно более короткими, числовыми идентификаторами групп и юзеров. Тут, конечно речь не о общей работе системы, а о некотором инструментарии администратора. 5. Посмотреть другие велосипеды для таких дорог. PS: Бланк-Эдельман, "Perl для системного администрирования", говорит, что в некоторых ОС существует ограничение на число групп, которым может принадлежать пользователь. Чаще всего ограничение равно 8. Есть-ли подобное ограничение в freeBSD? Послано: fido7.ru.unix fido7.ru.unix.bsd Спасибо. Михаил Толоконников mtolokonnikov@gm.ru --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/1011d2330f52.html, оценка из 5, голосов 10
|