(добавив мой комментарий в ответ теперь, когда вопрос был вновь открыт) * 1001 *
POSIX указывает, что LOGIN_NAME_MAX должно быть> = _POSIX_LOGIN_NAME_MAX._POSIX_LOGIN_NAME_MAX, в свою очередь, определяется как 9. В Linux кажется, что LOGIN_NAME_MAX - 256.
Для групп я не думаю, что есть что-то подобное.Какой-то вид верхней границы можно угадать с помощью функций getgrnam_r () и getgrgid_r (), которые принимают предоставленный пользователем буфер для записей char * в struct group.Максимально необходимый размер для этого буфера может быть получен через sysconf (_SC_GETGR_R_SIZE_MAX) или макрос NSS_BUFLEN_GROUP.В Linux NSS_BUFLEN_GROUP кажется равным 1024.