Всем привет!
Никто не вкурсе - можно ли победить ограничение на длину имени пользователя в FreeBSD7.0 без перекомпиляции ядра. А если и перекомпилить то не вылезут ли после этого "бока".
Спасибо!
>Всем привет!
>Никто не вкурсе - можно ли победить ограничение на длину имени пользователя
>в FreeBSD7.0 без перекомпиляции ядра. А если и перекомпилить то не
>вылезут ли после этого "бока".только пересборка ядра и системы
дополнительно пересобрать софт в котором используются функции аутентикации
>Спасибо!
>>Всем привет!
>>Никто не вкурсе - можно ли победить ограничение на длину имени пользователя
>>в FreeBSD7.0 без перекомпиляции ядра. А если и перекомпилить то не
>>вылезут ли после этого "бока".
>
>только пересборка ядра и системы
>
>дополнительно пересобрать софт в котором используются функции аутентикации
>
>>Спасибо!Спасибо!
>>Всем привет!
>>Никто не вкурсе - можно ли победить ограничение на длину имени пользователя
>>в FreeBSD7.0 без перекомпиляции ядра. А если и перекомпилить то не
>>вылезут ли после этого "бока".
>
>только пересборка ядра и системы
>
>дополнительно пересобрать софт в котором используются функции аутентикации
>
>>Спасибо!пересобрал ядро с UT_NAMESIZE =32, тоесть 32 символа.Теперь мне нужно заводить длинные логины ну и , чтоб потом они могли заходить через SSH. sshd я пеоресобрал, когда завожу юзера (adduser) у меня вылазит ошибка
pw: name too long `qqqqqqqqqqqqqqqqqqqq' (max is 16)
Каким образом мне заставить pw обойти ограничение в 16 символов или как его пересобрать.Не хочеться пересобирать весь мир....
>[оверквотинг удален]
>>
>>>Спасибо!
>
>пересобрал ядро с UT_NAMESIZE =32, тоесть 32 символа.Теперь мне нужно заводить длинные
>логины ну и , чтоб потом они могли заходить через SSH.
>sshd я пеоресобрал, когда завожу юзера (adduser) у меня вылазит ошибка
>
>pw: name too long `qqqqqqqqqqqqqqqqqqqq' (max is 16)
>Каким образом мне заставить pw обойти ограничение в 16 символов или как
>его пересобрать.Не хочеться пересобирать весь мир....[alone]~ > grep UT_NAMESIZE /usr/include/utmp.h
#define UT_NAMESIZE 16 /* see MAXLOGNAME in <sys/param.h> */
char ut_name[UT_NAMESIZE];
[alone]~ >написано же в include'е: см MAXLOGNAME in <sys/param.h>
выдержка из /usr/include/sys/param.h:
MAXLOGNAME should be == UT_NAMESIZE+1 (see <utmp.h>)
итого:
правим /usr/include/utmp.h
#define UT_NAMESIZE 32
правим /usr/include/sys/param.h
#define MAXLOGNAME 33
пересобираем СИСТЕМУ:
# cd /usr/src
# make buildworldпересобираем и устанавливаем новое ядро:
# make buildkernel KERNCONF=mykern
# make installkernel KERNCONF=mykernустанавливаем новую систему:
# make installworld
>[оверквотинг удален]
># make buildworld
>
>пересобираем и устанавливаем новое ядро:
>
># make buildkernel KERNCONF=mykern
># make installkernel KERNCONF=mykern
>
>устанавливаем новую систему:
>
># make installworld
>[оверквотинг удален]
>># make buildworld
>>
>>пересобираем и устанавливаем новое ядро:
>>
>># make buildkernel KERNCONF=mykern
>># make installkernel KERNCONF=mykern
>>
>>устанавливаем новую систему:
>>
>># make installworldэто понятно, но пересобирать мир мне аж не хочется. Я ж писал выше можно ли отдельно пересобрать (переустановить) приложение pw которое при команде adduser выдает ошибку
которая описана выше.....
>[оверквотинг удален]
>>># make installkernel KERNCONF=mykern
>>>
>>>устанавливаем новую систему:
>>>
>>># make installworld
>
>это понятно, но пересобирать мир мне аж не хочется. Я ж писал
>выше можно ли отдельно пересобрать (переустановить) приложение pw которое при команде
>adduser выдает ошибку
>которая описана выше.....ответ был дан СРАЗУ: ТОЛЬКО пересобрка ЯДРА и СИСТЕМЫ (мир)
[alone]~ > grep MAXLOGNAME /usr/src/usr.sbin/pw/*
/usr/src/usr.sbin/pw/pw_user.c:#if (MAXLOGNAME-1) > UT_NAMESIZE
/usr/src/usr.sbin/pw/pw_user.c:#define LOGNAMESIZE (MAXLOGNAME-1)
[alone]~ > grep "PWCMD" /usr/sbin/adduser
_nextuid="`${PWCMD} usernext | cut -f1 -d:`"
${PWCMD} usershow $_uid > /dev/null 2>&1
_pwcmd="$_upasswd ${PWCMD} useradd $_uid $_name $_group $_grouplist $_comment"
if ${PWCMD} lock $username ; then
${PWCMD} usershow $_input > /dev/null 2>&1
if ! ${PWCMD} show group $ulogingroup > /dev/null 2>&1; then
if ! ${PWCMD} show group $i > /dev/null 2>&1; then
PWCMD="${PWCMD:-/usr/sbin/pw}"
[alone]~ >adduser только скрипт который использует "pw"
[alone]~ > file /usr/sbin/adduser
/usr/sbin/adduser: Bourne shell script text executable
[alone]~ >все что работает с passwd/master.passwd, пишет в utmp/wtmp - есть утилиты СИСТЕМЫ(мира),
пересборка мира без вариантов, все что собрано в портах и требует аутентикации и пишет
в utmp - требует пересборки.
>[оверквотинг удален]
>
>[alone]~ > file /usr/sbin/adduser
>/usr/sbin/adduser: Bourne shell script text executable
>[alone]~ >
>
>все что работает с passwd/master.passwd, пишет в utmp/wtmp - есть утилиты СИСТЕМЫ(мира),
>
>пересборка мира без вариантов, все что собрано в портах и требует аутентикации
>и пишет
>в utmp - требует пересборки.Теперь уж без вариантов...
Спасибо!!!
кто-то разобрался с этой проблемой на freebsd 9.1 ?
вот что нашел:http://serverfault.com/questions/191789/freebsd-usernames-lo...
только у меня нет файла utmp.h