[Uneex] ядро

Constantin Stefanov cstef на parallel.ru
Ср Окт 19 09:57:22 MSD 2005


Vladimir Ivanov wrote:
>>>>2. В какое количество групп может входить пользователь?
>>>
>>>В FreeBSD эта цифра 16. Константа NGROUPS_MAX расположенна в файле 
>>>sys/syslimits.h
>>
>>Кажется её можно изменять, но это требует полной пересборки всех 
>>приложений.
> 
> Я думаю, libc пересобрать и достаточно. Хотя, конечно, кто ее знает, 
> вашу FreeBSD. ;)))
Не совсем. Есть getgrouplist(3), которому передается размер массива, в
котором вернуть список групп. Если размер мал, то будет возвращена
ошибка, хотя ничего фатального не случится, но приложение правильно
функционировать не будет. Кроме того, приложение может быть написано
коряво, и список групп временно запихивается в какой-то временный
массив, размер которого никак не связан с NGROUPS_MAX. В этом случае не
поможет и перекомпиляция.

А как это в Linux? Есть возможность взять список групп, перечислить их
по одной и проверить, принадлежит ли пользователь группе не зная в
момент копиляции максимальное число этих групп? Я понимаю, что это
возможно, но это реально сделано?

-- 
Константин Стефанов


Подробная информация о списке рассылки Uneex