Aprenda inglês em casa
Baixe gratuitamente as duas primeiras aulas
English for Reading and Listening
Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.
|
Busca |
Aprenda inglês em casa
Baixe gratuitamente as duas primeiras aulas
English for Reading and Listening
Receba por email, diariamente, mensagens contendo materiais para leitura e audição, incluindo arquivos no formato MP3 gravados por falantes nativos.
Assine a Lista Dicas-L
Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.
Colaboração: Amauri Tiago Marx
Data de Publicação: 30 de junho de 2008
Na universidade onde trabalho, surgiu a necessidade de incluir usuários no linux (logins) que iniciassem com números (por exemplo: 10767).
Pesquisando no oráculo (google), verifiquei que diversas pessoas também têm essa necessidade, porém não encontrei solução para isso.
Usufruindo do conceito open source, resolvi estudar como funciona a validação no momento da inclusão dos usuários no sistema.
Bom, primeiramente, procurei em qual pacote se encontrava o comando useradd, o qual é responsável pela inclusão dos usuários e verifiquei que ele está contido no pacote shadow.
Como utilizo a distribuição Slackware, baixei o código fonte do shadow (no meu caso, shadow-4.0.3.tar.bz2) no site da distribuição.
Descompactei o pacote e comecei a fuçar um pouco no código.
Mesmo não tendo conhecimentos avançados de programação, não foi difícil chegar ao arquivo (de nome bem explicativo) chkname.c, localizado dentro da pasta libmisc.
Também não foi difícil achar a rotina de validação (de nome também muito informativo). Procure pelo seguinte bloco de códigos:
good_name(const char *name)
{
/*
* User/group names must match [a-z_][a-z0-9_-]*
*/
if (!*name || !((*name >= 'a' && *name <= 'z') || *name == '_'))
return 0;
while (*++name) {
if (!((*name >= 'a' && *name <= 'z') ||
(*name >= '0' && *name <= '9') ||
*name == '_' || *name == '-' ||
(*name == '$' && *(name+1) == NULL)))
return 0;
}
return 1;
}
Então é só alterar essa função para permitir a inclusão de números também no início ou comentar o bloco inteiro, fazendo a função retornar sempre o número 1 (ou seja, o usuário sempre será validado). Neste caso, a função ficaria conforme a seguir:
good_name(const char *name)
{
/*
* User/group names must match [a-z_][a-z0-9_-]*
*/
return 1;
}
Após estes procedimentos, é necessário compilar e instalar o pacote com os tradicionais make && make install.
Eu não sei o porquê do linux não permitir a inclusão de usuários iniciando com números no sistema. Talvez alguém que leia esse artigo possa me explicar (por favor, me envie um email).
Fica por aqui essa dica, espero ter contribuído para a comunidade.
Veja a relação completa dos artigos de Amauri Tiago Marx
Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.
![]() Recomendar este artigo |
|
Seja Palestrante no PHP Conference Brasil 2008
O principal evento de PHP da América Latina
Osasco-São Paulo
Data limite para submissão de Palestra: 31 de Agosto
Saiba mais
Redes - Guia Prático
Por Carlos. E. Morimoto
Hardware - o Guia Definitivo
Por Carlos. E. Morimoto
Kurumin 7 - Guia Prático
Por Carlos. E. Morimoto
Linux: Ferramentas Técnicas, 2ed
Por Carlos. E. Morimoto
Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates
Google Hacking
Por JOHNNY LONG
1808
Por Laurentino Gomes
Sistemas de Banco de Dados
Por Ramez E. Elmasri e Shamkant Navathe
Linux: Guia do Administrador do Sistema
Por Rubem E. Ferreira
A Menina que Roubava Livros
Por Markus Zusak
Sistemas Operacionais Modernos
Por Andrew S. Tanembaum
Hardware: Curso Completo
Por Gabriel Torres
PHP para Quem Conhece PHP
Por Juliano Niederauer
Redes de Computadores: Curso Completo
Por Gabriel Torres
Java: Como Programar
Por Harvey M. Deitel e Paul J. Deitel
O Caçador de Pipas
Por Khaled Hosseini
O Médico Doente
Por Dráuzio Varella
Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson
MySQL - Guia do Programador
Por André Milani
Certificação Linux
Por Uira Ribeiro
Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder
OpenGL: uma Abordagem Prática e Objetiva
Por Marcelo Cohen, Isabel Harb Manssour
Expressões Regulares: Uma Abordagem Divertida
Por Aurélio Marinho Jargas
Extreme Programming
Por Vinicius Manhaes Teles