Variável de ambiente bash da Canonical representando o endereço de email de um usuário

3

Estou escrevendo uma função bash que enviará um email para o usuário atual após a conclusão. Eu estou querendo saber se há uma maneira canônica ou normal para obter o endereço de e-mail de um usuário. Meu plano atual é simplesmente usar $EMAIL , que certamente funcionará bem, mas eu não tinha certeza se havia uma maneira melhor ou "certa" de se referir ao endereço de e-mail do usuário atual (supondo, é claro, que seja conjunto).

Note que eu não tento enviar por e-mail o correio local da máquina, mas um endereço remoto.

    
por dimo414 24.04.2014 / 19:09

2 respostas

1

Se você realmente quiser fazer isso ("espera que os usuários do meu script precisem especificar o endereço que deseja usar"), você pode sempre pedir que eles coloquem o endereço de e-mail em ~/.emailaddress ou outro arquivo local . Com permissões adequadas em seus diretórios iniciais e no arquivo, isso pode funcionar.

A maneira correta seria configurar a entrega de correio local e deixar para os usuários se eles quiserem usar o correio local ou seu endereço "externo" usando ~/.forward .

Na minha opinião , qualquer abordagem sensata armazenaria o endereço de email "externo" em um arquivo, em vez de uma variável de ambiente. Há muita coisa que pode impedir que a variável de ambiente seja configurada / disponibilizada em seu script. Como root, você pode impor que o arquivo seja legível, mas não é possível forçar o usuário a ser esperto sobre onde e como eles colocam suas definições de envvar.

Não há "a melhor maneira" de fazer isso. Os endereços de e-mail são informações do usuário e, portanto, pertencem ao seu gerenciamento de usuários. Se você usar o LDAP, a resposta do dawud lhe dirá onde colocá-lo e recuperá-lo. Se você estiver usando o antigo /etc/passwd , esse tem um campo de comentário. Se você quiser armazená-lo em seus diretórios home (e é isso que você faz quando fala sobre os usuários que fornecem essas informações em seus ambientes de shell), eu lhe dei duas maneiras de fazer isso, dependendo se você quer / quer correio local. / p>

Se você já usa o LDAP, seguir o conselho da dawud é a melhor maneira para você. Se você não for, configurar o LDAP apenas para armazenar alguns endereços de e-mail é um exagero e não o melhor caminho. Se você quiser uma resposta definitiva, precisa ser mais específico sobre sua pergunta.

    
por 24.04.2014 / 21:28
1

Não existe tal coisa.

Você pode, no entanto, esperar que um atributo mail exista em um diretório LDAP, como por RFC 4524 .

Existem ferramentas de linha de comando, como ldapsearch(1) , você pode usar em um shell script para recuperar as valores.

Claro, você também pode armazenar informações de usuários em um banco de dados em outro lugar.

    
por 24.04.2014 / 21:05

Tags