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.