Experimentei mesmo assim na minha implementação usando este layout:
CREATE TABLE IF NOT EXISTS 'users' (
'userid' varchar(255) NOT NULL,
'passwd' varchar(255) NOT NULL,
'uid' int(11) DEFAULT NULL,
'gid' int(11) DEFAULT NULL,
'homedir' varchar(255) DEFAULT NULL,
'shell' varchar(255) DEFAULT NULL,
UNIQUE KEY 'userid' ('userid'),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Testado conectando-se usando o filezilla com um nome de usuário de 180 caracteres, não acredito que eles devam chegar a esse nível, mas queremos a segurança e limitaremos o comprimento na criação e não no nível do banco de dados. De qualquer forma, parecia que funcionou com o tamanho do campo 255. Eu teria criado e verificado um nome de usuário de 255 caracteres, eu simplesmente não tinha tempo com o sistema.