[GTER] Problemas com sevidores de E-mail

João Carlos Mendes Luís jonny at jonny.eng.br
Wed Apr 30 02:49:47 -03 2003


Gustavo Molina wrote:
> Hello Silmar,
> 
> Tuesday, April 29, 2003, 5:06:30 PM, you wrote:
> 
> 
>>>em vez de algo
>>>decente como /etc/password
>>
> 
> Criar um usuário na máquina para ele usar APENAS o POP é algo decente ?

Depende da sua definicao de usuário.  Ao se criar uma entrada no 
/etc/password com o nome jonny, e o uid 2000, nao estou criando o 
usuario jonny, nem tampouco o usuario cujo uid é 2000.  Apenas disse que 
o uid 2000 se refere a alguem que pode ser chamado de jonny, e que para 
todos os efeitos *pode* (MAY, segundo o IETF) ter uma senha, um 
diretorio home e uma shell.  Se essa entrada nao existir, o uid 2000 
continua existindo, apenas nao terá nome.  Da mesma forma, nada impede 
que voce crie todos os usuarios POP com o mesmo uid, sem home e sem shell.

Resumindo: O /etc/password, ou melhor ainda, as versões otimizadas em 
libdb como as do FreeBSD ou via NIS, não é um gerador de usuário, mas 
apenas um banco de dados que mapeia UIDs em nomes e nomes em UIDs, e tem 
como atributos senha, home dir, nome completo e shell.  A principal 
função do /etc/passwd é criar usuários para login shell, é verdade, mas 
não é a única.

Por exemplo, para cada daemon que eu coloco rodando em um setvidor, eu 
escolho um UID diferente para ele, e registro esse uid no /etc/passwd. 
Não criei um usuário para o daemon, apenas registrei no banco de dados. 
  Se o daemon for configurado para tal, e pode usar esse banco de dados 
para mapear um nome em um uid, e dar setuid quando necessário, ou então, 
para buscar o seu home dir.

> Então tá, né.

É...

Não confundam conceitos com a utilização destes conceitos.

Por exemplo, voce sabiam que é possível colocar QUALQUER tipo de tabela 
no NIS.  Basta editar o Makefile no /var/yp, e configurar os comandos 
para gerar os .db, etc.  A única restrição é que cada db tem que ter uma 
chave primária (não única) e um único campo de dados em modo texto.  Se 
quiser mais dados, use um separador (no caso do passwd.byuid e 
passwd.byname, o caracter :).


Finalmente, para não dizerem que não pensei nisso: Alguns sistemas 
operacionais NÃO otimizam o /etc/passwd, e cada acesso é feito com 
leitura em modo texto, não com uma libdb ou equivalente.  Nesse caso, a 
eficiencia fica uma droga apos um certo número de usuários.  Um exemplo 
que me vem a cabeça é o Solaris (pelo menos até a versão 6).  Por isso 
que muitos provedores originalmente resolveram deixar de usar o 
/etc/passwd e usar seu proprio database, que permitiria tambem guardar 
outras informações, como registros de cobrança, etc.

                                         Jonny

-- 
João Carlos Mendes Luís - Networking Engineer - jonny at jonny.eng.br
--
"the West won the world not by the superiority of its ideas or values
or religion but rather by its superiority in applying organized
violence. Westerners often forget this fact, non-Westerners never do."
-- Samuel P. Huntington



More information about the gter mailing list