November 2019

S M T W T F S
      12
34 5 678 9
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Monday, June 13th, 2005 10:32 pm
А вы никогда не натыкались на ограничение количества пользователей в одной группе в /etc/group?
FreeBSD 5.3-STABLE.
При добавлении очередного пользователя в группу она внезапно пропала у всех предыдущих.
Вскрытие показало, что это происходит ровно на 97-м пользователе. От длины имён не зависит, а зависит именно от количества этих имён.
Что самое смешное - это проблема именно со считыванием файла, а не со внутренним представлением. Если в /etc/group создать две строки с одинаковым названием и gid'ом и разнести по ним пользователей, то всё работает.

С чего бы это?
Monday, June 13th, 2005 06:47 pm (UTC)
fgets(in, buf, 1024); или что-нибудь типа этого :)?
Monday, June 13th, 2005 06:58 pm (UTC)
Нет, в строке 600 символов с небольшим.

В мане упоминается про ограничения, но это было ещё до 3.0, и здесь ни одно из них не достигается.

In older implementations, a group cannot have more than 200 members. The
maximum line length of /etc/group is 1024 characters. Longer lines will
be skipped. This limitation disappeared in FreeBSD 3.0. Older binaries
that are statically linked, depend on old shared libraries, or
non-FreeBSD binaries in compatibility mode may still have this limit.
Monday, June 13th, 2005 06:51 pm (UTC)
что-то было очень похожее, не помню. Но, то, вроде, лечилось небольшим патчем исходников ядра.
Tuesday, June 14th, 2005 06:19 am (UTC)
maxmembers = membufsize / sizeof(*members);

src/lib/libc/gen/getgrent.c:1.32, __gr_parse_entry(), line 1124