Usernames > 16 characters

Matthew Dillon dillon at
Mon Aug 18 13:12:10 PDT 2003

    I will be committing the username/hostname/MAXLOGNAME changes tonight.

    I did a global search looking for instances where utmp, wtmp, and lastlog
    are accessed.  There are many programs, some of which are not under our
    control (i.e. contrib, or commonly installed externally or via ports),
    and I had to deal with a similar issue at BEST internet many years ago
    where we upgraded the system and utmp/wtmp got corrupted because some
    external programs still used the 'old' structure.

    Usernames are going from 16->32 bytes, terminal lines from 8->16 bytes,
    and recorded hostnames from 16->48 bytes (to accomodate full IPv6 names).
    I have also added a significant amount of slop to support 32/64 bit time
    storage and future additions.  I considered adding a magic number or
    version but it doesn't help the corruption problem so...

    I think the best solution to the corruption problem is to rename the utmp,
    wtmp, and lastlog files.  This way programs which are properly recompiled
    will use the correct file(s), and programs which are not updated won't
    be able to clobber them.

    These changes turn out to be very easy.  Just changing _PATH_* in
    utmp.h gets us 90% of the way there, and the rest of the changes are
    in manual pages, some minor rc.d stuff, and cron scripts.

    So, I am going to use the following file names:

    Unless someone has a better idea, that is what they will be called.  I
    actually think it is a good idea to get away from the old (more hardwired)
    names because it forces programmers to consider these files more carefully
    then they normally do.  Perhaps we can get FreeBSD to adopt the scheme.


More information about the Kernel mailing list